New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

blockcast

Package Overview
Dependencies
Maintainers
1
Versions
44
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

blockcast - npm Package Compare versions

Comparing version 1.0.3 to 1.0.4

test/raw-transactions/test0.json

3

package.json
{
"name": "blockcast",
"version": "1.0.3",
"version": "1.0.4",
"description": "A multi-transaction protocol for storing data in the Bitcoin blockchain.",

@@ -31,2 +31,3 @@ "main": "./src/index.js",

"async": "^1.3.0",
"blockcypher-unofficial": "^1.4.1",
"jasmine-node": "^1.14.5",

@@ -33,0 +34,0 @@ "mem-common-blockchain": "0.0.1"

@@ -34,16 +34,14 @@ blockcast

In this example we're using the in memory version that is provided by ```abstract-common-blockchain```.
In this example we're using the in memory version that is provided by ```mem-common-blockchain```.
```javascript
var commonBlockchain = require("abstract-common-blockchain")({
var commonBlockchain = require("mem-common-blockchain")({
type: "local"
});
// var ChainAPI = require("chain-unofficial");
// or we could connect to testnet
// var commonBlockchain = ChainAPI({
// network: "testnet",
// key: process.env.CHAIN_API_KEY_ID,
// secret: process.env.CHAIN_API_KEY_SECRET
// commonBlockchain = require('blockcypher-unofficial')({
// network: "testnet"
// });

@@ -86,2 +84,13 @@ ```

How can it be better?
---
* Support 80 byte OP_RETURN
* Use backwards pointer (native input txid) instead of forwards pointer (spentTxid)
* Exponential fee for unlimited, yet impractical, data sizes.
* Remove per transactions byte headers and use start bytes+length or start bytes/end bytes.
* skip DEFLATE if it is bigger than the data being embedded
Please fork this project and help make it better!
Why Bitcoin?

@@ -88,0 +97,0 @@ ---

@@ -112,2 +112,3 @@ var assert = require("assert");

var commonBlockchain = options.commonBlockchain;
var buildStatus = options.buildStatus || function() {};
var signTransaction = signFromTransactionHex(commonWallet.signRawTransaction);

@@ -129,2 +130,8 @@ options.signTransaction = signTransaction;

buildStatus({
response: "got payloads"
data: data,
payloadsLength: payloadsLength
});
var totalCost = payloadsLength * fee;

@@ -154,2 +161,10 @@ var existingUnspents = [];

var signedTxid = signedTxBuilt.getId();
buildStatus({
response: "signed transaction",
txid: signedTxid,
count: signedTransactionsCounter,
payloadsLength: payloadsLength
});
if (signedTransactionsCounter == 0) {

@@ -156,0 +171,0 @@ txid = signedTxid;

@@ -11,2 +11,3 @@ var bitcoinTransactionBuilder = require("./bitcoin-transaction-builder");

var propagationStatus = options.propagationStatus || function() {};
var buildStatus = options.buildStatus || function() {};
var retryMax = options.retryMax || 5;

@@ -18,2 +19,3 @@ var id = options.id || 0; // THINK ABOUT THIS!!! Maybe go through their recent transactions by default? options.transactions?

fee: fee,
buildStatus: buildStatus,
commonBlockchain: commonBlockchain,

@@ -199,3 +201,4 @@ commonWallet: commonWallet

payloadsLength: payloadsLength,
parseTip: parseTip
parseTip: parseTip,
bitcoinTransactionBuilder: bitcoinTransactionBuilder
};

@@ -9,14 +9,3 @@ jasmine.getEnv().defaultTimeoutInterval = 50000;

var commonBlockchain;
if (process.env.CHAIN_API_KEY_ID && process.env.CHAIN_API_KEY_SECRET) {
var ChainAPI = require("chain-unofficial");
commonBlockchain = ChainAPI({
network: "testnet",
key: process.env.CHAIN_API_KEY_ID,
secret: process.env.CHAIN_API_KEY_SECRET
});
}
else {
commonBlockchain = require("mem-common-blockchain")();
}
var commonBlockchain = require("mem-common-blockchain")();

@@ -63,2 +52,75 @@ var seed = bitcoin.crypto.sha256("test");

it("should create transaction with test0.data, using data0.utxo, signed with test0.privateKeyWIF and get text0.txHex", function(done) {
var test0 = require("./raw-transactions/test0.json");
var test0Wallet = {
signRawTransaction: function(txHex, callback) {
var tx = bitcoin.Transaction.fromHex(txHex);
var key = bitcoin.ECKey.fromWIF(test0.privateKeyWIF)
tx.sign(0, key);
var signedTx = tx;
var txid = signedTx.getId();
var signedTxHex = signedTx.toHex();
callback(false, signedTxHex, txid);
},
address: test0.address
}
var test0Blockchain = {
Addresses: {
Unspents: function(addresses, cb) { cb(false, [[test0.utxo]]) }
}
};
bitcoinTransactionBuilder.createSignedTransactionsWithData({
data: test0.data,
id: 0,
commonWallet: test0Wallet,
commonBlockchain: test0Blockchain
}, function(err, signedTransactions) {
expect(signedTransactions.length).toBe(1);
var txHex = signedTransactions[0];
expect(txHex).toBe(test0.txHex);
done();
});
});
it("should create transaction with test1.data, using data1.utxo, signed with test1.privateKeyWIF and get text1.txHex", function(done) {
var test1 = require("./raw-transactions/test1.json");
var test1Wallet = {
signRawTransaction: function(txHex, callback) {
var tx = bitcoin.Transaction.fromHex(txHex);
var key = bitcoin.ECKey.fromWIF(test1.privateKeyWIF)
tx.sign(0, key);
var signedTx = tx;
var txid = signedTx.getId();
var signedTxHex = signedTx.toHex();
callback(false, signedTxHex, txid);
},
address: test1.address
}
var test1Blockchain = {
Addresses: {
Unspents: function(addresses, cb) { cb(false, [[test1.utxo]]) }
}
};
bitcoinTransactionBuilder.createSignedTransactionsWithData({
data: test1.data,
id: 0,
commonWallet: test1Wallet,
commonBlockchain: test1Blockchain
}, function(err, signedTransactions) {
expect(signedTransactions.length).toBe(8);
expect(signedTransactions).toEqual(test1.txHexes);
done();
});
});
it("should create the transaction for a random string of 30 bytes", function(done) {

@@ -65,0 +127,0 @@ var data = randomString(30);

@@ -9,14 +9,5 @@ jasmine.getEnv().defaultTimeoutInterval = 50000;

var commonBlockchain;
if (process.env.CHAIN_API_KEY_ID && process.env.CHAIN_API_KEY_SECRET) {
var ChainAPI = require("chain-unofficial");
commonBlockchain = ChainAPI({
network: "testnet",
key: process.env.CHAIN_API_KEY_ID,
secret: process.env.CHAIN_API_KEY_SECRET
});
}
else {
commonBlockchain = require("mem-common-blockchain")();
}
var commonBlockchain = require('blockcypher-unofficial')({
network: "testnet"
});

@@ -23,0 +14,0 @@ var randomJsonObject = function(messageLength) {

@@ -6,14 +6,3 @@ jasmine.getEnv().defaultTimeoutInterval = 50000;

var commonBlockchain;
if (process.env.CHAIN_API_KEY_ID && process.env.CHAIN_API_KEY_SECRET) {
var ChainAPI = require("chain-unofficial");
commonBlockchain = ChainAPI({
network: "testnet",
key: process.env.CHAIN_API_KEY_ID,
secret: process.env.CHAIN_API_KEY_SECRET
});
}
else {
commonBlockchain = require("mem-common-blockchain")();
}
var commonBlockchain = require("mem-common-blockchain")();

@@ -20,0 +9,0 @@ var seed = bitcoin.crypto.sha256("test");

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc