addresses: update utxo response format
This commit is contained in:
parent
6e5dbfd22a
commit
3e40d71c51
70
README.md
70
README.md
@ -18,9 +18,37 @@ The API endpoints will be available by default at: `http://localhost:3001/insigh
|
|||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
- [Bitcore Node 0.2.x](https://github.com/bitpay/bitcore-node)
|
- [Bitcore Node 3.x](https://github.com/bitpay/bitcore-node)
|
||||||
|
|
||||||
**Note:** You can use an existing Bitcoin data directory, however `txindex` needs to be set to true in `bitcoin.conf`.
|
**Note:** You can use an existing Bitcoin data directory, however `txindex`, `addressindex`, `timestampindex` and `spentindex` needs to be set to true in `bitcoin.conf`, as well as a few other additional fields.
|
||||||
|
|
||||||
|
## Notes on Upgrading from v0.3
|
||||||
|
|
||||||
|
The unspent outputs format now has `satoshis` and `height`:
|
||||||
|
```
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"address":"mo9ncXisMeAoXwqcV5EWuyncbmCcQN4rVs",
|
||||||
|
"txid":"d5f8a96faccf79d4c087fa217627bb1120e83f8ea1a7d84b1de4277ead9bbac1",
|
||||||
|
"vout":0,
|
||||||
|
"scriptPubKey":"76a91453c0307d6851aa0ce7825ba883c6bd9ad242b48688ac",
|
||||||
|
"amount":0.000006,
|
||||||
|
"satoshis":600,
|
||||||
|
"confirmations":0,
|
||||||
|
"ts":1461349425
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "mo9ncXisMeAoXwqcV5EWuyncbmCcQN4rVs",
|
||||||
|
"txid": "bc9df3b92120feaee4edc80963d8ed59d6a78ea0defef3ec3cb374f2015bfc6e",
|
||||||
|
"vout": 1,
|
||||||
|
"scriptPubKey": "76a91453c0307d6851aa0ce7825ba883c6bd9ad242b48688ac",
|
||||||
|
"amount": 0.12345678,
|
||||||
|
"satoshis: 12345678,
|
||||||
|
"height": 300001
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
The `timestamp` property will only be set for unconfirmed transactions and `height` can be used for determining block order. The `confirmationsFromCache` is nolonger set or necessary, confirmation count is only cached for the time between blocks.
|
||||||
|
|
||||||
## Notes on Upgrading from v0.2
|
## Notes on Upgrading from v0.2
|
||||||
|
|
||||||
@ -95,25 +123,25 @@ The response contains the value in Satoshis.
|
|||||||
Sample return:
|
Sample return:
|
||||||
``` json
|
``` json
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"address": "n2PuaAguxZqLddRbTnAoAuwKYgN2w2hZk7",
|
"address":"mo9ncXisMeAoXwqcV5EWuyncbmCcQN4rVs",
|
||||||
"txid": "dbfdc2a0d22a8282c4e7be0452d595695f3a39173bed4f48e590877382b112fc",
|
"txid":"d5f8a96faccf79d4c087fa217627bb1120e83f8ea1a7d84b1de4277ead9bbac1",
|
||||||
"vout": 0,
|
"vout":0,
|
||||||
"ts": 1401276201,
|
"scriptPubKey":"76a91453c0307d6851aa0ce7825ba883c6bd9ad242b48688ac",
|
||||||
"scriptPubKey": "76a914e50575162795cd77366fb80d728e3216bd52deac88ac",
|
"amount":0.000006,
|
||||||
"amount": 0.001,
|
"satoshis":600,
|
||||||
"confirmations": 3
|
"confirmations":0,
|
||||||
},
|
"ts":1461349425
|
||||||
{
|
},
|
||||||
"address": "n2PuaAguxZqLddRbTnAoAuwKYgN2w2hZk7",
|
{
|
||||||
"txid": "e2b82af55d64f12fd0dd075d0922ee7d6a300f58fe60a23cbb5831b31d1d58b4",
|
"address": "mo9ncXisMeAoXwqcV5EWuyncbmCcQN4rVs",
|
||||||
"vout": 0,
|
"txid": "bc9df3b92120feaee4edc80963d8ed59d6a78ea0defef3ec3cb374f2015bfc6e",
|
||||||
"ts": 1401226410,
|
"vout": 1,
|
||||||
"scriptPubKey": "76a914e50575162795cd77366fb80d728e3216bd52deac88ac",
|
"scriptPubKey": "76a91453c0307d6851aa0ce7825ba883c6bd9ad242b48688ac",
|
||||||
"amount": 0.001,
|
"amount": 0.12345678,
|
||||||
"confirmation": 6,
|
"satoshis: 12345678,
|
||||||
"confirmationsFromCache": true
|
"height": 300001
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -128,7 +128,6 @@ AddressController.prototype.utxo = function(req, res) {
|
|||||||
|
|
||||||
AddressController.prototype.multiutxo = function(req, res) {
|
AddressController.prototype.multiutxo = function(req, res) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.node.getAddressUnspentOutputs(req.addrs, true, function(err, utxos) {
|
this.node.getAddressUnspentOutputs(req.addrs, true, function(err, utxos) {
|
||||||
if(err && err.code === -5) {
|
if(err && err.code === -5) {
|
||||||
return res.jsonp([]);
|
return res.jsonp([]);
|
||||||
@ -140,18 +139,25 @@ AddressController.prototype.multiutxo = function(req, res) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
AddressController.prototype.transformUtxo = function(utxo) {
|
AddressController.prototype.transformUtxo = function(utxoArg) {
|
||||||
return {
|
var utxo = {
|
||||||
address: utxo.address,
|
address: utxoArg.address,
|
||||||
txid: utxo.txid,
|
txid: utxoArg.txid,
|
||||||
vout: utxo.outputIndex,
|
vout: utxoArg.outputIndex,
|
||||||
height: utxo.height,
|
scriptPubKey: utxoArg.script,
|
||||||
ts: utxo.timestamp ? parseInt(utxo.timestamp) : Date.now(),
|
amount: utxoArg.satoshis / 1e8,
|
||||||
scriptPubKey: utxo.script,
|
satoshis: utxoArg.satoshis
|
||||||
amount: utxo.satoshis / 1e8,
|
|
||||||
satoshis: utxo.satoshis,
|
|
||||||
confirmations: this.node.services.bitcoind.height - utxo.height + 1
|
|
||||||
};
|
};
|
||||||
|
if (utxoArg.height && utxoArg.height > 0) {
|
||||||
|
utxo.height = utxoArg.height;
|
||||||
|
utxo.confirmations = this.node.services.bitcoind.height - utxoArg.height + 1;
|
||||||
|
} else {
|
||||||
|
utxo.confirmations = 0;
|
||||||
|
}
|
||||||
|
if (utxoArg.timestamp) {
|
||||||
|
utxo.ts = utxoArg.timestamp;
|
||||||
|
}
|
||||||
|
return utxo;
|
||||||
};
|
};
|
||||||
|
|
||||||
AddressController.prototype.multitxs = function(req, res, next) {
|
AddressController.prototype.multitxs = function(req, res, next) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user