@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.
Files changed (237) hide show
  1. package/README.md +112 -50
  2. package/lib/generated/apis/AccountsApi.js +9 -9
  3. package/lib/generated/apis/AccountsApi.js.map +1 -1
  4. package/lib/generated/apis/BlocksApi.js +5 -5
  5. package/lib/generated/apis/BlocksApi.js.map +1 -1
  6. package/lib/generated/apis/FaucetsApi.js +4 -4
  7. package/lib/generated/apis/FaucetsApi.js.map +1 -1
  8. package/lib/generated/apis/FeesApi.js +4 -4
  9. package/lib/generated/apis/FeesApi.js.map +1 -1
  10. package/lib/generated/apis/FungibleTokensApi.js +2 -2
  11. package/lib/generated/apis/FungibleTokensApi.js.map +1 -1
  12. package/lib/generated/apis/InfoApi.js +7 -7
  13. package/lib/generated/apis/InfoApi.js.map +1 -1
  14. package/lib/generated/apis/MicroblocksApi.js +3 -3
  15. package/lib/generated/apis/MicroblocksApi.js.map +1 -1
  16. package/lib/generated/apis/NamesApi.js +5 -5
  17. package/lib/generated/apis/NamesApi.js.map +1 -1
  18. package/lib/generated/apis/NonFungibleTokensApi.d.ts +4 -4
  19. package/lib/generated/apis/NonFungibleTokensApi.js +7 -7
  20. package/lib/generated/apis/NonFungibleTokensApi.js.map +1 -1
  21. package/lib/generated/apis/RosettaApi.js +31 -31
  22. package/lib/generated/apis/RosettaApi.js.map +1 -1
  23. package/lib/generated/apis/SmartContractsApi.d.ts +5 -5
  24. package/lib/generated/apis/SmartContractsApi.js +7 -7
  25. package/lib/generated/apis/SmartContractsApi.js.map +1 -1
  26. package/lib/generated/apis/StackingRewardsApi.js +5 -5
  27. package/lib/generated/apis/StackingRewardsApi.js.map +1 -1
  28. package/lib/generated/apis/TransactionsApi.d.ts +24 -1
  29. package/lib/generated/apis/TransactionsApi.js +31 -8
  30. package/lib/generated/apis/TransactionsApi.js.map +1 -1
  31. package/lib/generated/apis/index.js +5 -1
  32. package/lib/generated/apis/index.js.map +1 -1
  33. package/lib/generated/index.js +5 -1
  34. package/lib/generated/index.js.map +1 -1
  35. package/lib/generated/models/AddressBalanceResponse.js +4 -4
  36. package/lib/generated/models/AddressBalanceResponse.js.map +1 -1
  37. package/lib/generated/models/AddressTransactionWithTransfers.js +2 -2
  38. package/lib/generated/models/AddressTransactionWithTransfers.js.map +1 -1
  39. package/lib/generated/models/AddressTransactionWithTransfersFtTransfers.js +2 -2
  40. package/lib/generated/models/AddressTransactionWithTransfersFtTransfers.js.map +1 -1
  41. package/lib/generated/models/AddressTransactionWithTransfersNftTransfers.js +4 -4
  42. package/lib/generated/models/AddressTransactionWithTransfersNftTransfers.js.map +1 -1
  43. package/lib/generated/models/AddressTransactionWithTransfersStxTransfers.js +2 -2
  44. package/lib/generated/models/AddressTransactionWithTransfersStxTransfers.js.map +1 -1
  45. package/lib/generated/models/Block.d.ts +8 -0
  46. package/lib/generated/models/Block.js +2 -0
  47. package/lib/generated/models/Block.js.map +1 -1
  48. package/lib/generated/models/BnsError.js +1 -1
  49. package/lib/generated/models/BnsError.js.map +1 -1
  50. package/lib/generated/models/BnsGetNameInfoResponse.js +3 -3
  51. package/lib/generated/models/BnsGetNameInfoResponse.js.map +1 -1
  52. package/lib/generated/models/ChainTip.js +2 -2
  53. package/lib/generated/models/ChainTip.js.map +1 -1
  54. package/lib/generated/models/InboundStxTransfer.d.ts +2 -1
  55. package/lib/generated/models/InboundStxTransfer.js +1 -0
  56. package/lib/generated/models/InboundStxTransfer.js.map +1 -1
  57. package/lib/generated/models/InlineObject.js +2 -2
  58. package/lib/generated/models/InlineObject.js.map +1 -1
  59. package/lib/generated/models/InlineObject1.js +1 -1
  60. package/lib/generated/models/InlineObject1.js.map +1 -1
  61. package/lib/generated/models/MapEntryResponse.js +1 -1
  62. package/lib/generated/models/MapEntryResponse.js.map +1 -1
  63. package/lib/generated/models/MempoolTransactionStatsResponse.d.ts +46 -0
  64. package/lib/generated/models/MempoolTransactionStatsResponse.js +49 -0
  65. package/lib/generated/models/MempoolTransactionStatsResponse.js.map +1 -0
  66. package/lib/generated/models/MempoolTransactionStatsResponseTxAges.d.ts +46 -0
  67. package/lib/generated/models/MempoolTransactionStatsResponseTxAges.js +49 -0
  68. package/lib/generated/models/MempoolTransactionStatsResponseTxAges.js.map +1 -0
  69. package/lib/generated/models/MempoolTransactionStatsResponseTxByteSizes.d.ts +46 -0
  70. package/lib/generated/models/MempoolTransactionStatsResponseTxByteSizes.js +49 -0
  71. package/lib/generated/models/MempoolTransactionStatsResponseTxByteSizes.js.map +1 -0
  72. package/lib/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAverages.d.ts +46 -0
  73. package/lib/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAverages.js +49 -0
  74. package/lib/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAverages.js.map +1 -0
  75. package/lib/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer.d.ts +45 -0
  76. package/lib/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer.js +48 -0
  77. package/lib/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer.js.map +1 -0
  78. package/lib/generated/models/MempoolTransactionStatsResponseTxTypeCounts.d.ts +45 -0
  79. package/lib/generated/models/MempoolTransactionStatsResponseTxTypeCounts.js +48 -0
  80. package/lib/generated/models/MempoolTransactionStatsResponseTxTypeCounts.js.map +1 -0
  81. package/lib/generated/models/NetworkBlockTimesResponse.js +4 -4
  82. package/lib/generated/models/NetworkBlockTimesResponse.js.map +1 -1
  83. package/lib/generated/models/NetworkIdentifier.js +2 -2
  84. package/lib/generated/models/NetworkIdentifier.js.map +1 -1
  85. package/lib/generated/models/NftEvent.d.ts +20 -2
  86. package/lib/generated/models/NftEvent.js +11 -4
  87. package/lib/generated/models/NftEvent.js.map +1 -1
  88. package/lib/generated/models/ReadOnlyFunctionSuccessResponse.js +2 -2
  89. package/lib/generated/models/ReadOnlyFunctionSuccessResponse.js.map +1 -1
  90. package/lib/generated/models/RosettaAccount.js +3 -3
  91. package/lib/generated/models/RosettaAccount.js.map +1 -1
  92. package/lib/generated/models/RosettaAccountBalanceRequest.js +5 -5
  93. package/lib/generated/models/RosettaAccountBalanceRequest.js.map +1 -1
  94. package/lib/generated/models/RosettaAccountBalanceResponse.js +3 -3
  95. package/lib/generated/models/RosettaAccountBalanceResponse.js.map +1 -1
  96. package/lib/generated/models/RosettaAccountIdentifier.js +3 -3
  97. package/lib/generated/models/RosettaAccountIdentifier.js.map +1 -1
  98. package/lib/generated/models/RosettaAmount.js +3 -3
  99. package/lib/generated/models/RosettaAmount.js.map +1 -1
  100. package/lib/generated/models/RosettaBlock.js +4 -4
  101. package/lib/generated/models/RosettaBlock.js.map +1 -1
  102. package/lib/generated/models/RosettaBlockMetadata.js +3 -3
  103. package/lib/generated/models/RosettaBlockMetadata.js.map +1 -1
  104. package/lib/generated/models/RosettaBlockRequest.js +2 -2
  105. package/lib/generated/models/RosettaBlockRequest.js.map +1 -1
  106. package/lib/generated/models/RosettaBlockResponse.js +3 -3
  107. package/lib/generated/models/RosettaBlockResponse.js.map +1 -1
  108. package/lib/generated/models/RosettaBlockTransactionRequest.js +4 -4
  109. package/lib/generated/models/RosettaBlockTransactionRequest.js.map +1 -1
  110. package/lib/generated/models/RosettaBlockTransactionResponse.js +2 -2
  111. package/lib/generated/models/RosettaBlockTransactionResponse.js.map +1 -1
  112. package/lib/generated/models/RosettaCoin.js +4 -4
  113. package/lib/generated/models/RosettaCoin.js.map +1 -1
  114. package/lib/generated/models/RosettaCoinChange.js +2 -2
  115. package/lib/generated/models/RosettaCoinChange.js.map +1 -1
  116. package/lib/generated/models/RosettaConstructionCombineRequest.js +2 -2
  117. package/lib/generated/models/RosettaConstructionCombineRequest.js.map +1 -1
  118. package/lib/generated/models/RosettaConstructionDeriveRequest.js +5 -5
  119. package/lib/generated/models/RosettaConstructionDeriveRequest.js.map +1 -1
  120. package/lib/generated/models/RosettaConstructionDeriveResponse.js +4 -4
  121. package/lib/generated/models/RosettaConstructionDeriveResponse.js.map +1 -1
  122. package/lib/generated/models/RosettaConstructionHashRequest.js +2 -2
  123. package/lib/generated/models/RosettaConstructionHashRequest.js.map +1 -1
  124. package/lib/generated/models/RosettaConstructionHashResponse.js +3 -3
  125. package/lib/generated/models/RosettaConstructionHashResponse.js.map +1 -1
  126. package/lib/generated/models/RosettaConstructionMetadataRequest.js +5 -5
  127. package/lib/generated/models/RosettaConstructionMetadataRequest.js.map +1 -1
  128. package/lib/generated/models/RosettaConstructionMetadataResponse.js +3 -3
  129. package/lib/generated/models/RosettaConstructionMetadataResponse.js.map +1 -1
  130. package/lib/generated/models/RosettaConstructionMetadataResponseMetadata.js +2 -2
  131. package/lib/generated/models/RosettaConstructionMetadataResponseMetadata.js.map +1 -1
  132. package/lib/generated/models/RosettaConstructionParseRequest.js +2 -2
  133. package/lib/generated/models/RosettaConstructionParseRequest.js.map +1 -1
  134. package/lib/generated/models/RosettaConstructionParseResponse.js +3 -3
  135. package/lib/generated/models/RosettaConstructionParseResponse.js.map +1 -1
  136. package/lib/generated/models/RosettaConstructionPayloadsRequest.js +5 -5
  137. package/lib/generated/models/RosettaConstructionPayloadsRequest.js.map +1 -1
  138. package/lib/generated/models/RosettaConstructionPreprocessRequest.js +5 -5
  139. package/lib/generated/models/RosettaConstructionPreprocessRequest.js.map +1 -1
  140. package/lib/generated/models/RosettaConstructionPreprocessResponse.js +3 -3
  141. package/lib/generated/models/RosettaConstructionPreprocessResponse.js.map +1 -1
  142. package/lib/generated/models/RosettaConstructionSubmitRequest.js +2 -2
  143. package/lib/generated/models/RosettaConstructionSubmitRequest.js.map +1 -1
  144. package/lib/generated/models/RosettaConstructionSubmitResponse.js +3 -3
  145. package/lib/generated/models/RosettaConstructionSubmitResponse.js.map +1 -1
  146. package/lib/generated/models/RosettaCurrency.js +1 -1
  147. package/lib/generated/models/RosettaCurrency.js.map +1 -1
  148. package/lib/generated/models/RosettaError.js +2 -2
  149. package/lib/generated/models/RosettaError.js.map +1 -1
  150. package/lib/generated/models/RosettaErrorDetails.js +2 -2
  151. package/lib/generated/models/RosettaErrorDetails.js.map +1 -1
  152. package/lib/generated/models/RosettaMaxFeeAmount.js +3 -3
  153. package/lib/generated/models/RosettaMaxFeeAmount.js.map +1 -1
  154. package/lib/generated/models/RosettaMempoolRequest.js +3 -3
  155. package/lib/generated/models/RosettaMempoolRequest.js.map +1 -1
  156. package/lib/generated/models/RosettaMempoolResponse.js +1 -1
  157. package/lib/generated/models/RosettaMempoolResponse.js.map +1 -1
  158. package/lib/generated/models/RosettaMempoolTransactionRequest.js +4 -4
  159. package/lib/generated/models/RosettaMempoolTransactionRequest.js.map +1 -1
  160. package/lib/generated/models/RosettaMempoolTransactionResponse.js +3 -3
  161. package/lib/generated/models/RosettaMempoolTransactionResponse.js.map +1 -1
  162. package/lib/generated/models/RosettaNetworkListResponseSubNetworkIdentifier.js +2 -2
  163. package/lib/generated/models/RosettaNetworkListResponseSubNetworkIdentifier.js.map +1 -1
  164. package/lib/generated/models/RosettaNetworkOptionsResponse.js +4 -4
  165. package/lib/generated/models/RosettaNetworkOptionsResponse.js.map +1 -1
  166. package/lib/generated/models/RosettaNetworkOptionsResponseVersion.js +2 -2
  167. package/lib/generated/models/RosettaNetworkOptionsResponseVersion.js.map +1 -1
  168. package/lib/generated/models/RosettaNetworkStatusResponse.js +6 -6
  169. package/lib/generated/models/RosettaNetworkStatusResponse.js.map +1 -1
  170. package/lib/generated/models/RosettaOperation.js +11 -11
  171. package/lib/generated/models/RosettaOperation.js.map +1 -1
  172. package/lib/generated/models/RosettaOperationIdentifier.js +1 -1
  173. package/lib/generated/models/RosettaOperationIdentifier.js.map +1 -1
  174. package/lib/generated/models/RosettaOptions.js +20 -20
  175. package/lib/generated/models/RosettaOptions.js.map +1 -1
  176. package/lib/generated/models/RosettaOptionsRequest.js +3 -3
  177. package/lib/generated/models/RosettaOptionsRequest.js.map +1 -1
  178. package/lib/generated/models/RosettaPeers.js +1 -1
  179. package/lib/generated/models/RosettaPeers.js.map +1 -1
  180. package/lib/generated/models/RosettaRelatedOperation.js +1 -1
  181. package/lib/generated/models/RosettaRelatedOperation.js.map +1 -1
  182. package/lib/generated/models/RosettaSignature.js +4 -4
  183. package/lib/generated/models/RosettaSignature.js.map +1 -1
  184. package/lib/generated/models/RosettaStatusRequest.js +3 -3
  185. package/lib/generated/models/RosettaStatusRequest.js.map +1 -1
  186. package/lib/generated/models/RosettaSubAccount.js +1 -1
  187. package/lib/generated/models/RosettaSubAccount.js.map +1 -1
  188. package/lib/generated/models/RosettaSyncStatus.js +3 -3
  189. package/lib/generated/models/RosettaSyncStatus.js.map +1 -1
  190. package/lib/generated/models/RosettaTransaction.js +4 -4
  191. package/lib/generated/models/RosettaTransaction.js.map +1 -1
  192. package/lib/generated/models/RunFaucetResponse.js +2 -2
  193. package/lib/generated/models/RunFaucetResponse.js.map +1 -1
  194. package/lib/generated/models/ServerStatusResponse.js +3 -3
  195. package/lib/generated/models/ServerStatusResponse.js.map +1 -1
  196. package/lib/generated/models/SigningPayload.js +4 -4
  197. package/lib/generated/models/SigningPayload.js.map +1 -1
  198. package/lib/generated/models/SmartContract.d.ts +6 -0
  199. package/lib/generated/models/SmartContract.js +2 -0
  200. package/lib/generated/models/SmartContract.js.map +1 -1
  201. package/lib/generated/models/TransactionFeeEstimateRequest.js +1 -1
  202. package/lib/generated/models/TransactionFeeEstimateRequest.js.map +1 -1
  203. package/lib/generated/models/TransactionFeeEstimateResponse.js +4 -4
  204. package/lib/generated/models/TransactionFeeEstimateResponse.js.map +1 -1
  205. package/lib/generated/models/TransactionFeeEstimateResponseEstimations.js +2 -2
  206. package/lib/generated/models/TransactionFeeEstimateResponseEstimations.js.map +1 -1
  207. package/lib/generated/models/index.d.ts +6 -0
  208. package/lib/generated/models/index.js +11 -1
  209. package/lib/generated/models/index.js.map +1 -1
  210. package/lib/index.js +5 -1
  211. package/lib/index.js.map +1 -1
  212. package/lib/index.umd.js +525 -82
  213. package/lib/index.umd.js.map +1 -1
  214. package/lib/socket-io/index.d.ts +12 -0
  215. package/lib/socket-io/index.js +22 -1
  216. package/lib/socket-io/index.js.map +1 -1
  217. package/lib/ws/index.d.ts +9 -3
  218. package/lib/ws/index.js +64 -0
  219. package/lib/ws/index.js.map +1 -1
  220. package/package.json +5 -5
  221. package/src/generated/.openapi-generator/FILES +6 -0
  222. package/src/generated/apis/NonFungibleTokensApi.ts +4 -4
  223. package/src/generated/apis/SmartContractsApi.ts +8 -5
  224. package/src/generated/apis/TransactionsApi.ts +46 -0
  225. package/src/generated/models/Block.ts +8 -0
  226. package/src/generated/models/InboundStxTransfer.ts +2 -1
  227. package/src/generated/models/MempoolTransactionStatsResponse.ts +99 -0
  228. package/src/generated/models/MempoolTransactionStatsResponseTxAges.ts +87 -0
  229. package/src/generated/models/MempoolTransactionStatsResponseTxByteSizes.ts +87 -0
  230. package/src/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAverages.ts +87 -0
  231. package/src/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer.ts +80 -0
  232. package/src/generated/models/MempoolTransactionStatsResponseTxTypeCounts.ts +80 -0
  233. package/src/generated/models/NftEvent.ts +28 -4
  234. package/src/generated/models/SmartContract.ts +8 -0
  235. package/src/generated/models/index.ts +6 -0
  236. package/src/socket-io/index.ts +31 -0
  237. 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: RpcTxUpdateNotificationParams) => any;
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 RpcTxUpdateNotificationParams);
103
+ this.eventEmitter.emit('txUpdate', data.params as (Transaction | MempoolTransaction));
97
104
  break;
98
105
  case 'address_tx_update':
99
- this.eventEmitter.emit('addressTxUpdate', data.params as RpcAddressTxNotificationParams);
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: RpcTxUpdateNotificationParams) => any
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: RpcTxUpdateNotificationParams) => {
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(