hive-stream 3.0.2 → 3.0.3

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 (197) hide show
  1. package/DOCUMENTATION.md +50 -2
  2. package/README.md +44 -3
  3. package/dist/adapters/base.adapter.d.ts +5 -0
  4. package/dist/adapters/base.adapter.js +9 -0
  5. package/dist/adapters/base.adapter.js.map +1 -1
  6. package/dist/adapters/mongodb.adapter.d.ts +6 -6
  7. package/dist/adapters/mongodb.adapter.js +36 -21
  8. package/dist/adapters/mongodb.adapter.js.map +1 -1
  9. package/dist/adapters/postgresql.adapter.d.ts +7 -0
  10. package/dist/adapters/postgresql.adapter.js +46 -19
  11. package/dist/adapters/postgresql.adapter.js.map +1 -1
  12. package/dist/adapters/sqlite.adapter.d.ts +4 -0
  13. package/dist/adapters/sqlite.adapter.js +10 -0
  14. package/dist/adapters/sqlite.adapter.js.map +1 -1
  15. package/dist/api.d.ts +13 -3
  16. package/dist/api.js +96 -62
  17. package/dist/api.js.map +1 -1
  18. package/dist/config.d.ts +7 -1
  19. package/dist/config.js +7 -1
  20. package/dist/config.js.map +1 -1
  21. package/dist/contracts/auctionhouse.contract.d.ts +4 -0
  22. package/dist/contracts/auctionhouse.contract.js +234 -0
  23. package/dist/contracts/auctionhouse.contract.js.map +1 -0
  24. package/dist/contracts/booking.contract.d.ts +4 -0
  25. package/dist/contracts/booking.contract.js +225 -0
  26. package/dist/contracts/booking.contract.js.map +1 -0
  27. package/dist/contracts/bountyboard.contract.d.ts +4 -0
  28. package/dist/contracts/bountyboard.contract.js +233 -0
  29. package/dist/contracts/bountyboard.contract.js.map +1 -0
  30. package/dist/contracts/bundlemarketplace.contract.d.ts +4 -0
  31. package/dist/contracts/bundlemarketplace.contract.js +195 -0
  32. package/dist/contracts/bundlemarketplace.contract.js.map +1 -0
  33. package/dist/contracts/charitymatch.contract.d.ts +4 -0
  34. package/dist/contracts/charitymatch.contract.js +172 -0
  35. package/dist/contracts/charitymatch.contract.js.map +1 -0
  36. package/dist/contracts/coinflip.contract.js +7 -1
  37. package/dist/contracts/coinflip.contract.js.map +1 -1
  38. package/dist/contracts/crowdfund.contract.d.ts +4 -0
  39. package/dist/contracts/crowdfund.contract.js +290 -0
  40. package/dist/contracts/crowdfund.contract.js.map +1 -0
  41. package/dist/contracts/dcabot.contract.d.ts +4 -0
  42. package/dist/contracts/dcabot.contract.js +217 -0
  43. package/dist/contracts/dcabot.contract.js.map +1 -0
  44. package/dist/contracts/dice.contract.js +7 -1
  45. package/dist/contracts/dice.contract.js.map +1 -1
  46. package/dist/contracts/domainregistry.contract.d.ts +4 -0
  47. package/dist/contracts/domainregistry.contract.js +232 -0
  48. package/dist/contracts/domainregistry.contract.js.map +1 -0
  49. package/dist/contracts/exchange.contract.js +209 -168
  50. package/dist/contracts/exchange.contract.js.map +1 -1
  51. package/dist/contracts/fanclub.contract.d.ts +4 -0
  52. package/dist/contracts/fanclub.contract.js +193 -0
  53. package/dist/contracts/fanclub.contract.js.map +1 -0
  54. package/dist/contracts/giftcard.contract.d.ts +4 -0
  55. package/dist/contracts/giftcard.contract.js +158 -0
  56. package/dist/contracts/giftcard.contract.js.map +1 -0
  57. package/dist/contracts/grantrounds.contract.d.ts +4 -0
  58. package/dist/contracts/grantrounds.contract.js +265 -0
  59. package/dist/contracts/grantrounds.contract.js.map +1 -0
  60. package/dist/contracts/groupbuy.contract.d.ts +4 -0
  61. package/dist/contracts/groupbuy.contract.js +198 -0
  62. package/dist/contracts/groupbuy.contract.js.map +1 -0
  63. package/dist/contracts/helpers.d.ts +64 -0
  64. package/dist/contracts/helpers.js +159 -0
  65. package/dist/contracts/helpers.js.map +1 -0
  66. package/dist/contracts/insurancepool.contract.d.ts +4 -0
  67. package/dist/contracts/insurancepool.contract.js +281 -0
  68. package/dist/contracts/insurancepool.contract.js.map +1 -0
  69. package/dist/contracts/invoice.contract.d.ts +4 -0
  70. package/dist/contracts/invoice.contract.js +193 -0
  71. package/dist/contracts/invoice.contract.js.map +1 -0
  72. package/dist/contracts/launchpad.contract.d.ts +4 -0
  73. package/dist/contracts/launchpad.contract.js +225 -0
  74. package/dist/contracts/launchpad.contract.js.map +1 -0
  75. package/dist/contracts/lotto.contract.js +53 -37
  76. package/dist/contracts/lotto.contract.js.map +1 -1
  77. package/dist/contracts/multisigtreasury.contract.d.ts +4 -0
  78. package/dist/contracts/multisigtreasury.contract.js +245 -0
  79. package/dist/contracts/multisigtreasury.contract.js.map +1 -0
  80. package/dist/contracts/nft.contract.d.ts +1 -0
  81. package/dist/contracts/nft.contract.js +236 -192
  82. package/dist/contracts/nft.contract.js.map +1 -1
  83. package/dist/contracts/oraclebounty.contract.d.ts +4 -0
  84. package/dist/contracts/oraclebounty.contract.js +250 -0
  85. package/dist/contracts/oraclebounty.contract.js.map +1 -0
  86. package/dist/contracts/payroll.contract.d.ts +4 -0
  87. package/dist/contracts/payroll.contract.js +232 -0
  88. package/dist/contracts/payroll.contract.js.map +1 -0
  89. package/dist/contracts/paywall.contract.d.ts +4 -0
  90. package/dist/contracts/paywall.contract.js +185 -0
  91. package/dist/contracts/paywall.contract.js.map +1 -0
  92. package/dist/contracts/poll.contract.js +2 -0
  93. package/dist/contracts/poll.contract.js.map +1 -1
  94. package/dist/contracts/predictionmarket.contract.d.ts +4 -0
  95. package/dist/contracts/predictionmarket.contract.js +213 -0
  96. package/dist/contracts/predictionmarket.contract.js.map +1 -0
  97. package/dist/contracts/proposaltimelock.contract.d.ts +4 -0
  98. package/dist/contracts/proposaltimelock.contract.js +250 -0
  99. package/dist/contracts/proposaltimelock.contract.js.map +1 -0
  100. package/dist/contracts/questpass.contract.d.ts +4 -0
  101. package/dist/contracts/questpass.contract.js +214 -0
  102. package/dist/contracts/questpass.contract.js.map +1 -0
  103. package/dist/contracts/referral.contract.d.ts +4 -0
  104. package/dist/contracts/referral.contract.js +238 -0
  105. package/dist/contracts/referral.contract.js.map +1 -0
  106. package/dist/contracts/rental.contract.d.ts +4 -0
  107. package/dist/contracts/rental.contract.js +221 -0
  108. package/dist/contracts/rental.contract.js.map +1 -0
  109. package/dist/contracts/revenuesplit.contract.d.ts +4 -0
  110. package/dist/contracts/revenuesplit.contract.js +211 -0
  111. package/dist/contracts/revenuesplit.contract.js.map +1 -0
  112. package/dist/contracts/rps.contract.js +17 -1
  113. package/dist/contracts/rps.contract.js.map +1 -1
  114. package/dist/contracts/savings.contract.d.ts +4 -0
  115. package/dist/contracts/savings.contract.js +208 -0
  116. package/dist/contracts/savings.contract.js.map +1 -0
  117. package/dist/contracts/subscription.contract.d.ts +4 -0
  118. package/dist/contracts/subscription.contract.js +241 -0
  119. package/dist/contracts/subscription.contract.js.map +1 -0
  120. package/dist/contracts/sweepstakes.contract.d.ts +4 -0
  121. package/dist/contracts/sweepstakes.contract.js +209 -0
  122. package/dist/contracts/sweepstakes.contract.js.map +1 -0
  123. package/dist/contracts/ticketing.contract.d.ts +4 -0
  124. package/dist/contracts/ticketing.contract.js +185 -0
  125. package/dist/contracts/ticketing.contract.js.map +1 -0
  126. package/dist/contracts/tipjar.contract.js +2 -0
  127. package/dist/contracts/tipjar.contract.js.map +1 -1
  128. package/dist/contracts/token.contract.js +135 -125
  129. package/dist/contracts/token.contract.js.map +1 -1
  130. package/dist/index.d.ts +39 -0
  131. package/dist/index.js +71 -1
  132. package/dist/index.js.map +1 -1
  133. package/dist/metadata.d.ts +7 -0
  134. package/dist/metadata.js +64 -1
  135. package/dist/metadata.js.map +1 -1
  136. package/dist/providers/block-provider.d.ts +22 -0
  137. package/dist/providers/block-provider.js +3 -0
  138. package/dist/providers/block-provider.js.map +1 -0
  139. package/dist/providers/haf-client.d.ts +30 -0
  140. package/dist/providers/haf-client.js +119 -0
  141. package/dist/providers/haf-client.js.map +1 -0
  142. package/dist/providers/haf-provider.d.ts +49 -0
  143. package/dist/providers/haf-provider.js +256 -0
  144. package/dist/providers/haf-provider.js.map +1 -0
  145. package/dist/providers/hive-provider.d.ts +13 -0
  146. package/dist/providers/hive-provider.js +25 -0
  147. package/dist/providers/hive-provider.js.map +1 -0
  148. package/dist/providers/index.d.ts +4 -0
  149. package/dist/providers/index.js +21 -0
  150. package/dist/providers/index.js.map +1 -0
  151. package/dist/streamer.d.ts +21 -1
  152. package/dist/streamer.js +187 -62
  153. package/dist/streamer.js.map +1 -1
  154. package/dist/utils.js +11 -2
  155. package/dist/utils.js.map +1 -1
  156. package/package.json +16 -1
  157. package/.claude/settings.local.json +0 -12
  158. package/.env.example +0 -3
  159. package/.travis.yml +0 -11
  160. package/AGENTS.md +0 -35
  161. package/CLAUDE.md +0 -75
  162. package/ecosystem.config.js +0 -17
  163. package/examples/contracts/README.md +0 -8
  164. package/examples/contracts/exchange.ts +0 -38
  165. package/examples/contracts/poll.ts +0 -21
  166. package/examples/contracts/rps.ts +0 -19
  167. package/examples/contracts/tipjar.ts +0 -19
  168. package/jest.config.js +0 -9
  169. package/test-contract-block.md +0 -19
  170. package/tests/actions.spec.ts +0 -252
  171. package/tests/adapters/actions-persistence.spec.ts +0 -144
  172. package/tests/adapters/postgresql.adapter.spec.ts +0 -127
  173. package/tests/adapters/sqlite.adapter.spec.ts +0 -181
  174. package/tests/config-input.spec.ts +0 -90
  175. package/tests/contracts/coinflip.contract.spec.ts +0 -94
  176. package/tests/contracts/dice.contract.spec.ts +0 -87
  177. package/tests/contracts/entrants.json +0 -729
  178. package/tests/contracts/exchange.contract.spec.ts +0 -84
  179. package/tests/contracts/lotto.contract.spec.ts +0 -59
  180. package/tests/contracts/nft.contract.spec.ts +0 -948
  181. package/tests/contracts/token.contract.spec.ts +0 -90
  182. package/tests/exchanges/coingecko.exchange.spec.ts +0 -169
  183. package/tests/exchanges/exchange.base.spec.ts +0 -246
  184. package/tests/helpers/mock-adapter.ts +0 -214
  185. package/tests/helpers/mock-fetch.ts +0 -165
  186. package/tests/hive-chain-features.spec.ts +0 -319
  187. package/tests/hive-rates.spec.ts +0 -443
  188. package/tests/integration/hive-rates.integration.spec.ts +0 -35
  189. package/tests/metadata.spec.ts +0 -63
  190. package/tests/setup.ts +0 -30
  191. package/tests/streamer-actions.spec.ts +0 -274
  192. package/tests/streamer.spec.ts +0 -342
  193. package/tests/types/rates.spec.ts +0 -216
  194. package/tests/utils.spec.ts +0 -113
  195. package/tsconfig.build.json +0 -4
  196. package/tslint.json +0 -21
  197. package/wallaby.js +0 -26
package/DOCUMENTATION.md CHANGED
@@ -9,7 +9,7 @@ Hive Stream is a Node.js library for streaming Hive blockchain activity and rout
9
9
 
10
10
  This document focuses on the contract system and how to build robust contracts using the new `defineContract`/`action` API.
11
11
 
12
- By default, `new Streamer()` registers the SQLite adapter and starts the built-in Express API server on port `5001` when `NODE_ENV !== 'test'`.
12
+ `new Streamer()` is side-effect free. The default SQLite adapter is initialized lazily, and the built-in Express API only starts when you call `startApiServer()` or enable it through config before `start()`.
13
13
 
14
14
  ---
15
15
 
@@ -302,6 +302,35 @@ export const TipJar = defineContract({
302
302
  - `createPollContract` - Polls and votes
303
303
  - `createTipJarContract` - Tip jar + message log
304
304
  - `createExchangeContract` - Deposits/withdrawals/orders/matching (SQL)
305
+ - `createAuctionHouseContract` - Auctions with bids, reserve prices, and settlement
306
+ - `createSubscriptionContract` - Subscription plans with transfer and recurrent renewals
307
+ - `createCrowdfundContract` - Crowdfunding campaigns with milestones and refund flows
308
+ - `createBountyBoardContract` - Funded bounties, submissions, and award tracking
309
+ - `createInvoiceContract` - Invoices with partial/recurrent payments and overdue sweeps
310
+ - `createSavingsContract` - Savings goals with recurring contributions and withdrawals
311
+ - `createBookingContract` - Booking listings, reservations, confirmations, and cancellations
312
+ - `createGiftCardContract` - Gift card issuance, redemption, and cancellation
313
+ - `createGroupBuyContract` - Group buys with commitments, finalization, and withdrawals
314
+ - `createSweepstakesContract` - Paid-entry sweepstakes with deterministic draws
315
+ - `createDcaBotContract` - Time-driven DCA execution scheduling
316
+ - `createMultisigTreasuryContract` - Multisig vaults with approval queues and ready-to-execute proposals
317
+ - `createRevenueSplitContract` - Revenue splitting with internal balances and withdrawals
318
+ - `createPaywallContract` - Paid access windows and expiries for gated resources
319
+ - `createDomainRegistryContract` - Namespace-based domain registrations, renewals, and transfers
320
+ - `createRentalContract` - Escrow-backed rentals using `escrow_transfer`
321
+ - `createLaunchpadContract` - Fixed-price launchpad sales with allocations and claims
322
+ - `createPredictionMarketContract` - Prediction markets with paid positions and claims
323
+ - `createQuestPassContract` - Seasonal pass sales, point accrual, and tier claims
324
+ - `createCharityMatchContract` - Donation matching campaigns with sponsor-defined caps
325
+ - `createReferralContract` - Affiliate programs, conversion attribution, and payout balances
326
+ - `createInsurancePoolContract` - Insurance pools with premiums, active policies, claims, and reserve accounting
327
+ - `createOracleBountyContract` - Oracle feeds with funded report rounds, medians, and reward withdrawals
328
+ - `createGrantRoundsContract` - Matching grant rounds with project submissions, donations, and grant withdrawals
329
+ - `createPayrollContract` - Recurring payroll budgets with scheduled runs and recipient balances
330
+ - `createProposalTimelockContract` - Timelock approval queues for delayed governance-style actions
331
+ - `createBundleMarketplaceContract` - Bundle storefronts with inventory, purchases, and fulfillment tracking
332
+ - `createTicketingContract` - Event ticket sales with check-ins, refunds, and capacity limits
333
+ - `createFanClubContract` - Paid clubs with member renewals, points, and perk redemptions
305
334
 
306
335
  ### Example Snippets
307
336
 
@@ -312,6 +341,8 @@ Quick-start snippets live in `examples/contracts/`:
312
341
  - `examples/contracts/tipjar.ts`
313
342
  - `examples/contracts/exchange.ts`
314
343
 
344
+ Most built-in contracts use SQL tables internally, so they require a SQL-capable adapter such as SQLite or PostgreSQL. MongoDB remains supported for streamer persistence and custom contracts that do not rely on raw SQL queries.
345
+
315
346
  ---
316
347
 
317
348
  ## Exchange Contract Guide
@@ -378,7 +409,24 @@ createExchangeContract({
378
409
 
379
410
  ### API Endpoints
380
411
 
381
- If you run the built-in API server, the following endpoints are available:
412
+ If you want the built-in API server to start alongside block streaming, configure:
413
+
414
+ ```ts
415
+ const streamer = new Streamer({
416
+ apiEnabled: true,
417
+ apiPort: 5001
418
+ });
419
+
420
+ await streamer.start();
421
+ ```
422
+
423
+ You can also run the API independently:
424
+
425
+ ```ts
426
+ await streamer.startApiServer();
427
+ ```
428
+
429
+ When the built-in API server is running, the following endpoints are available:
382
430
 
383
431
  - `GET /exchange/balances` (optional query `?account=alice`)
384
432
  - `GET /exchange/orders` (query `account`, `base`, `quote`, `status`)
package/README.md CHANGED
@@ -21,7 +21,7 @@ ss.onCustomJson((op, { sender, isSignedWithActiveKey }, blockNumber, blockId, pr
21
21
  });
22
22
  ```
23
23
 
24
- `new Streamer()` automatically registers the SQLite adapter and starts the built-in Express API server on port `5001` when `NODE_ENV !== 'test'`.
24
+ `new Streamer()` is now side-effect free. The default SQLite adapter is created lazily on first use, and the built-in Express API is opt-in via `apiEnabled: true` on `start()` or an explicit `startApiServer()` call.
25
25
 
26
26
  ## Builder/Tooling Metadata
27
27
 
@@ -48,7 +48,7 @@ To resume automatically from stored state, keep `resumeFromState` enabled (defau
48
48
 
49
49
  For faster catch-up, `catchUpBatchSize` controls how many blocks are processed per polling cycle, and `catchUpDelayMs` controls the delay between catch-up batches (set to `0` for fastest catch-up).
50
50
 
51
- The `apiNodes` are the Hive API endpoints used for failover. If you want to enable debug mode, set `debugMode` to `true`. The configuration values and their defaults can be found in `src/config.ts`.
51
+ The `apiNodes` are the Hive API endpoints used for failover. Set `apiEnabled` to `true` if you want `start()` to boot the built-in API server, or call `startApiServer()` manually. If you want verbose logs, set `debugMode` to `true`. The configuration values and their defaults can be found in `src/config.ts`.
52
52
 
53
53
  CamelCase config keys are recommended for readability. Legacy uppercase keys are still supported for backwards compatibility.
54
54
 
@@ -69,12 +69,20 @@ const options = {
69
69
  catchUpBatchSize: 50,
70
70
  catchUpDelayMs: 0,
71
71
  apiNodes: ['https://api.hive.blog', 'https://api.openhive.network', 'https://rpc.ausbit.dev'],
72
- debugMode: true
72
+ apiEnabled: false,
73
+ apiPort: 5001,
74
+ debugMode: false
73
75
  }
74
76
 
75
77
  const ss = new Streamer(options);
76
78
  ```
77
79
 
80
+ If you want the built-in API without starting block streaming yet:
81
+
82
+ ```javascript
83
+ await ss.startApiServer();
84
+ ```
85
+
78
86
  The configuration itself can also be overloaded using the `setConfig` method which allows you to pass one or more of the above configuration options, useful in situations where multiple keys might be used for issuing.
79
87
 
80
88
  ```
@@ -319,6 +327,35 @@ The library includes several built-in contract examples in the `src/contracts` f
319
327
  - `createPollContract` - A poll/voting contract
320
328
  - `createTipJarContract` - A tip jar + message board contract
321
329
  - `createExchangeContract` - A basic exchange with deposits, withdrawals, balances, and order matching (SQL adapter required)
330
+ - `createAuctionHouseContract` - Auctions with reserve prices, buy-now support, and timed settlement
331
+ - `createSubscriptionContract` - Subscription plans with transfer and recurrent-transfer renewals
332
+ - `createCrowdfundContract` - Crowdfunding campaigns with milestones, finalization, and refund tracking
333
+ - `createBountyBoardContract` - Funded bounties, submissions, and award selection
334
+ - `createInvoiceContract` - Invoices with partial payments, recurring payments, and overdue sweeps
335
+ - `createSavingsContract` - Savings goals with recurring contributions and withdrawal requests
336
+ - `createBookingContract` - Reservable listings with paid booking windows and confirmations
337
+ - `createGiftCardContract` - Gift card issuance, redemption, and cancellation flows
338
+ - `createGroupBuyContract` - Threshold-based pooled purchases and participant commitments
339
+ - `createSweepstakesContract` - Paid-entry sweepstakes with deterministic winner draws
340
+ - `createDcaBotContract` - Time-based DCA bot scheduling and execution request events
341
+ - `createMultisigTreasuryContract` - Multisig vaults, proposal approvals, and execution readiness tracking
342
+ - `createRevenueSplitContract` - Revenue share ledgers and withdrawal requests for collaborators
343
+ - `createPaywallContract` - Paid access control for gated resources and memberships
344
+ - `createDomainRegistryContract` - App-level namespaces with registrations, renewals, transfers, and expiries
345
+ - `createRentalContract` - Escrow-backed rental agreements for items, passes, or assets
346
+ - `createLaunchpadContract` - Launchpad sales with allocations, finalization, and claim flows
347
+ - `createPredictionMarketContract` - Prediction markets with positions, resolution, and winner claims
348
+ - `createQuestPassContract` - Seasonal passes with progress tracking and reward claims
349
+ - `createCharityMatchContract` - Donation campaigns with matched totals and closing summaries
350
+ - `createReferralContract` - Affiliate programs with codes, funded budgets, and payout balances
351
+ - `createInsurancePoolContract` - Insurance pools with premium-backed policies, claims, and reserve management
352
+ - `createOracleBountyContract` - Oracle bounty feeds with report rounds, median finalization, and reporter rewards
353
+ - `createGrantRoundsContract` - Matching grant rounds with project submissions, donations, and post-close allocations
354
+ - `createPayrollContract` - Recurring team payrolls with funded budgets, scheduled runs, and recipient withdrawals
355
+ - `createProposalTimelockContract` - Timelocked governance queues with approvals, delays, and execution requests
356
+ - `createBundleMarketplaceContract` - Fixed-price bundle storefronts with inventory tracking and fulfillment states
357
+ - `createTicketingContract` - Event ticketing with purchases, check-ins, refunds, and capacity enforcement
358
+ - `createFanClubContract` - Paid fan clubs with member renewals, engagement points, and perk redemptions
322
359
 
323
360
  These can be imported and used as examples for building your own contracts:
324
361
 
@@ -326,6 +363,8 @@ These can be imported and used as examples for building your own contracts:
326
363
  import { createDiceContract, createCoinflipContract, createLottoContract } from 'hive-stream';
327
364
  ```
328
365
 
366
+ Most built-in contracts in `src/contracts` persist SQL tables internally, so they require a SQL-capable adapter such as SQLite or PostgreSQL. MongoDB remains supported for streamer persistence and custom contracts that do not depend on raw SQL queries.
367
+
329
368
  ### Example Snippets
330
369
 
331
370
  Sample snippets for the newest contracts live in `examples/contracts/`:
@@ -410,6 +449,8 @@ const adapter = new MongodbAdapter('mongodb://localhost:27017', 'hive_stream');
410
449
  await streamer.registerAdapter(adapter);
411
450
  ```
412
451
 
452
+ MongoDB supports block state, transfers, custom JSON persistence, and custom contracts that manage their own state without SQL. Built-in SQL-backed contracts should use SQLite or PostgreSQL.
453
+
413
454
  ### PostgreSQL Adapter
414
455
  ```javascript
415
456
  import { Streamer, PostgreSQLAdapter } from 'hive-stream';
@@ -4,6 +4,9 @@ import { SignedBlock } from '@hiveio/dhive';
4
4
  export declare class AdapterBase {
5
5
  protected client: any;
6
6
  protected db: any;
7
+ readonly capabilities: {
8
+ sql: boolean;
9
+ };
7
10
  constructor();
8
11
  create(): Promise<boolean>;
9
12
  destroy(): Promise<boolean>;
@@ -19,7 +22,9 @@ export declare class AdapterBase {
19
22
  findOne(table: string, queryObject: Record<string, any>): Promise<any>;
20
23
  insert(table: string, data: any): Promise<any>;
21
24
  replace(table: string, queryObject: Record<string, any>, data: any): Promise<any>;
25
+ runInTransaction<T>(work: (adapter: AdapterBase) => Promise<T>): Promise<T>;
22
26
  query(sql: string, params?: any[]): Promise<any[]>;
27
+ addEvent(date: string | Date, contract: string, action: string, payload: any, data: any): Promise<boolean>;
23
28
  getEvents(): Promise<any[]>;
24
29
  getEventsByContract(contract: string): Promise<any[]>;
25
30
  getEventsByAccount(account: string): Promise<any[]>;
@@ -4,6 +4,9 @@ exports.AdapterBase = void 0;
4
4
  class AdapterBase {
5
5
  client = null;
6
6
  db = null;
7
+ capabilities = {
8
+ sql: false
9
+ };
7
10
  constructor() {
8
11
  this.client = null;
9
12
  this.db = null;
@@ -50,9 +53,15 @@ class AdapterBase {
50
53
  async replace(table, queryObject, data) {
51
54
  return data;
52
55
  }
56
+ async runInTransaction(work) {
57
+ return work(this);
58
+ }
53
59
  async query(sql, params) {
54
60
  throw new Error('Query method not implemented in adapter');
55
61
  }
62
+ async addEvent(date, contract, action, payload, data) {
63
+ return true;
64
+ }
56
65
  async getEvents() {
57
66
  return [];
58
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.adapter.js","sourceRoot":"","sources":["../../src/adapters/base.adapter.ts"],"names":[],"mappings":";;;AAGA,MAAa,WAAW;IACV,MAAM,GAAQ,IAAI,CAAC;IACnB,EAAE,GAAQ,IAAI,CAAC;IAEzB;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,MAAM;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,WAAW;QACpB,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,SAAS;QAClB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpE,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAAS;QAC5B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpE,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAkB;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,EAAO,EAAE,WAAmB,EAAE,OAAe,EAAE,WAAmB,EAAE,KAAa,EAAE,SAAe;QAC5H,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,SAAc,EAAE,OAAwB,EAAE,QAA0B;QAC7F,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,SAAc,EAAE,OAAwB,EAAE,QAA4B;QACjG,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,aAAkC,EAAE,SAAc,EAAE,QAA2B;QACtG,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,WAAgC;QAC7D,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,WAAgC;QAChE,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAAS;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,WAAgC,EAAE,IAAS;QAC3E,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,MAAc;QAC1C,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,SAAS;QAClB,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QAC7C,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,OAAe;QAC3C,OAAO,EAAE,CAAC;IACd,CAAC;IAED,kDAAkD;IAC3C,KAAK,CAAC,mBAAmB,CAAC,OAAgB;QAC7C,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,UAAgF,EAAE;QAC7G,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,UAA+D,EAAE;QAC5F,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,6BAA6B,CAAC,UAA6D,EAAE;QACtG,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAjGD,kCAiGC"}
1
+ {"version":3,"file":"base.adapter.js","sourceRoot":"","sources":["../../src/adapters/base.adapter.ts"],"names":[],"mappings":"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"}
@@ -5,16 +5,16 @@ import { MongoClient, Db } from 'mongodb';
5
5
  export declare class MongodbAdapter extends AdapterBase {
6
6
  protected client: MongoClient;
7
7
  protected db: Db;
8
+ readonly capabilities: {
9
+ sql: boolean;
10
+ };
8
11
  private mongo;
9
12
  private blockNumber;
10
13
  private lastBlockNumber;
11
14
  private blockId;
12
15
  private prevBlockId;
13
16
  private transactionId;
14
- constructor(uri: string, database: string, options?: {
15
- useNewUrlParser: boolean;
16
- useUnifiedTopology: boolean;
17
- });
17
+ constructor(uri: string, database: string, options?: {});
18
18
  getDbInstance(): Promise<Db>;
19
19
  create(): Promise<boolean>;
20
20
  loadActions(): Promise<TimeAction[]>;
@@ -26,8 +26,8 @@ export declare class MongodbAdapter extends AdapterBase {
26
26
  destroy(): Promise<boolean>;
27
27
  find(table: string, queryObject: any): Promise<any>;
28
28
  findOne(table: string, queryObject: any): Promise<any>;
29
- insert(table: string, data: any): Promise<import("mongodb").InsertOneResult<import("mongodb").Document>>;
30
- replace(table: string, queryObject: any, data: any): Promise<import("mongodb").UpdateResult<import("mongodb").Document>>;
29
+ insert(table: string, data: any): Promise<boolean>;
30
+ replace(table: string, queryObject: any, data: any): Promise<any>;
31
31
  query(sql: string, params?: any[]): Promise<any[]>;
32
32
  addEvent(date: string, contract: string, action: string, payload: ContractPayload, data: unknown): Promise<boolean>;
33
33
  getEvents(): Promise<any[]>;
@@ -7,6 +7,9 @@ const mongodb_1 = require("mongodb");
7
7
  class MongodbAdapter extends base_adapter_1.AdapterBase {
8
8
  client = null;
9
9
  db = null;
10
+ capabilities = {
11
+ sql: false
12
+ };
10
13
  mongo = {
11
14
  uri: '',
12
15
  database: '',
@@ -17,7 +20,7 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
17
20
  blockId;
18
21
  prevBlockId;
19
22
  transactionId;
20
- constructor(uri, database, options = { useNewUrlParser: true, useUnifiedTopology: true }) {
23
+ constructor(uri, database, options = {}) {
21
24
  super();
22
25
  this.mongo.uri = uri;
23
26
  this.mongo.database = database;
@@ -25,7 +28,13 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
25
28
  }
26
29
  async getDbInstance() {
27
30
  try {
28
- this.client = await mongodb_1.MongoClient.connect(this.mongo.uri, this.mongo.options);
31
+ if (this.db) {
32
+ return this.db;
33
+ }
34
+ if (!this.client) {
35
+ this.client = new mongodb_1.MongoClient(this.mongo.uri, this.mongo.options);
36
+ }
37
+ await this.client.connect();
29
38
  this.db = this.client.db(this.mongo.database);
30
39
  return this.db;
31
40
  }
@@ -35,8 +44,7 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
35
44
  }
36
45
  async create() {
37
46
  try {
38
- this.client = await mongodb_1.MongoClient.connect(this.mongo.uri, this.mongo.options);
39
- this.db = this.client.db(this.mongo.database);
47
+ await this.getDbInstance();
40
48
  return true;
41
49
  }
42
50
  catch (e) {
@@ -144,7 +152,11 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
144
152
  return true;
145
153
  }
146
154
  async destroy() {
147
- await this.client.close();
155
+ if (this.client) {
156
+ await this.client.close();
157
+ }
158
+ this.client = null;
159
+ this.db = null;
148
160
  return true;
149
161
  }
150
162
  async find(table, queryObject) {
@@ -152,31 +164,34 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
152
164
  await this.getDbInstance();
153
165
  }
154
166
  const collection = this.db.collection(table);
155
- return await collection.find(queryObject).toArray();
167
+ const documents = await collection.find(queryObject).toArray();
168
+ return documents.length ? documents : null;
156
169
  }
157
170
  async findOne(table, queryObject) {
158
171
  if (!this.db) {
159
172
  await this.getDbInstance();
160
173
  }
161
174
  const collection = this.db.collection(table);
162
- return await collection.find(queryObject).limit(1).toArray();
175
+ return await collection.findOne(queryObject);
163
176
  }
164
177
  async insert(table, data) {
165
178
  if (!this.db) {
166
179
  await this.getDbInstance();
167
180
  }
168
181
  const collection = this.db.collection(table);
169
- return await collection.insertOne(data);
182
+ await collection.insertOne(data);
183
+ return true;
170
184
  }
171
185
  async replace(table, queryObject, data) {
172
186
  if (!this.db) {
173
187
  await this.getDbInstance();
174
188
  }
175
189
  const collection = this.db.collection(table);
176
- return await collection.replaceOne(queryObject, data, { upsert: true });
190
+ await collection.replaceOne(queryObject, data, { upsert: true });
191
+ return data;
177
192
  }
178
193
  async query(sql, params) {
179
- throw new Error('Raw SQL queries are not supported in MongoDB adapter');
194
+ throw new Error('Raw SQL queries are not supported in MongoDB adapter. Built-in contracts currently require a SQL-capable adapter (SQLite or PostgreSQL).');
180
195
  }
181
196
  async addEvent(date, contract, action, payload, data) {
182
197
  try {
@@ -204,7 +219,7 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
204
219
  await this.getDbInstance();
205
220
  }
206
221
  const collection = this.db.collection('events');
207
- const events = await collection.find({}).toArray();
222
+ const events = await collection.find({}).sort({ date: -1, _id: -1 }).toArray();
208
223
  return events.length ? events : null;
209
224
  }
210
225
  catch (error) {
@@ -218,7 +233,7 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
218
233
  await this.getDbInstance();
219
234
  }
220
235
  const collection = this.db.collection('events');
221
- const events = await collection.find({ contract }).toArray();
236
+ const events = await collection.find({ contract }).sort({ date: -1, _id: -1 }).toArray();
222
237
  return events.length ? events : null;
223
238
  }
224
239
  catch (error) {
@@ -239,7 +254,7 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
239
254
  { 'payload.sender': account },
240
255
  { 'payload.account': account }
241
256
  ]
242
- }).toArray();
257
+ }).sort({ date: -1, _id: -1 }).toArray();
243
258
  return events.length ? events : null;
244
259
  }
245
260
  catch (error) {
@@ -253,7 +268,7 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
253
268
  await this.getDbInstance();
254
269
  }
255
270
  const collection = this.db.collection('transfers');
256
- const transfers = await collection.find({}).toArray();
271
+ const transfers = await collection.find({}).sort({ blockNumber: -1, _id: -1 }).toArray();
257
272
  return transfers.length ? transfers : null;
258
273
  }
259
274
  catch (error) {
@@ -267,7 +282,7 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
267
282
  await this.getDbInstance();
268
283
  }
269
284
  const collection = this.db.collection('transfers');
270
- const transfers = await collection.find({ contractName: contract }).toArray();
285
+ const transfers = await collection.find({ contractName: contract }).sort({ blockNumber: -1, _id: -1 }).toArray();
271
286
  return transfers.length ? transfers : null;
272
287
  }
273
288
  catch (error) {
@@ -281,7 +296,7 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
281
296
  await this.getDbInstance();
282
297
  }
283
298
  const collection = this.db.collection('transfers');
284
- const transfers = await collection.find({ sender: account }).toArray();
299
+ const transfers = await collection.find({ sender: account }).sort({ blockNumber: -1, _id: -1 }).toArray();
285
300
  return transfers.length ? transfers : null;
286
301
  }
287
302
  catch (error) {
@@ -295,7 +310,7 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
295
310
  await this.getDbInstance();
296
311
  }
297
312
  const collection = this.db.collection('transfers');
298
- const transfers = await collection.find({ blockId }).toArray();
313
+ const transfers = await collection.find({ blockId }).sort({ blockNumber: -1, _id: -1 }).toArray();
299
314
  return transfers.length ? transfers : null;
300
315
  }
301
316
  catch (error) {
@@ -309,7 +324,7 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
309
324
  await this.getDbInstance();
310
325
  }
311
326
  const collection = this.db.collection('customJson');
312
- const jsons = await collection.find({}).toArray();
327
+ const jsons = await collection.find({}).sort({ blockNumber: -1, _id: -1 }).toArray();
313
328
  return jsons.length ? jsons : null;
314
329
  }
315
330
  catch (error) {
@@ -323,7 +338,7 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
323
338
  await this.getDbInstance();
324
339
  }
325
340
  const collection = this.db.collection('customJson');
326
- const jsons = await collection.find({ contractName: contract }).toArray();
341
+ const jsons = await collection.find({ contractName: contract }).sort({ blockNumber: -1, _id: -1 }).toArray();
327
342
  return jsons.length ? jsons : null;
328
343
  }
329
344
  catch (error) {
@@ -337,7 +352,7 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
337
352
  await this.getDbInstance();
338
353
  }
339
354
  const collection = this.db.collection('customJson');
340
- const jsons = await collection.find({ sender: account }).toArray();
355
+ const jsons = await collection.find({ sender: account }).sort({ blockNumber: -1, _id: -1 }).toArray();
341
356
  return jsons.length ? jsons : null;
342
357
  }
343
358
  catch (error) {
@@ -351,7 +366,7 @@ class MongodbAdapter extends base_adapter_1.AdapterBase {
351
366
  await this.getDbInstance();
352
367
  }
353
368
  const collection = this.db.collection('customJson');
354
- const jsons = await collection.find({ blockId }).toArray();
369
+ const jsons = await collection.find({ blockId }).sort({ blockNumber: -1, _id: -1 }).toArray();
355
370
  return jsons.length ? jsons : null;
356
371
  }
357
372
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb.adapter.js","sourceRoot":"","sources":["../../src/adapters/mongodb.adapter.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAE1C,iDAA6C;AAE7C,qCAA0C;AAE1C,MAAa,cAAe,SAAQ,0BAAW;IACjC,MAAM,GAAgB,IAAI,CAAC;IAC3B,EAAE,GAAO,IAAI,CAAC;IAEhB,KAAK,GAAG;QACZ,GAAG,EAAE,EAAE;QACP,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;KACd,CAAC;IAEM,WAAW,CAAS;IACpB,eAAe,CAAS;IACxB,OAAO,CAAS;IAChB,WAAW,CAAC;IACZ,aAAa,CAAS;IAE9B,YAAY,GAAW,EAAE,QAAgB,EAAE,OAAO,GAAG,EAAE,eAAe,EAAE,IAAI,EAAG,kBAAkB,EAAE,IAAI,EAAE;QACrG,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,aAAa;QACtB,IAAI,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,qBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5E,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAE9C,OAAO,IAAI,CAAC,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,MAAM;QACf,IAAI,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,qBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5E,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAE9C,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,WAAW;QACpB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAErC,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC;gBACD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,UAAe,EAAE,EAAE;oBACzC,IAAI,CAAC;wBACD,OAAO,oBAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAC3C,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACb,OAAO,CAAC,IAAI,CAAC,6CAA6C,UAAU,EAAE,EAAE,IAAI,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;wBACjG,OAAO,IAAI,CAAC;oBAChB,CAAC;gBACL,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAiB,CAAC;YACvC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;gBAChE,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,SAAS;QAClB,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAE5C,IAAI,MAAM,EAAE,CAAC;gBACT,OAAO,MAAM,CAAC;YAClB,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAAS;QAC5B,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAEhD,yCAAyC;YACzC,MAAM,SAAS,GAAG;gBACd,GAAG,IAAI;gBACP,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;aAC9B,CAAC;YAEF,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAE7D,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,EAAO,EAAE,WAAmB,EAAE,OAAe,EAAE,WAAmB,EAAE,KAAa,EAAE,SAAe;QAC5H,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,OAAwB,EAAE,QAA0B;QACxF,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAEnD,MAAM,IAAI,GAAG;YACT,EAAE,EAAE,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa;YAChD,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;YACzC,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW;YACrD,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,YAAY,EAAE,OAAO,CAAC,QAAQ;YAC9B,cAAc,EAAE,OAAO,CAAC,MAAM;YAC9B,eAAe,EAAE,OAAO,CAAC,OAAO;SACnC,CAAC;QAEF,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAwB,EAAE,QAA4B;QAC5F,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG;YACT,EAAE,EAAE,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa;YAChD,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;YACzC,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW;YACrD,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;YACrD,YAAY,EAAE,OAAO,CAAC,QAAQ;YAC9B,cAAc,EAAE,OAAO,CAAC,MAAM;YAC9B,eAAe,EAAE,OAAO,CAAC,OAAO;SACnC,CAAC;QAEF,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,WAAgB;QAC7C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAE7C,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,WAAgB;QAChD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAE7C,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACjE,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAAS;QACxC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAE7C,OAAO,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,WAAgB,EAAE,IAAS;QAC3D,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAE7C,OAAO,MAAM,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,MAAc;QAC1C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC5E,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAE,MAAc,EAAE,OAAwB,EAAE,IAAa;QACzG,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,UAAU,CAAC,SAAS,CAAC;gBACvB,IAAI;gBACJ,QAAQ;gBACR,MAAM;gBACN,OAAO;gBACP,IAAI;aACP,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;YAC7D,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,SAAS;QAClB,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAEnD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QAC7C,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAE7D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,KAAK,CAAC,CAAC;YAC3E,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,OAAe;QAC3C,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;gBACjC,GAAG,EAAE;oBACD,EAAE,aAAa,EAAE,OAAO,EAAE;oBAC1B,EAAE,cAAc,EAAE,OAAO,EAAE;oBAC3B,EAAE,gBAAgB,EAAE,OAAO,EAAE;oBAC7B,EAAE,iBAAiB,EAAE,OAAO,EAAE;iBACjC;aACJ,CAAC,CAAC,OAAO,EAAE,CAAC;YAEb,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,KAAK,CAAC,CAAC;YAC1E,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,YAAY;QACrB,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAEtD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,QAAgB;QAChD,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAE9E,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uDAAuD,EAAE,KAAK,CAAC,CAAC;YAC9E,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,OAAe;QAC9C,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAEvE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAE,KAAK,CAAC,CAAC;YAC7E,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,OAAe;QAC9C,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAE/D,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uDAAuD,EAAE,KAAK,CAAC,CAAC;YAC9E,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAElD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;YAC7D,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QAC3C,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAE1E,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAK,CAAC,CAAC;YACzE,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACzC,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAEnE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACzC,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAE3D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAK,CAAC,CAAC;YACzE,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;CACJ;AAnaD,wCAmaC"}
1
+ {"version":3,"file":"mongodb.adapter.js","sourceRoot":"","sources":["../../src/adapters/mongodb.adapter.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,9 @@ export interface PostgreSQLConfig {
13
13
  }
14
14
  export declare class PostgreSQLAdapter extends AdapterBase {
15
15
  db: Knex;
16
+ readonly capabilities: {
17
+ sql: boolean;
18
+ };
16
19
  private config;
17
20
  constructor(config: PostgreSQLConfig);
18
21
  private blockNumber;
@@ -22,6 +25,8 @@ export declare class PostgreSQLAdapter extends AdapterBase {
22
25
  private transactionId;
23
26
  getDb(): Knex;
24
27
  create(): Promise<boolean>;
28
+ private ensureTable;
29
+ private createIndexIfNotExists;
25
30
  loadActions(): Promise<TimeAction[]>;
26
31
  loadState(): Promise<any>;
27
32
  saveState(data: any): Promise<boolean>;
@@ -45,6 +50,7 @@ export declare class PostgreSQLAdapter extends AdapterBase {
45
50
  findOne(table: string, query: Record<string, any>): Promise<any>;
46
51
  insert(table: string, data: any): Promise<boolean>;
47
52
  replace(table: string, queryObject: Record<string, any>, data: any): Promise<any>;
53
+ runInTransaction<T>(work: (adapter: AdapterBase) => Promise<T>): Promise<T>;
48
54
  getExchangeBalances(account?: string): Promise<any[]>;
49
55
  getExchangeOrders(filters?: {
50
56
  account?: string;
@@ -63,4 +69,5 @@ export declare class PostgreSQLAdapter extends AdapterBase {
63
69
  limit?: number;
64
70
  }): Promise<any[]>;
65
71
  query(sql: string, params?: any[]): Promise<any[]>;
72
+ private normalizeSql;
66
73
  }