@requestnetwork/data-access 0.28.1-next.1936 → 0.28.1-next.1938

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 (60) hide show
  1. package/dist/combined-data-access.d.ts +0 -1
  2. package/dist/combined-data-access.d.ts.map +1 -1
  3. package/dist/combined-data-access.js.map +1 -1
  4. package/dist/data-read.d.ts +17 -0
  5. package/dist/data-read.d.ts.map +1 -0
  6. package/dist/data-read.js +158 -0
  7. package/dist/data-read.js.map +1 -0
  8. package/dist/data-write.d.ts +10 -0
  9. package/dist/data-write.d.ts.map +1 -0
  10. package/dist/data-write.js +48 -0
  11. package/dist/data-write.js.map +1 -0
  12. package/dist/in-memory-indexer.d.ts +18 -0
  13. package/dist/in-memory-indexer.d.ts.map +1 -0
  14. package/dist/in-memory-indexer.js +107 -0
  15. package/dist/in-memory-indexer.js.map +1 -0
  16. package/dist/index.d.ts +5 -2
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +9 -5
  19. package/dist/index.js.map +1 -1
  20. package/dist/mock-data-access.d.ts +13 -0
  21. package/dist/mock-data-access.d.ts.map +1 -0
  22. package/dist/mock-data-access.js +29 -0
  23. package/dist/mock-data-access.js.map +1 -0
  24. package/dist/pending-store.d.ts +16 -0
  25. package/dist/pending-store.d.ts.map +1 -0
  26. package/dist/pending-store.js +33 -0
  27. package/dist/pending-store.js.map +1 -0
  28. package/dist/types.d.ts +7 -0
  29. package/dist/types.d.ts.map +1 -0
  30. package/dist/types.js +3 -0
  31. package/dist/types.js.map +1 -0
  32. package/package.json +5 -9
  33. package/dist/data-access.d.ts +0 -148
  34. package/dist/data-access.d.ts.map +0 -1
  35. package/dist/data-access.js +0 -428
  36. package/dist/data-access.js.map +0 -1
  37. package/dist/ignored-location.d.ts +0 -58
  38. package/dist/ignored-location.d.ts.map +0 -1
  39. package/dist/ignored-location.js +0 -96
  40. package/dist/ignored-location.js.map +0 -1
  41. package/dist/interval-timer.d.ts +0 -41
  42. package/dist/interval-timer.d.ts.map +0 -1
  43. package/dist/interval-timer.js +0 -94
  44. package/dist/interval-timer.js.map +0 -1
  45. package/dist/transaction-index/index.d.ts +0 -5
  46. package/dist/transaction-index/index.d.ts.map +0 -1
  47. package/dist/transaction-index/index.js +0 -8
  48. package/dist/transaction-index/index.js.map +0 -1
  49. package/dist/transaction-index/location-by-topic.d.ts +0 -53
  50. package/dist/transaction-index/location-by-topic.d.ts.map +0 -1
  51. package/dist/transaction-index/location-by-topic.js +0 -103
  52. package/dist/transaction-index/location-by-topic.js.map +0 -1
  53. package/dist/transaction-index/timestamp-by-location.d.ts +0 -60
  54. package/dist/transaction-index/timestamp-by-location.d.ts.map +0 -1
  55. package/dist/transaction-index/timestamp-by-location.js +0 -108
  56. package/dist/transaction-index/timestamp-by-location.js.map +0 -1
  57. package/dist/transaction-index/transaction-index.d.ts +0 -74
  58. package/dist/transaction-index/transaction-index.d.ts.map +0 -1
  59. package/dist/transaction-index/transaction-index.js +0 -204
  60. package/dist/transaction-index/transaction-index.js.map +0 -1
@@ -9,6 +9,5 @@ export declare abstract class CombinedDataAccess implements DataAccessTypes.IDat
9
9
  getChannelsByTopic: (topic: string, updatedBetween?: DataAccessTypes.ITimestampBoundaries | undefined) => Promise<DataAccessTypes.IReturnGetChannelsByTopic>;
10
10
  getChannelsByMultipleTopics: (topics: string[], updatedBetween?: DataAccessTypes.ITimestampBoundaries) => Promise<DataAccessTypes.IReturnGetChannelsByTopic>;
11
11
  persistTransaction: (transactionData: DataAccessTypes.ITransaction, channelId: string, topics?: string[] | undefined) => Promise<DataAccessTypes.IReturnPersistTransaction>;
12
- abstract _getStatus(): Promise<any>;
13
12
  }
14
13
  //# sourceMappingURL=combined-data-access.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"combined-data-access.d.ts","sourceRoot":"","sources":["../src/combined-data-access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,8BAAsB,kBAAmB,YAAW,eAAe,CAAC,WAAW;IAE3E,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,SAAS;IAC3C,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU;gBADlC,MAAM,EAAE,eAAe,CAAC,SAAS,EACjC,MAAM,EAAE,eAAe,CAAC,UAAU;IAQxC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,0BAA0B,EAAE,CAC1B,SAAS,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,eAAe,CAAC,oBAAoB,GAAG,SAAS,KAC9D,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;IAErD,kBAAkB,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,eAAe,CAAC,oBAAoB,GAAG,SAAS,KAC9D,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC;IACxD,2BAA2B,EAAE,CAC3B,MAAM,EAAE,MAAM,EAAE,EAChB,cAAc,CAAC,EAAE,eAAe,CAAC,oBAAoB,KAClD,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC;IACxD,kBAAkB,EAAE,CAClB,eAAe,EAAE,eAAe,CAAC,YAAY,EAC7C,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,KAC1B,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC;IAExD,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;CACpC"}
1
+ {"version":3,"file":"combined-data-access.d.ts","sourceRoot":"","sources":["../src/combined-data-access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,8BAAsB,kBAAmB,YAAW,eAAe,CAAC,WAAW;IAE3E,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,SAAS;IAC3C,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU;gBADlC,MAAM,EAAE,eAAe,CAAC,SAAS,EACjC,MAAM,EAAE,eAAe,CAAC,UAAU;IAQxC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,0BAA0B,EAAE,CAC1B,SAAS,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,eAAe,CAAC,oBAAoB,GAAG,SAAS,KAC9D,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;IAErD,kBAAkB,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,eAAe,CAAC,oBAAoB,GAAG,SAAS,KAC9D,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC;IACxD,2BAA2B,EAAE,CAC3B,MAAM,EAAE,MAAM,EAAE,EAChB,cAAc,CAAC,EAAE,eAAe,CAAC,oBAAoB,KAClD,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC;IACxD,kBAAkB,EAAE,CAClB,eAAe,EAAE,eAAe,CAAC,YAAY,EAC7C,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,KAC1B,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC;CACzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"combined-data-access.js","sourceRoot":"","sources":["../src/combined-data-access.ts"],"names":[],"mappings":";;;;AAEA,MAAsB,kBAAkB;IACtC,YACY,MAAiC,EACjC,MAAkC;QADlC,WAAM,GAAN,MAAM,CAA2B;QACjC,WAAM,GAAN,MAAM,CAA4B;QAE5C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3F,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7F,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAC;IAEK,UAAU;;YACd,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACjC,CAAC;KAAA;IAEK,KAAK;;YACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;KAAA;CAsBF;AAzCD,gDAyCC"}
1
+ {"version":3,"file":"combined-data-access.js","sourceRoot":"","sources":["../src/combined-data-access.ts"],"names":[],"mappings":";;;;AAEA,MAAsB,kBAAkB;IACtC,YACY,MAAiC,EACjC,MAAkC;QADlC,WAAM,GAAN,MAAM,CAA2B;QACjC,WAAM,GAAN,MAAM,CAA4B;QAE5C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3F,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7F,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAC;IAEK,UAAU;;YACd,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACjC,CAAC;KAAA;IAEK,KAAK;;YACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;KAAA;CAoBF;AAvCD,gDAuCC"}
@@ -0,0 +1,17 @@
1
+ import { DataAccessTypes, StorageTypes } from '@requestnetwork/types';
2
+ import { DataAccessBaseOptions } from './types';
3
+ export declare class DataAccessRead implements DataAccessTypes.IDataRead {
4
+ private readonly storage;
5
+ private network;
6
+ private pendingStore?;
7
+ constructor(storage: StorageTypes.IIndexer, { network, pendingStore }: DataAccessBaseOptions);
8
+ initialize(): Promise<void>;
9
+ close(): Promise<void>;
10
+ getTransactionsByChannelId(channelId: string, updatedBetween?: DataAccessTypes.ITimestampBoundaries): Promise<DataAccessTypes.IReturnGetTransactions>;
11
+ getChannelsByTopic(topic: string, updatedBetween?: DataAccessTypes.ITimestampBoundaries | undefined): Promise<DataAccessTypes.IReturnGetChannelsByTopic>;
12
+ getChannelsByMultipleTopics(topics: string[], updatedBetween?: DataAccessTypes.ITimestampBoundaries): Promise<DataAccessTypes.IReturnGetChannelsByTopic>;
13
+ private getPending;
14
+ protected toStorageMeta(result: StorageTypes.IIndexedTransaction, lastBlockNumber: number, network: string): StorageTypes.IEntryMetadata;
15
+ protected toTimestampedTransaction(transaction: StorageTypes.IIndexedTransaction): DataAccessTypes.ITimestampedTransaction;
16
+ }
17
+ //# sourceMappingURL=data-read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-read.d.ts","sourceRoot":"","sources":["../src/data-read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,qBAAa,cAAe,YAAW,eAAe,CAAC,SAAS;IAM5D,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,YAAY,CAAC,CAAgC;gBAGlC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAC/C,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,qBAAqB;IAM5C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhB,0BAA0B,CAC9B,SAAS,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,eAAe,CAAC,oBAAoB,GACpD,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC;IAqB5C,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,eAAe,CAAC,oBAAoB,GAAG,SAAS,GAChE,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;IAI/C,2BAA2B,CAC/B,MAAM,EAAE,MAAM,EAAE,EAChB,cAAc,CAAC,EAAE,eAAe,CAAC,oBAAoB,GACpD,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;YAyDvC,UAAU;IAyCxB,SAAS,CAAC,aAAa,CACrB,MAAM,EAAE,YAAY,CAAC,mBAAmB,EACxC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GACd,YAAY,CAAC,cAAc;IAmB9B,SAAS,CAAC,wBAAwB,CAChC,WAAW,EAAE,YAAY,CAAC,mBAAmB,GAC5C,eAAe,CAAC,uBAAuB;CAY3C"}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataAccessRead = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const types_1 = require("@requestnetwork/types");
6
+ class DataAccessRead {
7
+ constructor(storage, { network, pendingStore }) {
8
+ this.storage = storage;
9
+ this.network = network;
10
+ this.pendingStore = pendingStore;
11
+ }
12
+ initialize() {
13
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
14
+ yield this.storage.initialize();
15
+ });
16
+ }
17
+ close() {
18
+ return Promise.resolve();
19
+ }
20
+ getTransactionsByChannelId(channelId, updatedBetween) {
21
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
22
+ const pending = yield this.getPending(channelId);
23
+ const result = yield this.storage.getTransactionsByChannelId(channelId, updatedBetween);
24
+ return {
25
+ meta: {
26
+ transactionsStorageLocation: result.transactions
27
+ .map((x) => x.hash)
28
+ .concat(pending.meta.transactionsStorageLocation),
29
+ storageMeta: result.transactions.map((tx) => this.toStorageMeta(tx, result.blockNumber, this.network)),
30
+ },
31
+ result: {
32
+ transactions: result.transactions
33
+ .map(this.toTimestampedTransaction)
34
+ .concat(pending.result.transactions),
35
+ },
36
+ };
37
+ });
38
+ }
39
+ getChannelsByTopic(topic, updatedBetween) {
40
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
41
+ return this.getChannelsByMultipleTopics([topic], updatedBetween);
42
+ });
43
+ }
44
+ getChannelsByMultipleTopics(topics, updatedBetween) {
45
+ var _a;
46
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
+ const result = yield this.storage.getTransactionsByTopics(topics);
48
+ const pending = ((_a = this.pendingStore) === null || _a === void 0 ? void 0 : _a.findByTopics(topics)) || [];
49
+ const pendingItems = pending.map((item) => {
50
+ var _a, _b, _c, _d, _e;
51
+ return (Object.assign(Object.assign({ hash: item.storageResult.id, channelId: item.channelId }, item.transaction), { blockNumber: ((_a = item.storageResult.meta.ethereum) === null || _a === void 0 ? void 0 : _a.blockNumber) || -1, blockTimestamp: ((_b = item.storageResult.meta.ethereum) === null || _b === void 0 ? void 0 : _b.blockTimestamp) || -1, transactionHash: ((_c = item.storageResult.meta.ethereum) === null || _c === void 0 ? void 0 : _c.transactionHash) || '', smartContractAddress: ((_d = item.storageResult.meta.ethereum) === null || _d === void 0 ? void 0 : _d.smartContractAddress) || '', size: String(((_e = item.storageResult.meta.ipfs) === null || _e === void 0 ? void 0 : _e.size) || 0), topics: item.topics || [] }));
52
+ });
53
+ const transactions = result.transactions.concat(...pendingItems);
54
+ // list of channels having at least one tx updated during the updatedBetween boundaries
55
+ const channels = (updatedBetween
56
+ ? transactions.filter((tx) => tx.blockTimestamp >= (updatedBetween.from || 0) &&
57
+ tx.blockTimestamp <= (updatedBetween.to || Number.MAX_SAFE_INTEGER))
58
+ : transactions).map((x) => x.channelId);
59
+ const filteredTxs = transactions.filter((tx) => channels.includes(tx.channelId));
60
+ return {
61
+ meta: {
62
+ storageMeta: filteredTxs.reduce((acc, tx) => {
63
+ acc[tx.channelId] = [this.toStorageMeta(tx, result.blockNumber, this.network)];
64
+ return acc;
65
+ }, {}),
66
+ transactionsStorageLocation: filteredTxs.reduce((prev, curr) => {
67
+ if (!prev[curr.channelId]) {
68
+ prev[curr.channelId] = [];
69
+ }
70
+ prev[curr.channelId].push(curr.hash);
71
+ return prev;
72
+ }, {}),
73
+ },
74
+ result: {
75
+ transactions: filteredTxs.reduce((prev, curr) => {
76
+ if (!prev[curr.channelId]) {
77
+ prev[curr.channelId] = [];
78
+ }
79
+ prev[curr.channelId].push(this.toTimestampedTransaction(curr));
80
+ return prev;
81
+ }, {}),
82
+ },
83
+ };
84
+ });
85
+ }
86
+ getPending(channelId) {
87
+ var _a, _b;
88
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
89
+ const emptyResult = {
90
+ meta: {
91
+ transactionsStorageLocation: [],
92
+ storageMeta: [],
93
+ },
94
+ result: {
95
+ transactions: [],
96
+ },
97
+ };
98
+ const pending = (_a = this.pendingStore) === null || _a === void 0 ? void 0 : _a.get(channelId);
99
+ if (!pending) {
100
+ return emptyResult;
101
+ }
102
+ const { storageResult, transaction } = pending;
103
+ const { transactions } = yield this.storage.getTransactionsByStorageLocation(storageResult.id);
104
+ // if the pending tx is found, remove its state and fetch the real data
105
+ if (transactions.length > 0) {
106
+ (_b = this.pendingStore) === null || _b === void 0 ? void 0 : _b.remove(channelId);
107
+ return emptyResult;
108
+ }
109
+ return {
110
+ meta: {
111
+ transactionsStorageLocation: [storageResult.id],
112
+ storageMeta: [storageResult.meta],
113
+ },
114
+ result: {
115
+ transactions: [
116
+ {
117
+ state: types_1.DataAccessTypes.TransactionState.PENDING,
118
+ timestamp: storageResult.meta.timestamp,
119
+ transaction,
120
+ },
121
+ ],
122
+ },
123
+ };
124
+ });
125
+ }
126
+ toStorageMeta(result, lastBlockNumber, network) {
127
+ return {
128
+ ethereum: {
129
+ blockConfirmation: lastBlockNumber - result.blockNumber,
130
+ blockNumber: result.blockNumber,
131
+ blockTimestamp: result.blockTimestamp,
132
+ networkName: network,
133
+ smartContractAddress: result.smartContractAddress,
134
+ transactionHash: result.transactionHash,
135
+ },
136
+ ipfs: {
137
+ size: parseInt(result.size),
138
+ },
139
+ state: types_1.StorageTypes.ContentState.CONFIRMED,
140
+ storageType: types_1.StorageTypes.StorageSystemType.ETHEREUM_IPFS,
141
+ timestamp: result.blockTimestamp,
142
+ };
143
+ }
144
+ toTimestampedTransaction(transaction) {
145
+ return {
146
+ state: types_1.DataAccessTypes.TransactionState.CONFIRMED,
147
+ timestamp: transaction.blockTimestamp,
148
+ transaction: {
149
+ data: transaction.data || undefined,
150
+ encryptedData: transaction.encryptedData || undefined,
151
+ encryptionMethod: transaction.encryptionMethod || undefined,
152
+ keys: transaction.keys || undefined,
153
+ },
154
+ };
155
+ }
156
+ }
157
+ exports.DataAccessRead = DataAccessRead;
158
+ //# sourceMappingURL=data-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-read.js","sourceRoot":"","sources":["../src/data-read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { DataAccessTypes, StorageTypes } from '@requestnetwork/types';
2
+ export declare class DataAccessWrite implements DataAccessTypes.IDataWrite {
3
+ protected readonly storage: StorageTypes.IStorageWrite;
4
+ private readonly pendingStore?;
5
+ constructor(storage: StorageTypes.IStorageWrite, pendingStore?: DataAccessTypes.IPendingStore | undefined);
6
+ initialize(): Promise<void>;
7
+ close(): Promise<void>;
8
+ persistTransaction(transaction: DataAccessTypes.ITransaction, channelId: string, topics?: string[] | undefined): Promise<DataAccessTypes.IReturnPersistTransaction>;
9
+ }
10
+ //# sourceMappingURL=data-write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-write.d.ts","sourceRoot":"","sources":["../src/data-write.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEtE,qBAAa,eAAgB,YAAW,eAAe,CAAC,UAAU;IAE9D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,aAAa;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;gBADX,OAAO,EAAE,YAAY,CAAC,aAAa,EACrC,YAAY,CAAC,2CAA+B;IAKzD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,kBAAkB,CACtB,WAAW,EAAE,eAAe,CAAC,YAAY,EACzC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,GAC5B,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;CA6BtD"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataAccessWrite = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const events_1 = require("events");
6
+ const block_1 = require("./block");
7
+ class DataAccessWrite {
8
+ constructor(storage, pendingStore) {
9
+ this.storage = storage;
10
+ this.pendingStore = pendingStore;
11
+ this.pendingStore = pendingStore;
12
+ }
13
+ initialize() {
14
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
15
+ return;
16
+ });
17
+ }
18
+ close() {
19
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
20
+ return;
21
+ });
22
+ }
23
+ persistTransaction(transaction, channelId, topics) {
24
+ var _a;
25
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
26
+ const updatedBlock = block_1.default.pushTransaction(block_1.default.createEmptyBlock(), transaction, channelId, topics);
27
+ const storageResult = yield this.storage.append(JSON.stringify(updatedBlock));
28
+ const eventEmitter = new events_1.EventEmitter();
29
+ (_a = this.pendingStore) === null || _a === void 0 ? void 0 : _a.add(channelId, { transaction, storageResult, topics: topics || [] });
30
+ const result = {
31
+ meta: {
32
+ transactionStorageLocation: storageResult.id,
33
+ storageMeta: storageResult.meta,
34
+ topics: topics || [],
35
+ },
36
+ result: {},
37
+ };
38
+ storageResult.on('confirmed', (r) => {
39
+ result.meta.storageMeta = r.meta;
40
+ eventEmitter.emit('confirmed', result);
41
+ });
42
+ storageResult.on('error', (err) => eventEmitter.emit('error', err));
43
+ return Object.assign(eventEmitter, result);
44
+ });
45
+ }
46
+ }
47
+ exports.DataAccessWrite = DataAccessWrite;
48
+ //# sourceMappingURL=data-write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-write.js","sourceRoot":"","sources":["../src/data-write.ts"],"names":[],"mappings":";;;;AAAA,mCAAsC;AACtC,mCAA4B;AAG5B,MAAa,eAAe;IAC1B,YACqB,OAAmC,EACrC,YAA4C;QAD1C,YAAO,GAAP,OAAO,CAA4B;QACrC,iBAAY,GAAZ,YAAY,CAAgC;QAE7D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEK,UAAU;;YACd,OAAO;QACT,CAAC;KAAA;IAEK,KAAK;;YACT,OAAO;QACT,CAAC;KAAA;IAEK,kBAAkB,CACtB,WAAyC,EACzC,SAAiB,EACjB,MAA6B;;;YAE7B,MAAM,YAAY,GAAG,eAAK,CAAC,eAAe,CACxC,eAAK,CAAC,gBAAgB,EAAE,EACxB,WAAW,EACX,SAAS,EACT,MAAM,CACP,CAAC;YAEF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YAE9E,MAAM,YAAY,GAAG,IAAI,qBAAY,EAA+C,CAAC;YACrF,MAAA,IAAI,CAAC,YAAY,0CAAE,GAAG,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;YAExF,MAAM,MAAM,GAAiD;gBAC3D,IAAI,EAAE;oBACJ,0BAA0B,EAAE,aAAa,CAAC,EAAE;oBAC5C,WAAW,EAAE,aAAa,CAAC,IAAI;oBAC/B,MAAM,EAAE,MAAM,IAAI,EAAE;iBACrB;gBACD,MAAM,EAAE,EAAE;aACX,CAAC;YACF,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;gBAClC,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC;gBACjC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAEpE,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;;KAC5C;CACF;AAjDD,0CAiDC"}
@@ -0,0 +1,18 @@
1
+ import { StorageTypes } from '@requestnetwork/types';
2
+ /**
3
+ * InMemory implementation to index Request storage transactions, for testing and development.
4
+ * The data itself is not indexed, only references to its location
5
+ */
6
+ export declare class InMemoryIndexer implements StorageTypes.IIndexer {
7
+ #private;
8
+ private readonly storageRead;
9
+ constructor(storageRead: StorageTypes.IStorageRead);
10
+ /** Adds the indexed data for easy retrieval */
11
+ addIndex(channelId: string, topics: string[], location: string): void;
12
+ initialize(): Promise<void>;
13
+ getTransactionsByStorageLocation(hash: string): Promise<StorageTypes.IGetTransactionsResponse>;
14
+ getTransactionsByChannelId(channelId: string): Promise<StorageTypes.IGetTransactionsResponse>;
15
+ getTransactionsByTopics(topics: string[]): Promise<StorageTypes.IGetTransactionsResponse>;
16
+ private parseDocuments;
17
+ }
18
+ //# sourceMappingURL=in-memory-indexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-indexer.d.ts","sourceRoot":"","sources":["../src/in-memory-indexer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAarD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,YAAY,CAAC,QAAQ;;IAK/C,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,YAAY,CAAC,YAAY;IAEnE,+CAA+C;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOtE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,gCAAgC,CACpC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,wBAAwB,CAAC;IAQ3C,0BAA0B,CAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,wBAAwB,CAAC;IAS3C,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,wBAAwB,CAAC;YAcjF,cAAc;CAgC7B"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var _InMemoryIndexer_channelToLocationsIndex, _InMemoryIndexer_topicToChannelsIndex;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.InMemoryIndexer = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const types_1 = require("@requestnetwork/types");
7
+ const block_1 = require("./block");
8
+ /** Helper class to manage a map with arrays as values */
9
+ class ArrayMap extends Map {
10
+ add(key, value) {
11
+ return this.set(key, this.get(key).concat(value));
12
+ }
13
+ get(key) {
14
+ return super.get(key) || [];
15
+ }
16
+ }
17
+ /**
18
+ * InMemory implementation to index Request storage transactions, for testing and development.
19
+ * The data itself is not indexed, only references to its location
20
+ */
21
+ class InMemoryIndexer {
22
+ constructor(storageRead) {
23
+ this.storageRead = storageRead;
24
+ // these fields must be private (#) or jest's matcher won't work.
25
+ _InMemoryIndexer_channelToLocationsIndex.set(this, new ArrayMap());
26
+ _InMemoryIndexer_topicToChannelsIndex.set(this, new ArrayMap());
27
+ }
28
+ /** Adds the indexed data for easy retrieval */
29
+ addIndex(channelId, topics, location) {
30
+ tslib_1.__classPrivateFieldGet(this, _InMemoryIndexer_channelToLocationsIndex, "f").add(channelId, location);
31
+ for (const topic of topics || []) {
32
+ tslib_1.__classPrivateFieldGet(this, _InMemoryIndexer_topicToChannelsIndex, "f").add(topic, channelId);
33
+ }
34
+ }
35
+ initialize() {
36
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
37
+ return;
38
+ });
39
+ }
40
+ getTransactionsByStorageLocation(hash) {
41
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
42
+ const transactions = yield this.parseDocuments([hash]);
43
+ return {
44
+ blockNumber: 0,
45
+ transactions,
46
+ };
47
+ });
48
+ }
49
+ getTransactionsByChannelId(channelId) {
50
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
51
+ const locations = tslib_1.__classPrivateFieldGet(this, _InMemoryIndexer_channelToLocationsIndex, "f").get(channelId);
52
+ const transactions = yield this.parseDocuments(locations);
53
+ return {
54
+ blockNumber: 0,
55
+ transactions: transactions.filter((x) => x.channelId === channelId),
56
+ };
57
+ });
58
+ }
59
+ getTransactionsByTopics(topics) {
60
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
61
+ const channelIds = topics.map((topic) => tslib_1.__classPrivateFieldGet(this, _InMemoryIndexer_topicToChannelsIndex, "f").get(topic)).flat();
62
+ const locations = channelIds
63
+ .map((channel) => tslib_1.__classPrivateFieldGet(this, _InMemoryIndexer_channelToLocationsIndex, "f").get(channel))
64
+ .flat();
65
+ const transactions = yield this.parseDocuments(locations);
66
+ return {
67
+ blockNumber: 0,
68
+ transactions,
69
+ };
70
+ });
71
+ }
72
+ parseDocuments(locations) {
73
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
74
+ const entries = yield this.storageRead.readMany(locations);
75
+ return entries
76
+ .filter((x) => x.meta.state === types_1.StorageTypes.ContentState.CONFIRMED)
77
+ .map((curr) => {
78
+ const { id, meta, content } = curr;
79
+ const block = block_1.default.parseBlock(content);
80
+ return Object.entries(block.header.channelIds).map(([channelId, [index]]) => ({
81
+ locationId: id,
82
+ channelId,
83
+ meta,
84
+ transaction: block.transactions[index],
85
+ }));
86
+ })
87
+ .flat()
88
+ .map((item) => ({
89
+ blockNumber: 0,
90
+ blockTimestamp: 0,
91
+ channelId: item.channelId,
92
+ hash: item.locationId,
93
+ size: '0',
94
+ smartContractAddress: '',
95
+ topics: [],
96
+ transactionHash: '',
97
+ data: item.transaction.data,
98
+ encryptedData: item.transaction.encryptedData,
99
+ encryptionMethod: item.transaction.encryptionMethod,
100
+ keys: item.transaction.keys,
101
+ }));
102
+ });
103
+ }
104
+ }
105
+ exports.InMemoryIndexer = InMemoryIndexer;
106
+ _InMemoryIndexer_channelToLocationsIndex = new WeakMap(), _InMemoryIndexer_topicToChannelsIndex = new WeakMap();
107
+ //# sourceMappingURL=in-memory-indexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-indexer.js","sourceRoot":"","sources":["../src/in-memory-indexer.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,8 @@
1
- export { default as DataAccess } from './data-access';
2
- export { default as TransactionIndex } from './transaction-index';
3
1
  export { default as Block } from './block';
4
2
  export { CombinedDataAccess } from './combined-data-access';
3
+ export { DataAccessWrite } from './data-write';
4
+ export { DataAccessRead } from './data-read';
5
+ export { PendingStore } from './pending-store';
6
+ export { DataAccessBaseOptions } from './types';
7
+ export { MockDataAccess } from './mock-data-access';
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CombinedDataAccess = exports.Block = exports.TransactionIndex = exports.DataAccess = void 0;
4
- var data_access_1 = require("./data-access");
5
- Object.defineProperty(exports, "DataAccess", { enumerable: true, get: function () { return data_access_1.default; } });
6
- var transaction_index_1 = require("./transaction-index");
7
- Object.defineProperty(exports, "TransactionIndex", { enumerable: true, get: function () { return transaction_index_1.default; } });
3
+ exports.MockDataAccess = exports.PendingStore = exports.DataAccessRead = exports.DataAccessWrite = exports.CombinedDataAccess = exports.Block = void 0;
8
4
  var block_1 = require("./block");
9
5
  Object.defineProperty(exports, "Block", { enumerable: true, get: function () { return block_1.default; } });
10
6
  var combined_data_access_1 = require("./combined-data-access");
11
7
  Object.defineProperty(exports, "CombinedDataAccess", { enumerable: true, get: function () { return combined_data_access_1.CombinedDataAccess; } });
8
+ var data_write_1 = require("./data-write");
9
+ Object.defineProperty(exports, "DataAccessWrite", { enumerable: true, get: function () { return data_write_1.DataAccessWrite; } });
10
+ var data_read_1 = require("./data-read");
11
+ Object.defineProperty(exports, "DataAccessRead", { enumerable: true, get: function () { return data_read_1.DataAccessRead; } });
12
+ var pending_store_1 = require("./pending-store");
13
+ Object.defineProperty(exports, "PendingStore", { enumerable: true, get: function () { return pending_store_1.PendingStore; } });
14
+ var mock_data_access_1 = require("./mock-data-access");
15
+ Object.defineProperty(exports, "MockDataAccess", { enumerable: true, get: function () { return mock_data_access_1.MockDataAccess; } });
12
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6CAAsD;AAA7C,yGAAA,OAAO,OAAc;AAC9B,yDAAkE;AAAzD,qHAAA,OAAO,OAAoB;AACpC,iCAA2C;AAAlC,8FAAA,OAAO,OAAS;AACzB,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAA2C;AAAlC,8FAAA,OAAO,OAAS;AACzB,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAC3B,2CAA+C;AAAtC,6GAAA,eAAe,OAAA;AACxB,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AACvB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAErB,uDAAoD;AAA3C,kHAAA,cAAc,OAAA"}
@@ -0,0 +1,13 @@
1
+ import { DataAccessTypes, StorageTypes } from '@requestnetwork/types';
2
+ import { CombinedDataAccess } from './combined-data-access';
3
+ /**
4
+ * Mock Data access that bypasses the initialization.
5
+ * This class is meant to be used with HttpRequestNetwork and useMockStorage=true.
6
+ * Data-access initialization is asynchronous and this class is a hack to avoid having an asynchronous operation in the HttpRequestNetwork constructor.
7
+ */
8
+ export declare class MockDataAccess extends CombinedDataAccess {
9
+ private readonly dataIndex;
10
+ constructor(storage: StorageTypes.IStorage);
11
+ persistTransaction: (transactionData: DataAccessTypes.ITransaction, channelId: string, topics?: string[] | undefined) => Promise<DataAccessTypes.IReturnPersistTransaction>;
12
+ }
13
+ //# sourceMappingURL=mock-data-access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-data-access.d.ts","sourceRoot":"","sources":["../src/mock-data-access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAKtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;gBAEhC,OAAO,EAAE,YAAY,CAAC,QAAQ;IAW1C,kBAAkB,oBACC,gBAAgB,YAAY,aAClC,MAAM,WACR,MAAM,EAAE,GAAG,SAAS,KAC5B,QAAQ,gBAAgB,yBAAyB,CAAC,CAInD;CACH"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockDataAccess = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const data_write_1 = require("./data-write");
6
+ const data_read_1 = require("./data-read");
7
+ const pending_store_1 = require("./pending-store");
8
+ const in_memory_indexer_1 = require("./in-memory-indexer");
9
+ const combined_data_access_1 = require("./combined-data-access");
10
+ /**
11
+ * Mock Data access that bypasses the initialization.
12
+ * This class is meant to be used with HttpRequestNetwork and useMockStorage=true.
13
+ * Data-access initialization is asynchronous and this class is a hack to avoid having an asynchronous operation in the HttpRequestNetwork constructor.
14
+ */
15
+ class MockDataAccess extends combined_data_access_1.CombinedDataAccess {
16
+ constructor(storage) {
17
+ const dataIndex = new in_memory_indexer_1.InMemoryIndexer(storage);
18
+ const pendingStore = new pending_store_1.PendingStore();
19
+ super(new data_read_1.DataAccessRead(dataIndex, { network: 'mock', pendingStore }), new data_write_1.DataAccessWrite(storage, pendingStore));
20
+ this.persistTransaction = (transactionData, channelId, topics) => tslib_1.__awaiter(this, void 0, void 0, function* () {
21
+ const result = yield this.writer.persistTransaction(transactionData, channelId, topics);
22
+ this.dataIndex.addIndex(channelId, topics || [], result.meta.transactionStorageLocation);
23
+ return result;
24
+ });
25
+ this.dataIndex = dataIndex;
26
+ }
27
+ }
28
+ exports.MockDataAccess = MockDataAccess;
29
+ //# sourceMappingURL=mock-data-access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-data-access.js","sourceRoot":"","sources":["../src/mock-data-access.ts"],"names":[],"mappings":";;;;AACA,6CAA+C;AAC/C,2CAA6C;AAC7C,mDAA+C;AAC/C,2DAAsD;AACtD,iEAA4D;AAE5D;;;;GAIG;AACH,MAAa,cAAe,SAAQ,yCAAkB;IAGpD,YAAY,OAA8B;QACxC,MAAM,SAAS,GAAG,IAAI,mCAAe,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,4BAAY,EAAE,CAAC;QAExC,KAAK,CACH,IAAI,0BAAc,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAChE,IAAI,4BAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAC3C,CAAC;QAIJ,uBAAkB,GAAG,CACnB,eAA6C,EAC7C,SAAiB,EACjB,MAA6B,EACuB,EAAE;YACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,eAAe,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACxF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACzF,OAAO,MAAM,CAAC;QAChB,CAAC,CAAA,CAAC;QAXA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CAWF;AAvBD,wCAuBC"}
@@ -0,0 +1,16 @@
1
+ import { DataAccessTypes } from '@requestnetwork/types';
2
+ /**
3
+ * A simple in-memory store to share state between DataReader and DataWriter
4
+ * Useful to retrieve a transaction that was just emitted but is not confirmed yet
5
+ **/
6
+ export declare class PendingStore implements DataAccessTypes.IPendingStore {
7
+ private pending;
8
+ /** Gets a pending tx */
9
+ get(channelId: string): DataAccessTypes.PendingItem | undefined;
10
+ findByTopics(topics: string[]): (DataAccessTypes.PendingItem & {
11
+ channelId: string;
12
+ })[];
13
+ add(channelId: string, pendingItem: DataAccessTypes.PendingItem): void;
14
+ remove(channelId: string): void;
15
+ }
16
+ //# sourceMappingURL=pending-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-store.d.ts","sourceRoot":"","sources":["../src/pending-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;IAGI;AACJ,qBAAa,YAAa,YAAW,eAAe,CAAC,aAAa;IAChE,OAAO,CAAC,OAAO,CAAkD;IAEjE,wBAAwB;IACjB,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC,WAAW,GAAG,SAAS;IAI/D,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,WAAW,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE;IAUvF,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,WAAW,GAAG,IAAI;IAItE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAGvC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PendingStore = void 0;
4
+ /**
5
+ * A simple in-memory store to share state between DataReader and DataWriter
6
+ * Useful to retrieve a transaction that was just emitted but is not confirmed yet
7
+ **/
8
+ class PendingStore {
9
+ constructor() {
10
+ this.pending = new Map();
11
+ }
12
+ /** Gets a pending tx */
13
+ get(channelId) {
14
+ return this.pending.get(channelId);
15
+ }
16
+ findByTopics(topics) {
17
+ const results = [];
18
+ for (const [channelId, pendingItem] of this.pending.entries()) {
19
+ if (topics.find((topic) => pendingItem.topics.includes(topic))) {
20
+ results.push(Object.assign({ channelId }, pendingItem));
21
+ }
22
+ }
23
+ return results;
24
+ }
25
+ add(channelId, pendingItem) {
26
+ this.pending.set(channelId, pendingItem);
27
+ }
28
+ remove(channelId) {
29
+ this.pending.delete(channelId);
30
+ }
31
+ }
32
+ exports.PendingStore = PendingStore;
33
+ //# sourceMappingURL=pending-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-store.js","sourceRoot":"","sources":["../src/pending-store.ts"],"names":[],"mappings":";;;AAEA;;;IAGI;AACJ,MAAa,YAAY;IAAzB;QACU,YAAO,GAAG,IAAI,GAAG,EAAuC,CAAC;IAwBnE,CAAC;IAtBC,wBAAwB;IACjB,GAAG,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAEM,YAAY,CAAC,MAAgB;QAClC,MAAM,OAAO,GAA4D,EAAE,CAAC;QAC5E,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;YAC7D,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC9D,OAAO,CAAC,IAAI,iBAAG,SAAS,IAAK,WAAW,EAAG,CAAC;aAC7C;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,GAAG,CAAC,SAAiB,EAAE,WAAwC;QACpE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,SAAiB;QAC7B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;CACF;AAzBD,oCAyBC"}
@@ -0,0 +1,7 @@
1
+ import { DataAccessTypes, LogTypes } from '@requestnetwork/types';
2
+ export type DataAccessBaseOptions = {
3
+ network: string;
4
+ logger?: LogTypes.ILogger;
5
+ pendingStore?: DataAccessTypes.IPendingStore;
6
+ };
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC;CAC9C,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}