hive-stream 3.0.1 → 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.
- package/DOCUMENTATION.md +66 -2
- package/README.md +95 -24
- package/dist/adapters/base.adapter.d.ts +5 -0
- package/dist/adapters/base.adapter.js +9 -0
- package/dist/adapters/base.adapter.js.map +1 -1
- package/dist/adapters/mongodb.adapter.d.ts +6 -6
- package/dist/adapters/mongodb.adapter.js +36 -21
- package/dist/adapters/mongodb.adapter.js.map +1 -1
- package/dist/adapters/postgresql.adapter.d.ts +7 -0
- package/dist/adapters/postgresql.adapter.js +46 -19
- package/dist/adapters/postgresql.adapter.js.map +1 -1
- package/dist/adapters/sqlite.adapter.d.ts +4 -0
- package/dist/adapters/sqlite.adapter.js +10 -0
- package/dist/adapters/sqlite.adapter.js.map +1 -1
- package/dist/api.d.ts +13 -3
- package/dist/api.js +96 -62
- package/dist/api.js.map +1 -1
- package/dist/config.d.ts +29 -0
- package/dist/config.js +77 -2
- package/dist/config.js.map +1 -1
- package/dist/contracts/auctionhouse.contract.d.ts +4 -0
- package/dist/contracts/auctionhouse.contract.js +234 -0
- package/dist/contracts/auctionhouse.contract.js.map +1 -0
- package/dist/contracts/booking.contract.d.ts +4 -0
- package/dist/contracts/booking.contract.js +225 -0
- package/dist/contracts/booking.contract.js.map +1 -0
- package/dist/contracts/bountyboard.contract.d.ts +4 -0
- package/dist/contracts/bountyboard.contract.js +233 -0
- package/dist/contracts/bountyboard.contract.js.map +1 -0
- package/dist/contracts/bundlemarketplace.contract.d.ts +4 -0
- package/dist/contracts/bundlemarketplace.contract.js +195 -0
- package/dist/contracts/bundlemarketplace.contract.js.map +1 -0
- package/dist/contracts/charitymatch.contract.d.ts +4 -0
- package/dist/contracts/charitymatch.contract.js +172 -0
- package/dist/contracts/charitymatch.contract.js.map +1 -0
- package/dist/contracts/coinflip.contract.js +7 -1
- package/dist/contracts/coinflip.contract.js.map +1 -1
- package/dist/contracts/crowdfund.contract.d.ts +4 -0
- package/dist/contracts/crowdfund.contract.js +290 -0
- package/dist/contracts/crowdfund.contract.js.map +1 -0
- package/dist/contracts/dcabot.contract.d.ts +4 -0
- package/dist/contracts/dcabot.contract.js +217 -0
- package/dist/contracts/dcabot.contract.js.map +1 -0
- package/dist/contracts/dice.contract.js +7 -1
- package/dist/contracts/dice.contract.js.map +1 -1
- package/dist/contracts/domainregistry.contract.d.ts +4 -0
- package/dist/contracts/domainregistry.contract.js +232 -0
- package/dist/contracts/domainregistry.contract.js.map +1 -0
- package/dist/contracts/exchange.contract.js +209 -168
- package/dist/contracts/exchange.contract.js.map +1 -1
- package/dist/contracts/fanclub.contract.d.ts +4 -0
- package/dist/contracts/fanclub.contract.js +193 -0
- package/dist/contracts/fanclub.contract.js.map +1 -0
- package/dist/contracts/giftcard.contract.d.ts +4 -0
- package/dist/contracts/giftcard.contract.js +158 -0
- package/dist/contracts/giftcard.contract.js.map +1 -0
- package/dist/contracts/grantrounds.contract.d.ts +4 -0
- package/dist/contracts/grantrounds.contract.js +265 -0
- package/dist/contracts/grantrounds.contract.js.map +1 -0
- package/dist/contracts/groupbuy.contract.d.ts +4 -0
- package/dist/contracts/groupbuy.contract.js +198 -0
- package/dist/contracts/groupbuy.contract.js.map +1 -0
- package/dist/contracts/helpers.d.ts +64 -0
- package/dist/contracts/helpers.js +159 -0
- package/dist/contracts/helpers.js.map +1 -0
- package/dist/contracts/insurancepool.contract.d.ts +4 -0
- package/dist/contracts/insurancepool.contract.js +281 -0
- package/dist/contracts/insurancepool.contract.js.map +1 -0
- package/dist/contracts/invoice.contract.d.ts +4 -0
- package/dist/contracts/invoice.contract.js +193 -0
- package/dist/contracts/invoice.contract.js.map +1 -0
- package/dist/contracts/launchpad.contract.d.ts +4 -0
- package/dist/contracts/launchpad.contract.js +225 -0
- package/dist/contracts/launchpad.contract.js.map +1 -0
- package/dist/contracts/lotto.contract.js +53 -37
- package/dist/contracts/lotto.contract.js.map +1 -1
- package/dist/contracts/multisigtreasury.contract.d.ts +4 -0
- package/dist/contracts/multisigtreasury.contract.js +245 -0
- package/dist/contracts/multisigtreasury.contract.js.map +1 -0
- package/dist/contracts/nft.contract.d.ts +1 -0
- package/dist/contracts/nft.contract.js +236 -192
- package/dist/contracts/nft.contract.js.map +1 -1
- package/dist/contracts/oraclebounty.contract.d.ts +4 -0
- package/dist/contracts/oraclebounty.contract.js +250 -0
- package/dist/contracts/oraclebounty.contract.js.map +1 -0
- package/dist/contracts/payroll.contract.d.ts +4 -0
- package/dist/contracts/payroll.contract.js +232 -0
- package/dist/contracts/payroll.contract.js.map +1 -0
- package/dist/contracts/paywall.contract.d.ts +4 -0
- package/dist/contracts/paywall.contract.js +185 -0
- package/dist/contracts/paywall.contract.js.map +1 -0
- package/dist/contracts/poll.contract.js +2 -0
- package/dist/contracts/poll.contract.js.map +1 -1
- package/dist/contracts/predictionmarket.contract.d.ts +4 -0
- package/dist/contracts/predictionmarket.contract.js +213 -0
- package/dist/contracts/predictionmarket.contract.js.map +1 -0
- package/dist/contracts/proposaltimelock.contract.d.ts +4 -0
- package/dist/contracts/proposaltimelock.contract.js +250 -0
- package/dist/contracts/proposaltimelock.contract.js.map +1 -0
- package/dist/contracts/questpass.contract.d.ts +4 -0
- package/dist/contracts/questpass.contract.js +214 -0
- package/dist/contracts/questpass.contract.js.map +1 -0
- package/dist/contracts/referral.contract.d.ts +4 -0
- package/dist/contracts/referral.contract.js +238 -0
- package/dist/contracts/referral.contract.js.map +1 -0
- package/dist/contracts/rental.contract.d.ts +4 -0
- package/dist/contracts/rental.contract.js +221 -0
- package/dist/contracts/rental.contract.js.map +1 -0
- package/dist/contracts/revenuesplit.contract.d.ts +4 -0
- package/dist/contracts/revenuesplit.contract.js +211 -0
- package/dist/contracts/revenuesplit.contract.js.map +1 -0
- package/dist/contracts/rps.contract.js +17 -1
- package/dist/contracts/rps.contract.js.map +1 -1
- package/dist/contracts/savings.contract.d.ts +4 -0
- package/dist/contracts/savings.contract.js +208 -0
- package/dist/contracts/savings.contract.js.map +1 -0
- package/dist/contracts/subscription.contract.d.ts +4 -0
- package/dist/contracts/subscription.contract.js +241 -0
- package/dist/contracts/subscription.contract.js.map +1 -0
- package/dist/contracts/sweepstakes.contract.d.ts +4 -0
- package/dist/contracts/sweepstakes.contract.js +209 -0
- package/dist/contracts/sweepstakes.contract.js.map +1 -0
- package/dist/contracts/ticketing.contract.d.ts +4 -0
- package/dist/contracts/ticketing.contract.js +185 -0
- package/dist/contracts/ticketing.contract.js.map +1 -0
- package/dist/contracts/tipjar.contract.js +2 -0
- package/dist/contracts/tipjar.contract.js.map +1 -1
- package/dist/contracts/token.contract.js +135 -125
- package/dist/contracts/token.contract.js.map +1 -1
- package/dist/index.d.ts +40 -0
- package/dist/index.js +72 -1
- package/dist/index.js.map +1 -1
- package/dist/metadata.d.ts +70 -0
- package/dist/metadata.js +470 -0
- package/dist/metadata.js.map +1 -0
- package/dist/providers/block-provider.d.ts +22 -0
- package/dist/providers/block-provider.js +3 -0
- package/dist/providers/block-provider.js.map +1 -0
- package/dist/providers/haf-client.d.ts +30 -0
- package/dist/providers/haf-client.js +119 -0
- package/dist/providers/haf-client.js.map +1 -0
- package/dist/providers/haf-provider.d.ts +49 -0
- package/dist/providers/haf-provider.js +256 -0
- package/dist/providers/haf-provider.js.map +1 -0
- package/dist/providers/hive-provider.d.ts +13 -0
- package/dist/providers/hive-provider.js +25 -0
- package/dist/providers/hive-provider.js.map +1 -0
- package/dist/providers/index.d.ts +4 -0
- package/dist/providers/index.js +21 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/streamer.d.ts +24 -4
- package/dist/streamer.js +196 -69
- package/dist/streamer.js.map +1 -1
- package/dist/utils.js +11 -2
- package/dist/utils.js.map +1 -1
- package/package.json +16 -1
- package/.claude/settings.local.json +0 -12
- package/.env.example +0 -3
- package/.travis.yml +0 -11
- package/AGENTS.md +0 -35
- package/CLAUDE.md +0 -75
- package/ecosystem.config.js +0 -17
- package/examples/contracts/README.md +0 -8
- package/examples/contracts/exchange.ts +0 -38
- package/examples/contracts/poll.ts +0 -21
- package/examples/contracts/rps.ts +0 -19
- package/examples/contracts/tipjar.ts +0 -19
- package/jest.config.js +0 -9
- package/test-contract-block.md +0 -19
- package/tests/actions.spec.ts +0 -252
- package/tests/adapters/actions-persistence.spec.ts +0 -144
- package/tests/adapters/postgresql.adapter.spec.ts +0 -127
- package/tests/adapters/sqlite.adapter.spec.ts +0 -181
- package/tests/contracts/coinflip.contract.spec.ts +0 -94
- package/tests/contracts/dice.contract.spec.ts +0 -87
- package/tests/contracts/entrants.json +0 -729
- package/tests/contracts/exchange.contract.spec.ts +0 -84
- package/tests/contracts/lotto.contract.spec.ts +0 -59
- package/tests/contracts/nft.contract.spec.ts +0 -948
- package/tests/contracts/token.contract.spec.ts +0 -90
- package/tests/exchanges/coingecko.exchange.spec.ts +0 -169
- package/tests/exchanges/exchange.base.spec.ts +0 -246
- package/tests/helpers/mock-adapter.ts +0 -214
- package/tests/helpers/mock-fetch.ts +0 -165
- package/tests/hive-chain-features.spec.ts +0 -238
- package/tests/hive-rates.spec.ts +0 -443
- package/tests/integration/hive-rates.integration.spec.ts +0 -35
- package/tests/setup.ts +0 -30
- package/tests/streamer-actions.spec.ts +0 -274
- package/tests/streamer.spec.ts +0 -342
- package/tests/types/rates.spec.ts +0 -216
- package/tests/utils.spec.ts +0 -113
- package/tsconfig.build.json +0 -4
- package/tslint.json +0 -21
- package/wallaby.js +0 -26
package/DOCUMENTATION.md
CHANGED
|
@@ -9,6 +9,8 @@ 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
|
+
`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
|
+
|
|
12
14
|
---
|
|
13
15
|
|
|
14
16
|
## Concepts
|
|
@@ -23,7 +25,6 @@ Contracts are registered with the `Streamer` and called when a payload matches `
|
|
|
23
25
|
|
|
24
26
|
### Actions
|
|
25
27
|
An **action** is a handler function plus metadata such as:
|
|
26
|
-
- the trigger (`custom_json`, `transfer`, or `time`)
|
|
27
28
|
- the trigger (`custom_json`, `transfer`, `time`, `escrow_transfer`, `escrow_approve`, `escrow_dispute`, `escrow_release`, or `recurrent_transfer`)
|
|
28
29
|
- an optional Zod schema to validate payloads
|
|
29
30
|
- whether it requires an active key signature
|
|
@@ -32,6 +33,8 @@ An **action** is a handler function plus metadata such as:
|
|
|
32
33
|
Hive Stream extracts payloads from:
|
|
33
34
|
- **custom_json**: `op[1].json`
|
|
34
35
|
- **transfer memo**: `op[1].memo`
|
|
36
|
+
- **recurrent transfer memo**: `op[1].memo`
|
|
37
|
+
- **escrow metadata**: `op[1].json_meta`
|
|
35
38
|
|
|
36
39
|
It expects a wrapper object that looks like:
|
|
37
40
|
|
|
@@ -48,6 +51,19 @@ It expects a wrapper object that looks like:
|
|
|
48
51
|
|
|
49
52
|
The wrapper key `hive_stream` is the default `PAYLOAD_IDENTIFIER`. You can change it in config.
|
|
50
53
|
|
|
54
|
+
Relevant configuration defaults:
|
|
55
|
+
|
|
56
|
+
- `PAYLOAD_IDENTIFIER`: `hive_stream`
|
|
57
|
+
- `JSON_ID`: `hivestream`
|
|
58
|
+
- `HIVE_ENGINE_ID`: `ssc-mainnet-hive`
|
|
59
|
+
- `HIVE_ENGINE_API`: `https://api.hive-engine.com/rpc`
|
|
60
|
+
|
|
61
|
+
### Event Handlers vs Contracts
|
|
62
|
+
Streamer event handlers (`onTransfer`, `onCustomJson`, `onCustomJsonId`, etc.) and contract actions are different execution paths.
|
|
63
|
+
|
|
64
|
+
- Event handlers fire for matching blockchain operations.
|
|
65
|
+
- Contract actions only run when a valid wrapper exists under `PAYLOAD_IDENTIFIER` and the `contract` + `action` values match a registered contract action.
|
|
66
|
+
|
|
51
67
|
---
|
|
52
68
|
|
|
53
69
|
## Contract API
|
|
@@ -286,6 +302,35 @@ export const TipJar = defineContract({
|
|
|
286
302
|
- `createPollContract` - Polls and votes
|
|
287
303
|
- `createTipJarContract` - Tip jar + message log
|
|
288
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
|
|
289
334
|
|
|
290
335
|
### Example Snippets
|
|
291
336
|
|
|
@@ -296,6 +341,8 @@ Quick-start snippets live in `examples/contracts/`:
|
|
|
296
341
|
- `examples/contracts/tipjar.ts`
|
|
297
342
|
- `examples/contracts/exchange.ts`
|
|
298
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
|
+
|
|
299
346
|
---
|
|
300
347
|
|
|
301
348
|
## Exchange Contract Guide
|
|
@@ -362,7 +409,24 @@ createExchangeContract({
|
|
|
362
409
|
|
|
363
410
|
### API Endpoints
|
|
364
411
|
|
|
365
|
-
If you
|
|
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:
|
|
366
430
|
|
|
367
431
|
- `GET /exchange/balances` (optional query `?account=alice`)
|
|
368
432
|
- `GET /exchange/orders` (query `account`, `base`, `quote`, `status`)
|
package/README.md
CHANGED
|
@@ -21,60 +21,90 @@ ss.onCustomJson((op, { sender, isSignedWithActiveKey }, blockNumber, blockId, pr
|
|
|
21
21
|
});
|
|
22
22
|
```
|
|
23
23
|
|
|
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
|
+
|
|
26
|
+
## Builder/Tooling Metadata
|
|
27
|
+
|
|
28
|
+
For external tooling (like visual builders), Hive Stream now exports a read-only metadata object:
|
|
29
|
+
|
|
30
|
+
```javascript
|
|
31
|
+
const { HIVE_STREAM_METADATA, getHiveStreamMetadata } = require('hive-stream');
|
|
32
|
+
|
|
33
|
+
console.log(HIVE_STREAM_METADATA.subscriptions);
|
|
34
|
+
console.log(getHiveStreamMetadata().writeOperations);
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
This metadata is static runtime data (no network calls) and includes config defaults, event callback signatures, write operation signatures, adapter metadata, contract trigger info, and valid `TimeAction` values.
|
|
38
|
+
|
|
24
39
|
## Configuration
|
|
25
40
|
|
|
26
41
|
The `Streamer` object can accept an object of configuration values which are all optional. However, some operations like transferring Hive Engine tokens or other operations on the blockchain that are not READ ONLY, will require the active key and/or posting keys supplied as well as a username.
|
|
27
42
|
|
|
28
|
-
The `
|
|
43
|
+
The `blockCheckInterval` value is how often to check for new blocks or in cases of error or falling behind, to poll for new blocks. You should keep this as the default 1000ms value which is one second. This allows you to account for situations where blocks fall behind the main block.
|
|
44
|
+
|
|
45
|
+
The `blocksBehindWarning` value is a numeric value of the number of blocks your API will fall behind from the master before warning to the console.
|
|
29
46
|
|
|
30
|
-
|
|
47
|
+
To resume automatically from stored state, keep `resumeFromState` enabled (default). To force a specific start block, set `resumeFromState` to `false` and supply `lastBlockNumber`.
|
|
31
48
|
|
|
32
|
-
|
|
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).
|
|
33
50
|
|
|
34
|
-
|
|
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`.
|
|
35
52
|
|
|
36
|
-
|
|
53
|
+
CamelCase config keys are recommended for readability. Legacy uppercase keys are still supported for backwards compatibility.
|
|
37
54
|
|
|
38
55
|
```
|
|
39
56
|
const options = {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
57
|
+
activeKey: '',
|
|
58
|
+
postingKey: '',
|
|
59
|
+
jsonId: 'hivestream',
|
|
60
|
+
hiveEngineApi: 'https://api.hive-engine.com/rpc',
|
|
61
|
+
hiveEngineId: 'ssc-mainnet-hive',
|
|
62
|
+
payloadIdentifier: 'hive_stream',
|
|
63
|
+
appName: 'hive-stream',
|
|
64
|
+
username: '',
|
|
65
|
+
lastBlockNumber: 0,
|
|
66
|
+
blockCheckInterval: 1000,
|
|
67
|
+
blocksBehindWarning: 25,
|
|
68
|
+
resumeFromState: true,
|
|
69
|
+
catchUpBatchSize: 50,
|
|
70
|
+
catchUpDelayMs: 0,
|
|
71
|
+
apiNodes: ['https://api.hive.blog', 'https://api.openhive.network', 'https://rpc.ausbit.dev'],
|
|
72
|
+
apiEnabled: false,
|
|
73
|
+
apiPort: 5001,
|
|
74
|
+
debugMode: false
|
|
52
75
|
}
|
|
53
76
|
|
|
54
77
|
const ss = new Streamer(options);
|
|
55
78
|
```
|
|
56
79
|
|
|
80
|
+
If you want the built-in API without starting block streaming yet:
|
|
81
|
+
|
|
82
|
+
```javascript
|
|
83
|
+
await ss.startApiServer();
|
|
84
|
+
```
|
|
85
|
+
|
|
57
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.
|
|
58
87
|
|
|
59
88
|
```
|
|
60
89
|
ss.setConfig({
|
|
61
|
-
|
|
62
|
-
|
|
90
|
+
activeKey: 'newactivekey',
|
|
91
|
+
username: 'newusername'
|
|
63
92
|
});
|
|
64
93
|
```
|
|
65
94
|
|
|
66
95
|
## Streamer
|
|
67
96
|
|
|
68
97
|
The following subscription methods are read only methods, they allow you to react to certain Hive and Hive Engine events on the blockchain. You do not need to pass in any keys to use these methods as they're purely read only.
|
|
98
|
+
These event subscriptions and contract actions are separate paths: subscriptions fire for matching operations, while contracts only run when a payload wrapper exists under `PAYLOAD_IDENTIFIER`.
|
|
69
99
|
|
|
70
100
|
**The following actions DO require calling the `start` method first to watch the blockchain**
|
|
71
101
|
|
|
72
102
|
#### Watch for transfers
|
|
73
103
|
|
|
74
104
|
```javascript
|
|
75
|
-
ss.onTransfer((op, blockNumber, blockId, prevBlockId, trxId, blockTime) => {
|
|
76
|
-
|
|
77
|
-
})
|
|
105
|
+
ss.onTransfer('myaccount', (op, { sender, amount, asset, memo }, blockNumber, blockId, prevBlockId, trxId, blockTime) => {
|
|
106
|
+
// Fires only when op.to === 'myaccount'
|
|
107
|
+
});
|
|
78
108
|
```
|
|
79
109
|
|
|
80
110
|
#### Watch for escrow operations
|
|
@@ -107,7 +137,14 @@ ss.onCustomJson((op, { sender, isSignedWithActiveKey }, blockNumber, blockId, pr
|
|
|
107
137
|
```javascript
|
|
108
138
|
ss.onCustomJsonId((op, { sender, isSignedWithActiveKey }, blockNumber, blockId, prevBlockId, trxId, blockTime) => {
|
|
109
139
|
|
|
110
|
-
})
|
|
140
|
+
}, 'your-custom-json-id');
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
#### Watch for Hive Engine custom JSON operations
|
|
144
|
+
```javascript
|
|
145
|
+
ss.onHiveEngine((contractName, contractAction, contractPayload, sender, op, blockNumber, blockId, prevBlockId, trxId, blockTime) => {
|
|
146
|
+
|
|
147
|
+
});
|
|
111
148
|
```
|
|
112
149
|
|
|
113
150
|
#### Watch for post operations
|
|
@@ -220,7 +257,8 @@ downvote(votePercentage = '100.0', username, permlink) {
|
|
|
220
257
|
|
|
221
258
|
## Contracts
|
|
222
259
|
|
|
223
|
-
Hive Stream allows you to register contract definitions that execute when a transfer memo or custom JSON operation
|
|
260
|
+
Hive Stream allows you to register contract definitions that execute when a transfer memo or custom JSON operation includes a contract wrapper. The payload lives under the `PAYLOAD_IDENTIFIER` key (default: `hive_stream`).
|
|
261
|
+
Regular event handlers like `onTransfer` and `onCustomJson` still run for matching operations even when no contract wrapper is present.
|
|
224
262
|
|
|
225
263
|
The payload shape is:
|
|
226
264
|
|
|
@@ -289,6 +327,35 @@ The library includes several built-in contract examples in the `src/contracts` f
|
|
|
289
327
|
- `createPollContract` - A poll/voting contract
|
|
290
328
|
- `createTipJarContract` - A tip jar + message board contract
|
|
291
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
|
|
292
359
|
|
|
293
360
|
These can be imported and used as examples for building your own contracts:
|
|
294
361
|
|
|
@@ -296,6 +363,8 @@ These can be imported and used as examples for building your own contracts:
|
|
|
296
363
|
import { createDiceContract, createCoinflipContract, createLottoContract } from 'hive-stream';
|
|
297
364
|
```
|
|
298
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
|
+
|
|
299
368
|
### Example Snippets
|
|
300
369
|
|
|
301
370
|
Sample snippets for the newest contracts live in `examples/contracts/`:
|
|
@@ -380,6 +449,8 @@ const adapter = new MongodbAdapter('mongodb://localhost:27017', 'hive_stream');
|
|
|
380
449
|
await streamer.registerAdapter(adapter);
|
|
381
450
|
```
|
|
382
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
|
+
|
|
383
454
|
### PostgreSQL Adapter
|
|
384
455
|
```javascript
|
|
385
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;
|
|
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<
|
|
30
|
-
replace(table: string, queryObject: any, data: any): Promise<
|
|
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 = {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"mongodb.adapter.js","sourceRoot":"","sources":["../../src/adapters/mongodb.adapter.ts"],"names":[],"mappings":"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"}
|