hive-stream 2.0.6 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/.claude/settings.local.json +12 -0
  2. package/.env.example +2 -2
  3. package/.travis.yml +11 -11
  4. package/AGENTS.md +35 -0
  5. package/CHANGELOG.md +166 -0
  6. package/CLAUDE.md +75 -0
  7. package/DOCUMENTATION.md +380 -0
  8. package/LICENSE +21 -21
  9. package/README.md +429 -238
  10. package/dist/actions.d.ts +41 -10
  11. package/dist/actions.js +126 -23
  12. package/dist/actions.js.map +1 -1
  13. package/dist/adapters/base.adapter.d.ts +43 -25
  14. package/dist/adapters/base.adapter.js +79 -49
  15. package/dist/adapters/base.adapter.js.map +1 -1
  16. package/dist/adapters/mongodb.adapter.d.ts +44 -37
  17. package/dist/adapters/mongodb.adapter.js +363 -158
  18. package/dist/adapters/mongodb.adapter.js.map +1 -1
  19. package/dist/adapters/postgresql.adapter.d.ts +66 -0
  20. package/dist/adapters/postgresql.adapter.js +598 -0
  21. package/dist/adapters/postgresql.adapter.js.map +1 -0
  22. package/dist/adapters/sqlite.adapter.d.ts +57 -41
  23. package/dist/adapters/sqlite.adapter.js +561 -397
  24. package/dist/adapters/sqlite.adapter.js.map +1 -1
  25. package/dist/api.d.ts +6 -6
  26. package/dist/api.js +181 -55
  27. package/dist/api.js.map +1 -1
  28. package/dist/config.d.ts +19 -16
  29. package/dist/config.js +21 -18
  30. package/dist/config.js.map +1 -1
  31. package/dist/contracts/coinflip.contract.d.ts +9 -14
  32. package/dist/contracts/coinflip.contract.js +232 -94
  33. package/dist/contracts/coinflip.contract.js.map +1 -1
  34. package/dist/contracts/contract.d.ts +3 -0
  35. package/dist/contracts/contract.js +26 -0
  36. package/dist/contracts/contract.js.map +1 -0
  37. package/dist/contracts/dice.contract.d.ts +10 -29
  38. package/dist/contracts/dice.contract.js +217 -155
  39. package/dist/contracts/dice.contract.js.map +1 -1
  40. package/dist/contracts/exchange.contract.d.ts +11 -0
  41. package/dist/contracts/exchange.contract.js +492 -0
  42. package/dist/contracts/exchange.contract.js.map +1 -0
  43. package/dist/contracts/lotto.contract.d.ts +16 -20
  44. package/dist/contracts/lotto.contract.js +238 -246
  45. package/dist/contracts/lotto.contract.js.map +1 -1
  46. package/dist/contracts/nft.contract.d.ts +28 -0
  47. package/dist/contracts/nft.contract.js +598 -0
  48. package/dist/contracts/nft.contract.js.map +1 -0
  49. package/dist/contracts/poll.contract.d.ts +4 -0
  50. package/dist/contracts/poll.contract.js +105 -0
  51. package/dist/contracts/poll.contract.js.map +1 -0
  52. package/dist/contracts/rps.contract.d.ts +9 -0
  53. package/dist/contracts/rps.contract.js +217 -0
  54. package/dist/contracts/rps.contract.js.map +1 -0
  55. package/dist/contracts/tipjar.contract.d.ts +4 -0
  56. package/dist/contracts/tipjar.contract.js +60 -0
  57. package/dist/contracts/tipjar.contract.js.map +1 -0
  58. package/dist/contracts/token.contract.d.ts +4 -0
  59. package/dist/contracts/token.contract.js +311 -0
  60. package/dist/contracts/token.contract.js.map +1 -0
  61. package/dist/exchanges/bittrex.d.ts +6 -6
  62. package/dist/exchanges/bittrex.js +34 -34
  63. package/dist/exchanges/coingecko.d.ts +11 -0
  64. package/dist/exchanges/coingecko.js +57 -0
  65. package/dist/exchanges/coingecko.js.map +1 -0
  66. package/dist/exchanges/exchange.d.ts +16 -9
  67. package/dist/exchanges/exchange.js +80 -26
  68. package/dist/exchanges/exchange.js.map +1 -1
  69. package/dist/hive-rates.d.ts +34 -9
  70. package/dist/hive-rates.js +208 -75
  71. package/dist/hive-rates.js.map +1 -1
  72. package/dist/index.d.ts +19 -11
  73. package/dist/index.js +47 -32
  74. package/dist/index.js.map +1 -1
  75. package/dist/streamer.d.ts +233 -93
  76. package/dist/streamer.js +1063 -545
  77. package/dist/streamer.js.map +1 -1
  78. package/dist/test.d.ts +1 -1
  79. package/dist/test.js +24 -25
  80. package/dist/test.js.map +1 -1
  81. package/dist/types/hive-stream.d.ts +106 -6
  82. package/dist/types/hive-stream.js +2 -2
  83. package/dist/types/rates.d.ts +47 -0
  84. package/dist/types/rates.js +29 -0
  85. package/dist/types/rates.js.map +1 -0
  86. package/dist/utils.d.ts +334 -27
  87. package/dist/utils.js +960 -261
  88. package/dist/utils.js.map +1 -1
  89. package/ecosystem.config.js +17 -17
  90. package/examples/contracts/README.md +8 -0
  91. package/examples/contracts/exchange.ts +38 -0
  92. package/examples/contracts/poll.ts +21 -0
  93. package/examples/contracts/rps.ts +19 -0
  94. package/examples/contracts/tipjar.ts +19 -0
  95. package/jest.config.js +8 -8
  96. package/package.json +54 -48
  97. package/test-contract-block.md +18 -18
  98. package/tests/actions.spec.ts +252 -0
  99. package/tests/adapters/actions-persistence.spec.ts +144 -0
  100. package/tests/adapters/postgresql.adapter.spec.ts +127 -0
  101. package/tests/adapters/sqlite.adapter.spec.ts +180 -42
  102. package/tests/contracts/coinflip.contract.spec.ts +94 -132
  103. package/tests/contracts/dice.contract.spec.ts +87 -160
  104. package/tests/contracts/entrants.json +728 -728
  105. package/tests/contracts/exchange.contract.spec.ts +84 -0
  106. package/tests/contracts/lotto.contract.spec.ts +59 -324
  107. package/tests/contracts/nft.contract.spec.ts +948 -0
  108. package/tests/contracts/token.contract.spec.ts +90 -0
  109. package/tests/exchanges/coingecko.exchange.spec.ts +169 -0
  110. package/tests/exchanges/exchange.base.spec.ts +246 -0
  111. package/tests/helpers/mock-adapter.ts +214 -0
  112. package/tests/helpers/mock-fetch.ts +165 -0
  113. package/tests/hive-chain-features.spec.ts +238 -0
  114. package/tests/hive-rates.spec.ts +443 -0
  115. package/tests/integration/hive-rates.integration.spec.ts +35 -0
  116. package/tests/setup.ts +29 -18
  117. package/tests/streamer-actions.spec.ts +274 -0
  118. package/tests/streamer.spec.ts +342 -152
  119. package/tests/types/rates.spec.ts +216 -0
  120. package/tests/utils.spec.ts +113 -95
  121. package/tsconfig.build.json +3 -22
  122. package/tslint.json +20 -20
  123. package/wallaby.js +26 -26
@@ -1,41 +1,57 @@
1
- import { TimeAction } from './../actions';
2
- import { ContractPayload } from './../types/hive-stream';
3
- import { AdapterBase } from './base.adapter';
4
- import { Database } from 'sqlite3';
5
- export declare class SqliteAdapter extends AdapterBase {
6
- db: Database;
7
- private blockNumber;
8
- private lastBlockNumber;
9
- private blockId;
10
- private prevBlockId;
11
- private transactionId;
12
- getDb(): Database;
13
- create(): Promise<boolean>;
14
- loadActions(): Promise<TimeAction[]>;
15
- loadState(): Promise<any>;
16
- saveState(data: any): Promise<boolean>;
17
- processOperation(op: any, blockNumber: number, blockId: string, prevBlockId: string, trxId: string, blockTime: Date): Promise<void>;
18
- processTransfer(operation: any, payload: ContractPayload, metadata: {
19
- sender: string;
20
- amount: string;
21
- }): Promise<boolean>;
22
- processCustomJson(operation: any, payload: ContractPayload, metadata: {
23
- sender: string;
24
- isSignedWithActiveKey: boolean;
25
- }): Promise<boolean>;
26
- addEvent(date: string, contract: string, action: string, payload: ContractPayload, data: unknown): Promise<boolean>;
27
- getTransfers(): Promise<unknown>;
28
- getEvents(): Promise<unknown>;
29
- getTransfersByContract(contract: string): Promise<unknown>;
30
- getTransfersByAccount(account: string): Promise<unknown>;
31
- getTransfersByBlockid(blockId: any): Promise<unknown>;
32
- getJson(): Promise<unknown>;
33
- getJsonByContract(contract: string): Promise<unknown>;
34
- getJsonByAccount(account: string): Promise<unknown>;
35
- getJsonByBlockid(blockId: any): Promise<unknown>;
36
- destroy(): Promise<boolean>;
37
- find(table: any, query: any): Promise<unknown>;
38
- findOne(table: any, query: any): Promise<unknown>;
39
- insert(table: any, data: any): Promise<unknown>;
40
- replace(table: string, queryObject: any, data: any): Promise<any>;
41
- }
1
+ import { TimeAction } from './../actions';
2
+ import { ContractPayload, TransferMetadata, CustomJsonMetadata } from './../types/hive-stream';
3
+ import { AdapterBase } from './base.adapter';
4
+ import { Knex } from 'knex';
5
+ export declare class SqliteAdapter extends AdapterBase {
6
+ db: Knex;
7
+ private dbPath;
8
+ constructor(dbPath?: string);
9
+ private blockNumber;
10
+ private lastBlockNumber;
11
+ private blockId;
12
+ private prevBlockId;
13
+ private transactionId;
14
+ getDb(): Knex;
15
+ create(): Promise<boolean>;
16
+ loadActions(): Promise<TimeAction[]>;
17
+ loadState(): Promise<any>;
18
+ saveState(data: any): Promise<boolean>;
19
+ processOperation(op: any, blockNumber: number, blockId: string, prevBlockId: string, trxId: string, blockTime: Date): Promise<void>;
20
+ processTransfer(operation: any, payload: ContractPayload, metadata: TransferMetadata): Promise<boolean>;
21
+ processCustomJson(operation: any, payload: ContractPayload, metadata: CustomJsonMetadata): Promise<boolean>;
22
+ addEvent(date: string, contract: string, action: string, payload: ContractPayload, data: unknown): Promise<boolean>;
23
+ getTransfers(): Promise<any[]>;
24
+ getEvents(): Promise<any[]>;
25
+ getEventsByContract(contract: string): Promise<any[]>;
26
+ getEventsByAccount(account: string): Promise<any[]>;
27
+ getTransfersByContract(contract: string): Promise<any[]>;
28
+ getTransfersByAccount(account: string): Promise<any[]>;
29
+ getTransfersByBlockid(blockId: any): Promise<any[]>;
30
+ getJson(): Promise<any[]>;
31
+ getJsonByContract(contract: string): Promise<any[]>;
32
+ getJsonByAccount(account: string): Promise<any[]>;
33
+ getJsonByBlockid(blockId: any): Promise<any[]>;
34
+ getExchangeBalances(account?: string): Promise<any[]>;
35
+ getExchangeOrders(filters?: {
36
+ account?: string;
37
+ base?: string;
38
+ quote?: string;
39
+ status?: string;
40
+ }): Promise<any[]>;
41
+ getExchangeTrades(filters?: {
42
+ account?: string;
43
+ base?: string;
44
+ quote?: string;
45
+ }): Promise<any[]>;
46
+ getExchangeOrderBookSnapshots(filters?: {
47
+ base?: string;
48
+ quote?: string;
49
+ limit?: number;
50
+ }): Promise<any[]>;
51
+ destroy(): Promise<boolean>;
52
+ find(table: string, query: Record<string, any>): Promise<any[]>;
53
+ findOne(table: string, query: Record<string, any>): Promise<any>;
54
+ insert(table: string, data: any): Promise<boolean>;
55
+ replace(table: string, queryObject: Record<string, any>, data: any): Promise<any>;
56
+ query(sql: string, params?: any[]): Promise<any[]>;
57
+ }