Adding websocket.
This commit is contained in:
parent
b39fb0bd60
commit
90be85f6f0
92
README.md
92
README.md
@ -49,6 +49,7 @@ Easy way to add Mempool API to your JS application.
|
||||
- [Get Address Txs Chain](#get-address-txs-chain)
|
||||
- [Get Address Txs Mempool](#get-address-txs-mempool)
|
||||
- [Get Address Txs Utxo](#get-address-txs-utxo)
|
||||
- [Websocket](#websocket)
|
||||
|
||||
- :pushpin: [References](#references)
|
||||
- :pushpin: [Donate](#donate)
|
||||
@ -80,7 +81,7 @@ Returns our currently suggested fees for new transactions.
|
||||
[Code Example](examples/fees.ts)
|
||||
|
||||
```js
|
||||
import { fees } from './../src/index';
|
||||
import { fees } from 'mempool-space-js';
|
||||
...
|
||||
const feesRecommended = await fees.getFeesRecommended();
|
||||
console.log(feesRecommended);
|
||||
@ -95,7 +96,7 @@ Returns current mempool as projected blocks.
|
||||
[Code Example](examples/fees.ts)
|
||||
|
||||
```js
|
||||
import { fees } from './../src/index';
|
||||
import { fees } from 'mempool-space-js';
|
||||
...
|
||||
const feesMempoolBlocks = await fees.getFeesMempoolBlocks();
|
||||
console.log(feesMempoolBlocks);
|
||||
@ -110,7 +111,7 @@ Returns current mempool backlog statistics.
|
||||
[Code Example](examples/mempool.ts)
|
||||
|
||||
```js
|
||||
import { mempool } from './../src/index';
|
||||
import { mempool } from 'mempool-space-js';
|
||||
...
|
||||
const getMempool = await mempool.getMempool();
|
||||
console.log(getMempool);
|
||||
@ -140,7 +141,7 @@ Get a list of the last 10 transactions to enter the mempool. Each transaction ob
|
||||
[Code Example](examples/mempool.ts)
|
||||
|
||||
```js
|
||||
import { mempool } from './../src/index';
|
||||
import { mempool } from 'mempool-space-js';
|
||||
...
|
||||
const getMempoolRecent = await mempool.getMempoolRecent();
|
||||
console.log(getMempoolRecent);
|
||||
@ -160,7 +161,7 @@ Parameters:
|
||||
[Code Example](examples/blocks.ts)
|
||||
|
||||
```js
|
||||
import { blocks } from './../src/index';
|
||||
import { blocks } from 'mempool-space-js';
|
||||
...
|
||||
const block = await blocks.getBlock({
|
||||
hash: '000000000000000015dc...'
|
||||
@ -182,7 +183,7 @@ Parameters:
|
||||
[Code Example](examples/blocks.ts)
|
||||
|
||||
```js
|
||||
import { blocks } from './../src/index';
|
||||
import { blocks } from 'mempool-space-js';
|
||||
...
|
||||
const blockStatus = await blocks.getBlockStatus({
|
||||
hash: '000000000000000015dc...'
|
||||
@ -205,7 +206,7 @@ Parameters:
|
||||
[Code Example](examples/blocks.ts)
|
||||
|
||||
```js
|
||||
import { blocks } from './../src/index';
|
||||
import { blocks } from 'mempool-space-js';
|
||||
...
|
||||
const blockTxs = await blocks.getBlockTxs({
|
||||
hash: '000000000000000015dc...'
|
||||
@ -227,7 +228,7 @@ Parameters:
|
||||
[Code Example](examples/blocks.ts)
|
||||
|
||||
```js
|
||||
import { blocks } from './../src/index';
|
||||
import { blocks } from 'mempool-space-js';
|
||||
...
|
||||
const blockTxids = await blocks.getBlockTxids({
|
||||
hash: '000000000000000015dc...'
|
||||
@ -250,7 +251,7 @@ Parameters:
|
||||
[Code Example](examples/blocks.ts)
|
||||
|
||||
```js
|
||||
import { blocks } from './../src/index';
|
||||
import { blocks } from 'mempool-space-js';
|
||||
...
|
||||
const blockTxid = await blocks.getBlockTxid({
|
||||
hash: '000000000000000015dc...',
|
||||
@ -273,7 +274,7 @@ Parameters:
|
||||
[Code Example](examples/blocks.ts)
|
||||
|
||||
```js
|
||||
import { blocks } from './../src/index';
|
||||
import { blocks } from 'mempool-space-js';
|
||||
...
|
||||
const blockRaw = await blocks.getBlockRaw({
|
||||
hash: '000000000000000015dc...'
|
||||
@ -295,7 +296,7 @@ Parameters:
|
||||
[Code Example](examples/blocks.ts)
|
||||
|
||||
```js
|
||||
import { blocks } from './../src/index';
|
||||
import { blocks } from 'mempool-space-js';
|
||||
...
|
||||
const blockHeight = await blocks.getBlockHeight({
|
||||
height: 66666,
|
||||
@ -317,7 +318,7 @@ Parameters:
|
||||
[Code Example](examples/blocks.ts)
|
||||
|
||||
```js
|
||||
import { blocks } from './../src/index';
|
||||
import { blocks } from 'mempool-space-js';
|
||||
...
|
||||
const getBlocks = await blocks.getBlocks({
|
||||
start_height: 66666
|
||||
@ -339,7 +340,7 @@ Parameters:
|
||||
[Code Example](examples/blocks.ts)
|
||||
|
||||
```js
|
||||
import { blocks } from './../src/index';
|
||||
import { blocks } from 'mempool-space-js';
|
||||
...
|
||||
const blocksTipHeight = await blocks.getBlocksTipHeight();
|
||||
console.log(blocksTipHeight);
|
||||
@ -359,7 +360,7 @@ Parameters:
|
||||
[Code Example](examples/blocks.ts)
|
||||
|
||||
```js
|
||||
import { blocks } from './../src/index';
|
||||
import { blocks } from 'mempool-space-js';
|
||||
...
|
||||
const blocksTipHash = await blocks.getBlocksTipHash();
|
||||
console.log(blocksTipHash);
|
||||
@ -379,7 +380,7 @@ Parameters:
|
||||
[Code Example](examples/transactions.ts)
|
||||
|
||||
```js
|
||||
import { transactions } from './../src/index';
|
||||
import { transactions } from 'mempool-space-js';
|
||||
...
|
||||
const tx = await transactions.getTx({
|
||||
txid: '15e10745f15593...'
|
||||
@ -401,7 +402,7 @@ Parameters:
|
||||
[Code Example](examples/transactions.ts)
|
||||
|
||||
```js
|
||||
import { transactions } from './../src/index';
|
||||
import { transactions } from 'mempool-space-js';
|
||||
...
|
||||
const txStatus = await transactions.getTxStatus({
|
||||
txid: '15e10745f15593...'
|
||||
@ -423,7 +424,7 @@ Parameters:
|
||||
[Code Example](examples/transactions.ts)
|
||||
|
||||
```js
|
||||
import { transactions } from './../src/index';
|
||||
import { transactions } from 'mempool-space-js';
|
||||
...
|
||||
const txHex = await transactions.getTxHex({
|
||||
txid: '15e10745f15593...'
|
||||
@ -445,7 +446,7 @@ Parameters:
|
||||
[Code Example](examples/transactions.ts)
|
||||
|
||||
```js
|
||||
import { transactions } from './../src/index';
|
||||
import { transactions } from 'mempool-space-js';
|
||||
...
|
||||
const txRaw = await transactions.getTxRaw({
|
||||
txid: '15e10745f15593...'
|
||||
@ -467,7 +468,7 @@ Parameters:
|
||||
[Code Example](examples/transactions.ts)
|
||||
|
||||
```js
|
||||
import { transactions } from './../src/index';
|
||||
import { transactions } from 'mempool-space-js';
|
||||
...
|
||||
const txMerkleBlockProof = await transactions.getTxMerkleBlockProof({
|
||||
txid: '15e10745f15593...'
|
||||
@ -489,7 +490,7 @@ Parameters:
|
||||
[Code Example](examples/transactions.ts)
|
||||
|
||||
```js
|
||||
import { transactions } from './../src/index';
|
||||
import { transactions } from 'mempool-space-js';
|
||||
...
|
||||
const txMerkleProof = await transactions.getTxMerkleProof({
|
||||
txid: '15e10745f15593...'
|
||||
@ -511,7 +512,7 @@ Parameters:
|
||||
[Code Example](examples/transactions.ts)
|
||||
|
||||
```js
|
||||
import { transactions } from './../src/index';
|
||||
import { transactions } from 'mempool-space-js';
|
||||
...
|
||||
const txOutspend = await transactions.getTxOutspend({
|
||||
txid: '15e10745f15593...',
|
||||
@ -534,7 +535,7 @@ Parameters:
|
||||
[Code Example](examples/transactions.ts)
|
||||
|
||||
```js
|
||||
import { transactions } from './../src/index';
|
||||
import { transactions } from 'mempool-space-js';
|
||||
...
|
||||
const txOutspends = await transactions.getTxOutspends({
|
||||
txid: '15e10745f15593...'
|
||||
@ -556,7 +557,7 @@ Parameters:
|
||||
[Code Example](examples/transactions.ts)
|
||||
|
||||
```js
|
||||
import { transactions } from './../src/index';
|
||||
import { transactions } from 'mempool-space-js';
|
||||
...
|
||||
const postTx = await transactions.postTx({
|
||||
txid: '15e10745f15593...'
|
||||
@ -580,7 +581,7 @@ Parameters:
|
||||
[Code Example](examples/addresses.ts)
|
||||
|
||||
```js
|
||||
import { addresses } from './../src/index';
|
||||
import { addresses } from 'mempool-space-js';
|
||||
...
|
||||
const addressTest = await addresses.getAddress({
|
||||
address: '15e10745f15593a...'
|
||||
@ -602,7 +603,7 @@ Parameters:
|
||||
[Code Example](examples/addresses.ts)
|
||||
|
||||
```js
|
||||
import { addresses } from './../src/index';
|
||||
import { addresses } from 'mempool-space-js';
|
||||
...
|
||||
const addressTxs = await addresses.getAddressTxs({
|
||||
address: '15e10745f15593a...'
|
||||
@ -624,7 +625,7 @@ Parameters:
|
||||
[Code Example](examples/addresses.ts)
|
||||
|
||||
```js
|
||||
import { addresses } from './../src/index';
|
||||
import { addresses } from 'mempool-space-js';
|
||||
...
|
||||
const addressTxsChain = await addresses.getAddressTxsChain({
|
||||
address: '15e10745f15593a...'
|
||||
@ -646,7 +647,7 @@ Parameters:
|
||||
[Code Example](examples/addresses.ts)
|
||||
|
||||
```js
|
||||
import { addresses } from './../src/index';
|
||||
import { addresses } from 'mempool-space-js';
|
||||
...
|
||||
const addressTxsMempool = await addresses.getAddressTxsMempool({
|
||||
address: '15e10745f15593a...'
|
||||
@ -668,7 +669,7 @@ Parameters:
|
||||
[Code Example](examples/addresses.ts)
|
||||
|
||||
```js
|
||||
import { addresses } from './../src/index';
|
||||
import { addresses } from 'mempool-space-js';
|
||||
...
|
||||
const addressTxsUtxo = await addresses.getAddressTxsUtxo({
|
||||
address: '15e10745f15593a...'
|
||||
@ -678,10 +679,43 @@ console.log(addressTxsUtxo);
|
||||
|
||||
<br/>
|
||||
|
||||
### Websocket
|
||||
|
||||
```js
|
||||
import { websocket } from 'mempool-space-js';
|
||||
...
|
||||
const ws = await websocket.init({
|
||||
options: [
|
||||
'blocks',
|
||||
'stats',
|
||||
'mempool-blocks',
|
||||
'live-2h-chart'
|
||||
],
|
||||
});
|
||||
|
||||
ws.on('message', function incoming(data: any) {
|
||||
const res = JSON.parse(data);
|
||||
if (res.blocks) {
|
||||
res.blocks.forEach((block: any) => {
|
||||
console.log(block.height);
|
||||
});
|
||||
}
|
||||
if (res.mempoolInfo) {
|
||||
console.log(res.mempoolInfo);
|
||||
}
|
||||
if (res.transactions) {
|
||||
console.log(res.transactions);
|
||||
}
|
||||
if (res.mempoolBlocks) {
|
||||
console.log(res.mempoolBlocks);
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
- Mempool.Space Website: [https://mempool.space](https://mempool.space)
|
||||
- Mempool.Sapce API Documentation: [https://mempool.space/api](https://mempool.space/api)
|
||||
- Mempool.Space API Documentation: [https://mempool.space/api](https://mempool.space/api)
|
||||
- My Website: [https://miguelmedeiros.com](https://miguelmedeiros.com.br)
|
||||
|
||||
---
|
||||
|
26
examples/websocket.ts
Normal file
26
examples/websocket.ts
Normal file
@ -0,0 +1,26 @@
|
||||
import { websocket } from '../src/index';
|
||||
|
||||
const init = async () => {
|
||||
const ws = await websocket.init({
|
||||
options: ['blocks', 'stats', 'mempool-blocks', 'live-2h-chart'],
|
||||
});
|
||||
|
||||
ws.on('message', function incoming(data: any) {
|
||||
const res = JSON.parse(data);
|
||||
if (res.blocks) {
|
||||
res.blocks.forEach((block: any) => {
|
||||
console.log(block.height);
|
||||
});
|
||||
}
|
||||
if (res.mempoolInfo) {
|
||||
console.log(res.mempoolInfo);
|
||||
}
|
||||
if (res.transactions) {
|
||||
console.log(res.transactions);
|
||||
}
|
||||
if (res.mempoolBlocks) {
|
||||
console.log(res.mempoolBlocks);
|
||||
}
|
||||
});
|
||||
};
|
||||
init();
|
@ -30,7 +30,8 @@
|
||||
],
|
||||
"dependencies": {
|
||||
"axios": "^0.21.1",
|
||||
"typescript": "^4.1.3"
|
||||
"typescript": "^4.1.3",
|
||||
"ws": "^7.4.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^14.14.25",
|
||||
|
@ -3,12 +3,14 @@ import mempool from './mempool';
|
||||
import blocks from './blocks';
|
||||
import transactions from './transactions';
|
||||
import addresses from './addresses';
|
||||
import websocket from './websocket';
|
||||
|
||||
export { default as fees } from './fees';
|
||||
export { default as mempool } from './mempool';
|
||||
export { default as blocks } from './blocks';
|
||||
export { default as transactions } from './transactions';
|
||||
export { default as addresses } from './addresses';
|
||||
export { default as websocket } from './websocket';
|
||||
|
||||
export default {
|
||||
fees,
|
||||
@ -16,4 +18,5 @@ export default {
|
||||
blocks,
|
||||
transactions,
|
||||
addresses,
|
||||
websocket,
|
||||
};
|
||||
|
22
src/websocket.ts
Normal file
22
src/websocket.ts
Normal file
@ -0,0 +1,22 @@
|
||||
const WebSocket = require('ws');
|
||||
|
||||
const ws = new WebSocket('wss://mempool.space/api/v1/ws');
|
||||
|
||||
const init = (params: { options: string[] }) => {
|
||||
ws.on('open', function open() {
|
||||
ws.send(JSON.stringify({ action: 'init' }));
|
||||
setInterval(function timeout() {
|
||||
ws.send(
|
||||
JSON.stringify({
|
||||
action: 'want',
|
||||
data: params.options,
|
||||
})
|
||||
);
|
||||
}, 500);
|
||||
});
|
||||
return ws;
|
||||
};
|
||||
|
||||
export default {
|
||||
init,
|
||||
};
|
@ -1576,6 +1576,11 @@ write-file-atomic@^3.0.0:
|
||||
signal-exit "^3.0.2"
|
||||
typedarray-to-buffer "^3.1.5"
|
||||
|
||||
ws@^7.4.3:
|
||||
version "7.4.3"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd"
|
||||
integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==
|
||||
|
||||
xdg-basedir@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
|
||||
|
Loading…
x
Reference in New Issue
Block a user