@stacks/blockchain-api-client 4.1.3 → 4.2.0-stacks-2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +112 -50
- package/lib/generated/apis/AccountsApi.js +9 -9
- package/lib/generated/apis/AccountsApi.js.map +1 -1
- package/lib/generated/apis/BlocksApi.js +5 -5
- package/lib/generated/apis/BlocksApi.js.map +1 -1
- package/lib/generated/apis/FaucetsApi.js +4 -4
- package/lib/generated/apis/FaucetsApi.js.map +1 -1
- package/lib/generated/apis/FeesApi.js +4 -4
- package/lib/generated/apis/FeesApi.js.map +1 -1
- package/lib/generated/apis/FungibleTokensApi.js +2 -2
- package/lib/generated/apis/FungibleTokensApi.js.map +1 -1
- package/lib/generated/apis/InfoApi.js +7 -7
- package/lib/generated/apis/InfoApi.js.map +1 -1
- package/lib/generated/apis/MicroblocksApi.js +3 -3
- package/lib/generated/apis/MicroblocksApi.js.map +1 -1
- package/lib/generated/apis/NamesApi.js +5 -5
- package/lib/generated/apis/NamesApi.js.map +1 -1
- package/lib/generated/apis/NonFungibleTokensApi.d.ts +4 -4
- package/lib/generated/apis/NonFungibleTokensApi.js +7 -7
- package/lib/generated/apis/NonFungibleTokensApi.js.map +1 -1
- package/lib/generated/apis/RosettaApi.js +31 -31
- package/lib/generated/apis/RosettaApi.js.map +1 -1
- package/lib/generated/apis/SmartContractsApi.d.ts +5 -5
- package/lib/generated/apis/SmartContractsApi.js +7 -7
- package/lib/generated/apis/SmartContractsApi.js.map +1 -1
- package/lib/generated/apis/StackingRewardsApi.js +5 -5
- package/lib/generated/apis/StackingRewardsApi.js.map +1 -1
- package/lib/generated/apis/TransactionsApi.d.ts +24 -1
- package/lib/generated/apis/TransactionsApi.js +31 -8
- package/lib/generated/apis/TransactionsApi.js.map +1 -1
- package/lib/generated/apis/index.js +5 -1
- package/lib/generated/apis/index.js.map +1 -1
- package/lib/generated/index.js +5 -1
- package/lib/generated/index.js.map +1 -1
- package/lib/generated/models/AddressBalanceResponse.js +4 -4
- package/lib/generated/models/AddressBalanceResponse.js.map +1 -1
- package/lib/generated/models/AddressTransactionWithTransfers.js +2 -2
- package/lib/generated/models/AddressTransactionWithTransfers.js.map +1 -1
- package/lib/generated/models/AddressTransactionWithTransfersFtTransfers.js +2 -2
- package/lib/generated/models/AddressTransactionWithTransfersFtTransfers.js.map +1 -1
- package/lib/generated/models/AddressTransactionWithTransfersNftTransfers.js +4 -4
- package/lib/generated/models/AddressTransactionWithTransfersNftTransfers.js.map +1 -1
- package/lib/generated/models/AddressTransactionWithTransfersStxTransfers.js +2 -2
- package/lib/generated/models/AddressTransactionWithTransfersStxTransfers.js.map +1 -1
- package/lib/generated/models/Block.d.ts +8 -0
- package/lib/generated/models/Block.js +2 -0
- package/lib/generated/models/Block.js.map +1 -1
- package/lib/generated/models/BnsError.js +1 -1
- package/lib/generated/models/BnsError.js.map +1 -1
- package/lib/generated/models/BnsGetNameInfoResponse.js +3 -3
- package/lib/generated/models/BnsGetNameInfoResponse.js.map +1 -1
- package/lib/generated/models/ChainTip.js +2 -2
- package/lib/generated/models/ChainTip.js.map +1 -1
- package/lib/generated/models/InboundStxTransfer.d.ts +2 -1
- package/lib/generated/models/InboundStxTransfer.js +1 -0
- package/lib/generated/models/InboundStxTransfer.js.map +1 -1
- package/lib/generated/models/InlineObject.js +2 -2
- package/lib/generated/models/InlineObject.js.map +1 -1
- package/lib/generated/models/InlineObject1.js +1 -1
- package/lib/generated/models/InlineObject1.js.map +1 -1
- package/lib/generated/models/MapEntryResponse.js +1 -1
- package/lib/generated/models/MapEntryResponse.js.map +1 -1
- package/lib/generated/models/MempoolTransactionStatsResponse.d.ts +46 -0
- package/lib/generated/models/MempoolTransactionStatsResponse.js +49 -0
- package/lib/generated/models/MempoolTransactionStatsResponse.js.map +1 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxAges.d.ts +46 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxAges.js +49 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxAges.js.map +1 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxByteSizes.d.ts +46 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxByteSizes.js +49 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxByteSizes.js.map +1 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAverages.d.ts +46 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAverages.js +49 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAverages.js.map +1 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer.d.ts +45 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer.js +48 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer.js.map +1 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxTypeCounts.d.ts +45 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxTypeCounts.js +48 -0
- package/lib/generated/models/MempoolTransactionStatsResponseTxTypeCounts.js.map +1 -0
- package/lib/generated/models/NetworkBlockTimesResponse.js +4 -4
- package/lib/generated/models/NetworkBlockTimesResponse.js.map +1 -1
- package/lib/generated/models/NetworkIdentifier.js +2 -2
- package/lib/generated/models/NetworkIdentifier.js.map +1 -1
- package/lib/generated/models/NftEvent.d.ts +20 -2
- package/lib/generated/models/NftEvent.js +11 -4
- package/lib/generated/models/NftEvent.js.map +1 -1
- package/lib/generated/models/ReadOnlyFunctionSuccessResponse.js +2 -2
- package/lib/generated/models/ReadOnlyFunctionSuccessResponse.js.map +1 -1
- package/lib/generated/models/RosettaAccount.js +3 -3
- package/lib/generated/models/RosettaAccount.js.map +1 -1
- package/lib/generated/models/RosettaAccountBalanceRequest.js +5 -5
- package/lib/generated/models/RosettaAccountBalanceRequest.js.map +1 -1
- package/lib/generated/models/RosettaAccountBalanceResponse.js +3 -3
- package/lib/generated/models/RosettaAccountBalanceResponse.js.map +1 -1
- package/lib/generated/models/RosettaAccountIdentifier.js +3 -3
- package/lib/generated/models/RosettaAccountIdentifier.js.map +1 -1
- package/lib/generated/models/RosettaAmount.js +3 -3
- package/lib/generated/models/RosettaAmount.js.map +1 -1
- package/lib/generated/models/RosettaBlock.js +4 -4
- package/lib/generated/models/RosettaBlock.js.map +1 -1
- package/lib/generated/models/RosettaBlockMetadata.js +3 -3
- package/lib/generated/models/RosettaBlockMetadata.js.map +1 -1
- package/lib/generated/models/RosettaBlockRequest.js +2 -2
- package/lib/generated/models/RosettaBlockRequest.js.map +1 -1
- package/lib/generated/models/RosettaBlockResponse.js +3 -3
- package/lib/generated/models/RosettaBlockResponse.js.map +1 -1
- package/lib/generated/models/RosettaBlockTransactionRequest.js +4 -4
- package/lib/generated/models/RosettaBlockTransactionRequest.js.map +1 -1
- package/lib/generated/models/RosettaBlockTransactionResponse.js +2 -2
- package/lib/generated/models/RosettaBlockTransactionResponse.js.map +1 -1
- package/lib/generated/models/RosettaCoin.js +4 -4
- package/lib/generated/models/RosettaCoin.js.map +1 -1
- package/lib/generated/models/RosettaCoinChange.js +2 -2
- package/lib/generated/models/RosettaCoinChange.js.map +1 -1
- package/lib/generated/models/RosettaConstructionCombineRequest.js +2 -2
- package/lib/generated/models/RosettaConstructionCombineRequest.js.map +1 -1
- package/lib/generated/models/RosettaConstructionDeriveRequest.js +5 -5
- package/lib/generated/models/RosettaConstructionDeriveRequest.js.map +1 -1
- package/lib/generated/models/RosettaConstructionDeriveResponse.js +4 -4
- package/lib/generated/models/RosettaConstructionDeriveResponse.js.map +1 -1
- package/lib/generated/models/RosettaConstructionHashRequest.js +2 -2
- package/lib/generated/models/RosettaConstructionHashRequest.js.map +1 -1
- package/lib/generated/models/RosettaConstructionHashResponse.js +3 -3
- package/lib/generated/models/RosettaConstructionHashResponse.js.map +1 -1
- package/lib/generated/models/RosettaConstructionMetadataRequest.js +5 -5
- package/lib/generated/models/RosettaConstructionMetadataRequest.js.map +1 -1
- package/lib/generated/models/RosettaConstructionMetadataResponse.js +3 -3
- package/lib/generated/models/RosettaConstructionMetadataResponse.js.map +1 -1
- package/lib/generated/models/RosettaConstructionMetadataResponseMetadata.js +2 -2
- package/lib/generated/models/RosettaConstructionMetadataResponseMetadata.js.map +1 -1
- package/lib/generated/models/RosettaConstructionParseRequest.js +2 -2
- package/lib/generated/models/RosettaConstructionParseRequest.js.map +1 -1
- package/lib/generated/models/RosettaConstructionParseResponse.js +3 -3
- package/lib/generated/models/RosettaConstructionParseResponse.js.map +1 -1
- package/lib/generated/models/RosettaConstructionPayloadsRequest.js +5 -5
- package/lib/generated/models/RosettaConstructionPayloadsRequest.js.map +1 -1
- package/lib/generated/models/RosettaConstructionPreprocessRequest.js +5 -5
- package/lib/generated/models/RosettaConstructionPreprocessRequest.js.map +1 -1
- package/lib/generated/models/RosettaConstructionPreprocessResponse.js +3 -3
- package/lib/generated/models/RosettaConstructionPreprocessResponse.js.map +1 -1
- package/lib/generated/models/RosettaConstructionSubmitRequest.js +2 -2
- package/lib/generated/models/RosettaConstructionSubmitRequest.js.map +1 -1
- package/lib/generated/models/RosettaConstructionSubmitResponse.js +3 -3
- package/lib/generated/models/RosettaConstructionSubmitResponse.js.map +1 -1
- package/lib/generated/models/RosettaCurrency.js +1 -1
- package/lib/generated/models/RosettaCurrency.js.map +1 -1
- package/lib/generated/models/RosettaError.js +2 -2
- package/lib/generated/models/RosettaError.js.map +1 -1
- package/lib/generated/models/RosettaErrorDetails.js +2 -2
- package/lib/generated/models/RosettaErrorDetails.js.map +1 -1
- package/lib/generated/models/RosettaMaxFeeAmount.js +3 -3
- package/lib/generated/models/RosettaMaxFeeAmount.js.map +1 -1
- package/lib/generated/models/RosettaMempoolRequest.js +3 -3
- package/lib/generated/models/RosettaMempoolRequest.js.map +1 -1
- package/lib/generated/models/RosettaMempoolResponse.js +1 -1
- package/lib/generated/models/RosettaMempoolResponse.js.map +1 -1
- package/lib/generated/models/RosettaMempoolTransactionRequest.js +4 -4
- package/lib/generated/models/RosettaMempoolTransactionRequest.js.map +1 -1
- package/lib/generated/models/RosettaMempoolTransactionResponse.js +3 -3
- package/lib/generated/models/RosettaMempoolTransactionResponse.js.map +1 -1
- package/lib/generated/models/RosettaNetworkListResponseSubNetworkIdentifier.js +2 -2
- package/lib/generated/models/RosettaNetworkListResponseSubNetworkIdentifier.js.map +1 -1
- package/lib/generated/models/RosettaNetworkOptionsResponse.js +4 -4
- package/lib/generated/models/RosettaNetworkOptionsResponse.js.map +1 -1
- package/lib/generated/models/RosettaNetworkOptionsResponseVersion.js +2 -2
- package/lib/generated/models/RosettaNetworkOptionsResponseVersion.js.map +1 -1
- package/lib/generated/models/RosettaNetworkStatusResponse.js +6 -6
- package/lib/generated/models/RosettaNetworkStatusResponse.js.map +1 -1
- package/lib/generated/models/RosettaOperation.js +11 -11
- package/lib/generated/models/RosettaOperation.js.map +1 -1
- package/lib/generated/models/RosettaOperationIdentifier.js +1 -1
- package/lib/generated/models/RosettaOperationIdentifier.js.map +1 -1
- package/lib/generated/models/RosettaOptions.js +20 -20
- package/lib/generated/models/RosettaOptions.js.map +1 -1
- package/lib/generated/models/RosettaOptionsRequest.js +3 -3
- package/lib/generated/models/RosettaOptionsRequest.js.map +1 -1
- package/lib/generated/models/RosettaPeers.js +1 -1
- package/lib/generated/models/RosettaPeers.js.map +1 -1
- package/lib/generated/models/RosettaRelatedOperation.js +1 -1
- package/lib/generated/models/RosettaRelatedOperation.js.map +1 -1
- package/lib/generated/models/RosettaSignature.js +4 -4
- package/lib/generated/models/RosettaSignature.js.map +1 -1
- package/lib/generated/models/RosettaStatusRequest.js +3 -3
- package/lib/generated/models/RosettaStatusRequest.js.map +1 -1
- package/lib/generated/models/RosettaSubAccount.js +1 -1
- package/lib/generated/models/RosettaSubAccount.js.map +1 -1
- package/lib/generated/models/RosettaSyncStatus.js +3 -3
- package/lib/generated/models/RosettaSyncStatus.js.map +1 -1
- package/lib/generated/models/RosettaTransaction.js +4 -4
- package/lib/generated/models/RosettaTransaction.js.map +1 -1
- package/lib/generated/models/RunFaucetResponse.js +2 -2
- package/lib/generated/models/RunFaucetResponse.js.map +1 -1
- package/lib/generated/models/ServerStatusResponse.js +3 -3
- package/lib/generated/models/ServerStatusResponse.js.map +1 -1
- package/lib/generated/models/SigningPayload.js +4 -4
- package/lib/generated/models/SigningPayload.js.map +1 -1
- package/lib/generated/models/SmartContract.d.ts +6 -0
- package/lib/generated/models/SmartContract.js +2 -0
- package/lib/generated/models/SmartContract.js.map +1 -1
- package/lib/generated/models/TransactionFeeEstimateRequest.js +1 -1
- package/lib/generated/models/TransactionFeeEstimateRequest.js.map +1 -1
- package/lib/generated/models/TransactionFeeEstimateResponse.js +4 -4
- package/lib/generated/models/TransactionFeeEstimateResponse.js.map +1 -1
- package/lib/generated/models/TransactionFeeEstimateResponseEstimations.js +2 -2
- package/lib/generated/models/TransactionFeeEstimateResponseEstimations.js.map +1 -1
- package/lib/generated/models/index.d.ts +6 -0
- package/lib/generated/models/index.js +11 -1
- package/lib/generated/models/index.js.map +1 -1
- package/lib/index.js +5 -1
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +525 -82
- package/lib/index.umd.js.map +1 -1
- package/lib/socket-io/index.d.ts +12 -0
- package/lib/socket-io/index.js +22 -1
- package/lib/socket-io/index.js.map +1 -1
- package/lib/ws/index.d.ts +9 -3
- package/lib/ws/index.js +64 -0
- package/lib/ws/index.js.map +1 -1
- package/package.json +5 -5
- package/src/generated/.openapi-generator/FILES +6 -0
- package/src/generated/apis/NonFungibleTokensApi.ts +4 -4
- package/src/generated/apis/SmartContractsApi.ts +8 -5
- package/src/generated/apis/TransactionsApi.ts +46 -0
- package/src/generated/models/Block.ts +8 -0
- package/src/generated/models/InboundStxTransfer.ts +2 -1
- package/src/generated/models/MempoolTransactionStatsResponse.ts +99 -0
- package/src/generated/models/MempoolTransactionStatsResponseTxAges.ts +87 -0
- package/src/generated/models/MempoolTransactionStatsResponseTxByteSizes.ts +87 -0
- package/src/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAverages.ts +87 -0
- package/src/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer.ts +80 -0
- package/src/generated/models/MempoolTransactionStatsResponseTxTypeCounts.ts +80 -0
- package/src/generated/models/NftEvent.ts +28 -4
- package/src/generated/models/SmartContract.ts +8 -0
- package/src/generated/models/index.ts +6 -0
- package/src/socket-io/index.ts +31 -0
- package/src/ws/index.ts +90 -8
package/src/ws/index.ts
CHANGED
|
@@ -2,11 +2,8 @@ import * as JsonRpcLite from 'jsonrpc-lite';
|
|
|
2
2
|
import { EventEmitter } from 'eventemitter3';
|
|
3
3
|
import {
|
|
4
4
|
RpcTxUpdateSubscriptionParams,
|
|
5
|
-
RpcTxUpdateNotificationParams,
|
|
6
5
|
RpcAddressTxSubscriptionParams,
|
|
7
|
-
RpcAddressTxNotificationParams,
|
|
8
6
|
RpcAddressBalanceSubscriptionParams,
|
|
9
|
-
RpcAddressBalanceNotificationParams,
|
|
10
7
|
RpcSubscriptionType,
|
|
11
8
|
Block,
|
|
12
9
|
RpcBlockSubscriptionParams,
|
|
@@ -14,6 +11,13 @@ import {
|
|
|
14
11
|
Transaction,
|
|
15
12
|
RpcMicroblockSubscriptionParams,
|
|
16
13
|
RpcMempoolSubscriptionParams,
|
|
14
|
+
MempoolTransaction,
|
|
15
|
+
RpcAddressBalanceNotificationParams,
|
|
16
|
+
RpcAddressTxNotificationParams,
|
|
17
|
+
NftEvent,
|
|
18
|
+
RpcNftEventSubscriptionParams,
|
|
19
|
+
RpcNftAssetEventSubscriptionParams,
|
|
20
|
+
RpcNftCollectionEventSubscriptionParams,
|
|
17
21
|
} from '@stacks/stacks-blockchain-api-types';
|
|
18
22
|
import { BASE_PATH } from '../generated/runtime';
|
|
19
23
|
|
|
@@ -35,9 +39,12 @@ export class StacksApiWebSocketClient {
|
|
|
35
39
|
block: (event: Block) => void;
|
|
36
40
|
microblock: (event: Microblock) => void;
|
|
37
41
|
mempool: (event: Transaction) => void;
|
|
38
|
-
txUpdate: (event:
|
|
42
|
+
txUpdate: (event: Transaction | MempoolTransaction) => any;
|
|
39
43
|
addressTxUpdate: (event: RpcAddressTxNotificationParams) => void;
|
|
40
44
|
addressBalanceUpdate: (event: RpcAddressBalanceNotificationParams) => void;
|
|
45
|
+
nftEventUpdate: (event: NftEvent) => void;
|
|
46
|
+
nftAssetEventUpdate: (event: NftEvent) => void;
|
|
47
|
+
nftCollectionEventUpdate: (event: NftEvent) => void;
|
|
41
48
|
}>();
|
|
42
49
|
|
|
43
50
|
public static async connect(url: string = BASE_PATH): Promise<StacksApiWebSocketClient> {
|
|
@@ -93,10 +100,11 @@ export class StacksApiWebSocketClient {
|
|
|
93
100
|
const method = data.method as RpcSubscriptionType;
|
|
94
101
|
switch (method) {
|
|
95
102
|
case 'tx_update':
|
|
96
|
-
this.eventEmitter.emit('txUpdate', data.params as
|
|
103
|
+
this.eventEmitter.emit('txUpdate', data.params as (Transaction | MempoolTransaction));
|
|
97
104
|
break;
|
|
98
105
|
case 'address_tx_update':
|
|
99
|
-
this.eventEmitter.emit('addressTxUpdate',
|
|
106
|
+
this.eventEmitter.emit('addressTxUpdate',
|
|
107
|
+
data.params as RpcAddressTxNotificationParams);
|
|
100
108
|
break;
|
|
101
109
|
case 'address_balance_update':
|
|
102
110
|
this.eventEmitter.emit(
|
|
@@ -113,6 +121,15 @@ export class StacksApiWebSocketClient {
|
|
|
113
121
|
case 'mempool':
|
|
114
122
|
this.eventEmitter.emit('mempool', data.params as Transaction);
|
|
115
123
|
break;
|
|
124
|
+
case 'nft_event':
|
|
125
|
+
this.eventEmitter.emit('nftEventUpdate', data.params as NftEvent);
|
|
126
|
+
break;
|
|
127
|
+
case 'nft_asset_event':
|
|
128
|
+
this.eventEmitter.emit('nftAssetEventUpdate', data.params as NftEvent);
|
|
129
|
+
break;
|
|
130
|
+
case 'nft_collection_event':
|
|
131
|
+
this.eventEmitter.emit('nftCollectionEventUpdate', data.params as NftEvent);
|
|
132
|
+
break;
|
|
116
133
|
}
|
|
117
134
|
}
|
|
118
135
|
|
|
@@ -171,11 +188,11 @@ export class StacksApiWebSocketClient {
|
|
|
171
188
|
|
|
172
189
|
async subscribeTxUpdates(
|
|
173
190
|
txId: string,
|
|
174
|
-
update: (event:
|
|
191
|
+
update: (event: Transaction | MempoolTransaction) => any
|
|
175
192
|
): Promise<Subscription> {
|
|
176
193
|
const params: RpcTxUpdateSubscriptionParams = { event: 'tx_update', tx_id: txId };
|
|
177
194
|
const subscribed = await this.rpcCall<{ tx_id: string }>('subscribe', params);
|
|
178
|
-
const listener = (event:
|
|
195
|
+
const listener = (event: Transaction | MempoolTransaction) => {
|
|
179
196
|
if (event.tx_id === subscribed.tx_id) {
|
|
180
197
|
update(event);
|
|
181
198
|
}
|
|
@@ -231,6 +248,71 @@ export class StacksApiWebSocketClient {
|
|
|
231
248
|
},
|
|
232
249
|
};
|
|
233
250
|
}
|
|
251
|
+
|
|
252
|
+
async subscribeNftEventUpdates(update: (event: NftEvent) => any): Promise<Subscription> {
|
|
253
|
+
const params: RpcNftEventSubscriptionParams = {
|
|
254
|
+
event: 'nft_event',
|
|
255
|
+
};
|
|
256
|
+
await this.rpcCall('subscribe', params);
|
|
257
|
+
const listener = (event: NftEvent) => {
|
|
258
|
+
update(event);
|
|
259
|
+
};
|
|
260
|
+
this.eventEmitter.addListener('nftEventUpdate', listener);
|
|
261
|
+
return {
|
|
262
|
+
unsubscribe: () => {
|
|
263
|
+
this.eventEmitter.removeListener('nftEventUpdate', listener);
|
|
264
|
+
return this.rpcCall('unsubscribe', params);
|
|
265
|
+
},
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
async subscribeNftAssetEventUpdates(
|
|
270
|
+
assetIdentifier: string,
|
|
271
|
+
value: string,
|
|
272
|
+
update: (event: NftEvent) => any
|
|
273
|
+
): Promise<Subscription> {
|
|
274
|
+
const params: RpcNftAssetEventSubscriptionParams = {
|
|
275
|
+
event: 'nft_asset_event',
|
|
276
|
+
asset_identifier: assetIdentifier,
|
|
277
|
+
value,
|
|
278
|
+
};
|
|
279
|
+
const subscribed = await this.rpcCall<{ asset_identifier: string, value: string }>('subscribe', params);
|
|
280
|
+
const listener = (event: NftEvent) => {
|
|
281
|
+
if (event.asset_identifier === subscribed.asset_identifier && event.value.hex === subscribed.value) {
|
|
282
|
+
update(event);
|
|
283
|
+
}
|
|
284
|
+
};
|
|
285
|
+
this.eventEmitter.addListener('nftAssetEventUpdate', listener);
|
|
286
|
+
return {
|
|
287
|
+
unsubscribe: () => {
|
|
288
|
+
this.eventEmitter.removeListener('nftAssetEventUpdate', listener);
|
|
289
|
+
return this.rpcCall('unsubscribe', params);
|
|
290
|
+
},
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
async subscribeNftCollectionEventUpdates(
|
|
295
|
+
assetIdentifier: string,
|
|
296
|
+
update: (event: NftEvent) => any
|
|
297
|
+
): Promise<Subscription> {
|
|
298
|
+
const params: RpcNftCollectionEventSubscriptionParams = {
|
|
299
|
+
event: 'nft_collection_event',
|
|
300
|
+
asset_identifier: assetIdentifier,
|
|
301
|
+
};
|
|
302
|
+
const subscribed = await this.rpcCall<{ asset_identifier: string }>('subscribe', params);
|
|
303
|
+
const listener = (event: NftEvent) => {
|
|
304
|
+
if (event.asset_identifier === subscribed.asset_identifier) {
|
|
305
|
+
update(event);
|
|
306
|
+
}
|
|
307
|
+
};
|
|
308
|
+
this.eventEmitter.addListener('nftCollectionEventUpdate', listener);
|
|
309
|
+
return {
|
|
310
|
+
unsubscribe: () => {
|
|
311
|
+
this.eventEmitter.removeListener('nftCollectionEventUpdate', listener);
|
|
312
|
+
return this.rpcCall('unsubscribe', params);
|
|
313
|
+
},
|
|
314
|
+
};
|
|
315
|
+
}
|
|
234
316
|
}
|
|
235
317
|
|
|
236
318
|
export async function connectWebSocketClient(
|