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.
Files changed (195) hide show
  1. package/DOCUMENTATION.md +66 -2
  2. package/README.md +95 -24
  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 +29 -0
  19. package/dist/config.js +77 -2
  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 +40 -0
  131. package/dist/index.js +72 -1
  132. package/dist/index.js.map +1 -1
  133. package/dist/metadata.d.ts +70 -0
  134. package/dist/metadata.js +470 -0
  135. package/dist/metadata.js.map +1 -0
  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 +24 -4
  152. package/dist/streamer.js +196 -69
  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/contracts/coinflip.contract.spec.ts +0 -94
  175. package/tests/contracts/dice.contract.spec.ts +0 -87
  176. package/tests/contracts/entrants.json +0 -729
  177. package/tests/contracts/exchange.contract.spec.ts +0 -84
  178. package/tests/contracts/lotto.contract.spec.ts +0 -59
  179. package/tests/contracts/nft.contract.spec.ts +0 -948
  180. package/tests/contracts/token.contract.spec.ts +0 -90
  181. package/tests/exchanges/coingecko.exchange.spec.ts +0 -169
  182. package/tests/exchanges/exchange.base.spec.ts +0 -246
  183. package/tests/helpers/mock-adapter.ts +0 -214
  184. package/tests/helpers/mock-fetch.ts +0 -165
  185. package/tests/hive-chain-features.spec.ts +0 -238
  186. package/tests/hive-rates.spec.ts +0 -443
  187. package/tests/integration/hive-rates.integration.spec.ts +0 -35
  188. package/tests/setup.ts +0 -30
  189. package/tests/streamer-actions.spec.ts +0 -274
  190. package/tests/streamer.spec.ts +0 -342
  191. package/tests/types/rates.spec.ts +0 -216
  192. package/tests/utils.spec.ts +0 -113
  193. package/tsconfig.build.json +0 -4
  194. package/tslint.json +0 -21
  195. package/wallaby.js +0 -26
@@ -0,0 +1,470 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HIVE_STREAM_METADATA = void 0;
4
+ exports.getHiveStreamMetadata = getHiveStreamMetadata;
5
+ const actions_1 = require("./actions");
6
+ const config_1 = require("./config");
7
+ function deepFreeze(value) {
8
+ if (value === null || typeof value !== 'object' || Object.isFrozen(value)) {
9
+ return value;
10
+ }
11
+ Object.freeze(value);
12
+ Object.getOwnPropertyNames(value).forEach((property) => {
13
+ const child = value[property];
14
+ if (child !== null && (typeof child === 'object' || typeof child === 'function')) {
15
+ deepFreeze(child);
16
+ }
17
+ });
18
+ return value;
19
+ }
20
+ const contractTriggers = [
21
+ 'custom_json',
22
+ 'transfer',
23
+ 'time',
24
+ 'escrow_transfer',
25
+ 'escrow_approve',
26
+ 'escrow_dispute',
27
+ 'escrow_release',
28
+ 'recurrent_transfer'
29
+ ];
30
+ exports.HIVE_STREAM_METADATA = deepFreeze({
31
+ schemaVersion: 1,
32
+ config: {
33
+ options: [
34
+ {
35
+ key: 'ACTIVE_KEY',
36
+ builderKey: 'activeKey',
37
+ type: 'string',
38
+ defaultValue: config_1.Config.ACTIVE_KEY ?? null,
39
+ description: 'Active private key used for active-authority write operations.',
40
+ envVar: 'ACTIVE_KEY'
41
+ },
42
+ {
43
+ key: 'POSTING_KEY',
44
+ builderKey: 'postingKey',
45
+ type: 'string',
46
+ defaultValue: config_1.Config.POSTING_KEY ?? null,
47
+ description: 'Posting private key used for posting-authority operations.',
48
+ envVar: 'POSTING_KEY'
49
+ },
50
+ {
51
+ key: 'USERNAME',
52
+ builderKey: 'username',
53
+ type: 'string',
54
+ defaultValue: config_1.Config.USERNAME,
55
+ description: 'Hive account name used for signing and authoring actions.',
56
+ envVar: 'USERNAME'
57
+ },
58
+ {
59
+ key: 'APP_NAME',
60
+ builderKey: 'appName',
61
+ type: 'string',
62
+ defaultValue: config_1.Config.APP_NAME,
63
+ description: 'Application identifier used in blockchain metadata.'
64
+ },
65
+ {
66
+ key: 'JSON_ID',
67
+ builderKey: 'jsonId',
68
+ type: 'string',
69
+ defaultValue: config_1.Config.JSON_ID,
70
+ description: 'Custom JSON id used for contract payload dispatch.'
71
+ },
72
+ {
73
+ key: 'PAYLOAD_IDENTIFIER',
74
+ builderKey: 'payloadIdentifier',
75
+ type: 'string',
76
+ defaultValue: config_1.Config.PAYLOAD_IDENTIFIER,
77
+ description: 'Wrapper key where contract payloads are expected in operation JSON.'
78
+ },
79
+ {
80
+ key: 'HIVE_ENGINE_API',
81
+ builderKey: 'hiveEngineApi',
82
+ type: 'string',
83
+ defaultValue: config_1.Config.HIVE_ENGINE_API,
84
+ description: 'Hive Engine API endpoint used for sidechain operations.'
85
+ },
86
+ {
87
+ key: 'HIVE_ENGINE_ID',
88
+ builderKey: 'hiveEngineId',
89
+ type: 'string',
90
+ defaultValue: config_1.Config.HIVE_ENGINE_ID,
91
+ description: 'Custom JSON id treated as Hive Engine sidechain payloads.'
92
+ },
93
+ {
94
+ key: 'LAST_BLOCK_NUMBER',
95
+ builderKey: 'lastBlockNumber',
96
+ type: 'number',
97
+ defaultValue: config_1.Config.LAST_BLOCK_NUMBER,
98
+ description: 'Initial block number. 0 means start from latest block.'
99
+ },
100
+ {
101
+ key: 'BLOCK_CHECK_INTERVAL',
102
+ builderKey: 'blockCheckInterval',
103
+ type: 'number',
104
+ defaultValue: config_1.Config.BLOCK_CHECK_INTERVAL,
105
+ description: 'Polling interval (ms) for checking new blocks.'
106
+ },
107
+ {
108
+ key: 'BLOCKS_BEHIND_WARNING',
109
+ builderKey: 'blocksBehindWarning',
110
+ type: 'number',
111
+ defaultValue: config_1.Config.BLOCKS_BEHIND_WARNING,
112
+ description: 'Warn when this many blocks behind head block.'
113
+ },
114
+ {
115
+ key: 'RESUME_FROM_STATE',
116
+ builderKey: 'resumeFromState',
117
+ type: 'boolean',
118
+ defaultValue: config_1.Config.RESUME_FROM_STATE,
119
+ description: 'Resume from adapter-saved state when available.'
120
+ },
121
+ {
122
+ key: 'CATCH_UP_BATCH_SIZE',
123
+ builderKey: 'catchUpBatchSize',
124
+ type: 'number',
125
+ defaultValue: config_1.Config.CATCH_UP_BATCH_SIZE,
126
+ description: 'Number of blocks processed per catch-up cycle.'
127
+ },
128
+ {
129
+ key: 'CATCH_UP_DELAY_MS',
130
+ builderKey: 'catchUpDelayMs',
131
+ type: 'number',
132
+ defaultValue: config_1.Config.CATCH_UP_DELAY_MS,
133
+ description: 'Delay between catch-up batches in milliseconds.'
134
+ },
135
+ {
136
+ key: 'API_NODES',
137
+ builderKey: 'apiNodes',
138
+ type: 'string[]',
139
+ defaultValue: config_1.Config.API_NODES,
140
+ description: 'Ordered Hive API node list used for failover.'
141
+ },
142
+ {
143
+ key: 'API_ENABLED',
144
+ builderKey: 'apiEnabled',
145
+ type: 'boolean',
146
+ defaultValue: config_1.Config.API_ENABLED,
147
+ description: 'Enable the built-in HTTP API server when the streamer starts.'
148
+ },
149
+ {
150
+ key: 'API_PORT',
151
+ builderKey: 'apiPort',
152
+ type: 'number',
153
+ defaultValue: config_1.Config.API_PORT,
154
+ description: 'Port used by the built-in HTTP API server.'
155
+ },
156
+ {
157
+ key: 'DEBUG_MODE',
158
+ builderKey: 'debugMode',
159
+ type: 'boolean',
160
+ defaultValue: config_1.Config.DEBUG_MODE,
161
+ description: 'Enable verbose internal logging.'
162
+ }
163
+ ]
164
+ },
165
+ subscriptions: [
166
+ {
167
+ method: 'onTransfer',
168
+ signature: 'onTransfer(account: string, callback)',
169
+ callbackSignature: '(op, blockNumber, blockId, prevBlockId, trxId, blockTime) => void',
170
+ description: 'Fires when transfer recipient matches account.',
171
+ requiresStart: true,
172
+ accountFilterBuiltIn: true
173
+ },
174
+ {
175
+ method: 'onCustomJson',
176
+ signature: 'onCustomJson(callback)',
177
+ callbackSignature: '(op, { sender, isSignedWithActiveKey }, blockNumber, blockId, prevBlockId, trxId, blockTime) => void',
178
+ description: 'Fires for all custom_json operations.',
179
+ requiresStart: true
180
+ },
181
+ {
182
+ method: 'onCustomJsonId',
183
+ signature: 'onCustomJsonId(callback, id: string)',
184
+ callbackSignature: '(op, { sender, isSignedWithActiveKey }, blockNumber, blockId, prevBlockId, trxId, blockTime) => void',
185
+ description: 'Fires for custom_json operations matching id.',
186
+ requiresStart: true,
187
+ idFilterBuiltIn: true
188
+ },
189
+ {
190
+ method: 'onHiveEngine',
191
+ signature: 'onHiveEngine(callback)',
192
+ callbackSignature: '(contractName, contractAction, contractPayload, sender, op, blockNumber, blockId, prevBlockId, trxId, blockTime) => void',
193
+ description: 'Fires for Hive Engine custom_json payloads without sidechain errors.',
194
+ requiresStart: true
195
+ },
196
+ {
197
+ method: 'onPost',
198
+ signature: 'onPost(callback)',
199
+ callbackSignature: '(op, blockNumber, blockId, prevBlockId, trxId, blockTime) => void',
200
+ description: 'Fires for top-level posts.',
201
+ requiresStart: true
202
+ },
203
+ {
204
+ method: 'onComment',
205
+ signature: 'onComment(callback)',
206
+ callbackSignature: '(op, blockNumber, blockId, prevBlockId, trxId, blockTime) => void',
207
+ description: 'Fires for comments.',
208
+ requiresStart: true
209
+ },
210
+ {
211
+ method: 'onEscrowTransfer',
212
+ signature: 'onEscrowTransfer(callback)',
213
+ callbackSignature: '(op, blockNumber, blockId, prevBlockId, trxId, blockTime) => void',
214
+ description: 'Fires for escrow_transfer operations.',
215
+ requiresStart: true
216
+ },
217
+ {
218
+ method: 'onEscrowApprove',
219
+ signature: 'onEscrowApprove(callback)',
220
+ callbackSignature: '(op, blockNumber, blockId, prevBlockId, trxId, blockTime) => void',
221
+ description: 'Fires for escrow_approve operations.',
222
+ requiresStart: true
223
+ },
224
+ {
225
+ method: 'onEscrowDispute',
226
+ signature: 'onEscrowDispute(callback)',
227
+ callbackSignature: '(op, blockNumber, blockId, prevBlockId, trxId, blockTime) => void',
228
+ description: 'Fires for escrow_dispute operations.',
229
+ requiresStart: true
230
+ },
231
+ {
232
+ method: 'onEscrowRelease',
233
+ signature: 'onEscrowRelease(callback)',
234
+ callbackSignature: '(op, blockNumber, blockId, prevBlockId, trxId, blockTime) => void',
235
+ description: 'Fires for escrow_release operations.',
236
+ requiresStart: true
237
+ }
238
+ ],
239
+ writeOperations: [
240
+ {
241
+ method: 'transferHiveTokens',
242
+ signature: 'transferHiveTokens(from, to, amount, symbol, memo?)',
243
+ description: 'Transfer HIVE or HBD.',
244
+ requiresActiveKey: true,
245
+ requiresStart: false
246
+ },
247
+ {
248
+ method: 'transferHiveEngineTokens',
249
+ signature: 'transferHiveEngineTokens(from, to, symbol, quantity, memo?)',
250
+ description: 'Transfer Hive Engine tokens.',
251
+ requiresActiveKey: true,
252
+ requiresStart: false
253
+ },
254
+ {
255
+ method: 'transferHiveEngineTokensMultiple',
256
+ signature: 'transferHiveEngineTokensMultiple(from, accounts[], symbol, memo?, amount?)',
257
+ description: 'Bulk transfer Hive Engine tokens.',
258
+ requiresActiveKey: true,
259
+ requiresStart: false
260
+ },
261
+ {
262
+ method: 'issueHiveEngineTokens',
263
+ signature: 'issueHiveEngineTokens(from, to, symbol, quantity, memo?)',
264
+ description: 'Issue Hive Engine tokens.',
265
+ requiresActiveKey: true,
266
+ requiresStart: false
267
+ },
268
+ {
269
+ method: 'issueHiveEngineTokensMultiple',
270
+ signature: 'issueHiveEngineTokensMultiple(from, accounts[], symbol, memo?, amount?)',
271
+ description: 'Bulk issue Hive Engine tokens.',
272
+ requiresActiveKey: true,
273
+ requiresStart: false
274
+ },
275
+ {
276
+ method: 'upvote',
277
+ signature: 'upvote(votePercentage?, username, permlink)',
278
+ description: 'Upvote a post (uses configured USERNAME as voter).',
279
+ requiresActiveKey: true,
280
+ requiresStart: false
281
+ },
282
+ {
283
+ method: 'downvote',
284
+ signature: 'downvote(votePercentage?, username, permlink)',
285
+ description: 'Downvote a post (uses configured USERNAME as voter).',
286
+ requiresActiveKey: true,
287
+ requiresStart: false
288
+ },
289
+ {
290
+ method: 'escrowTransfer',
291
+ signature: 'escrowTransfer(options, signingKeys?)',
292
+ description: 'Create escrow transfer.',
293
+ requiresActiveKey: true,
294
+ requiresStart: false
295
+ },
296
+ {
297
+ method: 'escrowApprove',
298
+ signature: 'escrowApprove(options, signingKeys?)',
299
+ description: 'Approve escrow transfer.',
300
+ requiresActiveKey: true,
301
+ requiresStart: false
302
+ },
303
+ {
304
+ method: 'escrowDispute',
305
+ signature: 'escrowDispute(options, signingKeys?)',
306
+ description: 'Dispute escrow transfer.',
307
+ requiresActiveKey: true,
308
+ requiresStart: false
309
+ },
310
+ {
311
+ method: 'escrowRelease',
312
+ signature: 'escrowRelease(options, signingKeys?)',
313
+ description: 'Release escrow funds.',
314
+ requiresActiveKey: true,
315
+ requiresStart: false
316
+ },
317
+ {
318
+ method: 'recurrentTransfer',
319
+ signature: 'recurrentTransfer(options, signingKeys?)',
320
+ description: 'Create recurrent transfer.',
321
+ requiresActiveKey: true,
322
+ requiresStart: false
323
+ },
324
+ {
325
+ method: 'createProposal',
326
+ signature: 'createProposal(options, signingKeys?)',
327
+ description: 'Create a DHF proposal.',
328
+ requiresActiveKey: true,
329
+ requiresStart: false
330
+ },
331
+ {
332
+ method: 'updateProposalVotes',
333
+ signature: 'updateProposalVotes(options, signingKeys?)',
334
+ description: 'Vote for proposals.',
335
+ requiresActiveKey: true,
336
+ requiresStart: false
337
+ },
338
+ {
339
+ method: 'removeProposals',
340
+ signature: 'removeProposals(options, signingKeys?)',
341
+ description: 'Remove proposals.',
342
+ requiresActiveKey: true,
343
+ requiresStart: false
344
+ },
345
+ {
346
+ method: 'broadcastOperations',
347
+ signature: 'broadcastOperations(operations, signingKeys?)',
348
+ description: 'Broadcast raw operations payload.',
349
+ requiresActiveKey: true,
350
+ requiresStart: false
351
+ },
352
+ {
353
+ method: 'broadcastMultiSigOperations',
354
+ signature: 'broadcastMultiSigOperations(operations, signingKeys)',
355
+ description: 'Broadcast multisig operations payload.',
356
+ requiresActiveKey: true,
357
+ requiresStart: false
358
+ },
359
+ {
360
+ method: 'updateAccountAuthorities',
361
+ signature: 'updateAccountAuthorities(account, authorityUpdate, signingKeys?)',
362
+ description: 'Update account authorities and metadata.',
363
+ requiresActiveKey: true,
364
+ requiresStart: false
365
+ }
366
+ ],
367
+ contracts: {
368
+ payload: {
369
+ jsonIdDefault: config_1.Config.JSON_ID,
370
+ payloadIdentifierDefault: config_1.Config.PAYLOAD_IDENTIFIER,
371
+ shape: {
372
+ contract: 'string',
373
+ action: 'string',
374
+ payload: 'object',
375
+ meta: 'object'
376
+ },
377
+ supportedTriggers: contractTriggers,
378
+ supportedOperations: ['transfer', 'custom_json', 'escrow_transfer', 'recurrent_transfer']
379
+ },
380
+ helperExports: [
381
+ 'defineContract',
382
+ 'action',
383
+ 'createDiceContract',
384
+ 'createLottoContract',
385
+ 'createCoinflipContract',
386
+ 'createTokenContract',
387
+ 'createNFTContract',
388
+ 'createRpsContract',
389
+ 'createPollContract',
390
+ 'createTipJarContract',
391
+ 'createExchangeContract',
392
+ 'createAuctionHouseContract',
393
+ 'createSubscriptionContract',
394
+ 'createCrowdfundContract',
395
+ 'createBountyBoardContract',
396
+ 'createInvoiceContract',
397
+ 'createSavingsContract',
398
+ 'createBookingContract',
399
+ 'createGiftCardContract',
400
+ 'createGroupBuyContract',
401
+ 'createSweepstakesContract',
402
+ 'createDcaBotContract',
403
+ 'createMultisigTreasuryContract',
404
+ 'createRevenueSplitContract',
405
+ 'createPaywallContract',
406
+ 'createDomainRegistryContract',
407
+ 'createRentalContract',
408
+ 'createLaunchpadContract',
409
+ 'createPredictionMarketContract',
410
+ 'createQuestPassContract',
411
+ 'createCharityMatchContract',
412
+ 'createReferralContract',
413
+ 'createInsurancePoolContract',
414
+ 'createOracleBountyContract',
415
+ 'createGrantRoundsContract',
416
+ 'createPayrollContract',
417
+ 'createProposalTimelockContract',
418
+ 'createBundleMarketplaceContract',
419
+ 'createTicketingContract',
420
+ 'createFanClubContract'
421
+ ]
422
+ },
423
+ timeAction: {
424
+ validValues: actions_1.TimeAction.getValidTimeValues()
425
+ },
426
+ adapters: [
427
+ {
428
+ name: 'SQLite Adapter',
429
+ exportName: 'SqliteAdapter',
430
+ constructorSignature: 'new SqliteAdapter(dbPath?)',
431
+ description: 'Default local adapter. Auto-registered in Streamer constructor.'
432
+ },
433
+ {
434
+ name: 'MongoDB Adapter',
435
+ exportName: 'MongodbAdapter',
436
+ constructorSignature: 'new MongodbAdapter(uri, dbName)',
437
+ description: 'Mongo-backed adapter for state and event persistence.'
438
+ },
439
+ {
440
+ name: 'PostgreSQL Adapter',
441
+ exportName: 'PostgreSQLAdapter',
442
+ constructorSignature: 'new PostgreSQLAdapter(config)',
443
+ description: 'PostgreSQL adapter for state, event, and SQL-backed contract data.'
444
+ }
445
+ ],
446
+ providers: [
447
+ {
448
+ name: 'Hive Provider',
449
+ exportName: 'HiveProvider',
450
+ constructorSignature: 'new HiveProvider({ apiNodes })',
451
+ description: 'Default block provider wrapping @hiveio/dhive JSON-RPC calls.'
452
+ },
453
+ {
454
+ name: 'HAF Provider',
455
+ exportName: 'HafProvider',
456
+ constructorSignature: 'new HafProvider(config?)',
457
+ description: 'HAF/HafSQL PostgreSQL block provider for high-performance block fetching.'
458
+ },
459
+ {
460
+ name: 'HAF Client',
461
+ exportName: 'HafClient',
462
+ constructorSignature: 'new HafClient(config?)',
463
+ description: 'Standalone HAF query helper for direct analytics queries.'
464
+ }
465
+ ]
466
+ });
467
+ function getHiveStreamMetadata() {
468
+ return exports.HIVE_STREAM_METADATA;
469
+ }
470
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export interface BlockData {
2
+ block_id: string;
3
+ previous: string;
4
+ timestamp: string;
5
+ transactions: Array<{
6
+ operations: Array<[string, any]>;
7
+ [key: string]: any;
8
+ }>;
9
+ transaction_ids: string[];
10
+ [key: string]: any;
11
+ }
12
+ export interface DynamicGlobalProperties {
13
+ head_block_number: number;
14
+ time: string;
15
+ [key: string]: any;
16
+ }
17
+ export interface BlockProvider {
18
+ getDynamicGlobalProperties(): Promise<DynamicGlobalProperties>;
19
+ getBlock(blockNumber: number): Promise<BlockData | null>;
20
+ create?(): Promise<void>;
21
+ destroy?(): Promise<void>;
22
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=block-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-provider.js","sourceRoot":"","sources":["../../src/providers/block-provider.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ export interface HafClientConfig {
2
+ host?: string;
3
+ port?: number;
4
+ user?: string;
5
+ password?: string;
6
+ database?: string;
7
+ ssl?: boolean | object;
8
+ connectionString?: string;
9
+ statementTimeout?: string;
10
+ }
11
+ export interface TransferQuery {
12
+ accounts: string[];
13
+ fromDate?: string | Date;
14
+ toDate?: string | Date;
15
+ symbol?: string;
16
+ }
17
+ export declare class HafClient {
18
+ private client;
19
+ private config;
20
+ private connected;
21
+ constructor(config?: HafClientConfig);
22
+ connect(): Promise<void>;
23
+ disconnect(): Promise<void>;
24
+ query<T = any>(sql: string, params?: any[]): Promise<T[]>;
25
+ getTransfers(options: TransferQuery): Promise<any[]>;
26
+ getAccountBalances(accounts: string[]): Promise<any[]>;
27
+ getBlockAtTime(timestamp: string | Date): Promise<number | null>;
28
+ getBlockTimestamp(blockNumber: number): Promise<string | null>;
29
+ getProposalPayouts(proposalIds: number[]): Promise<any[]>;
30
+ }
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HafClient = void 0;
4
+ const pg_1 = require("pg");
5
+ const DEFAULT_CONFIG = {
6
+ host: 'hafsql-sql.mahdiyari.info',
7
+ port: 5432,
8
+ user: 'hafsql_public',
9
+ password: 'hafsql_public',
10
+ database: 'haf_block_log',
11
+ statementTimeout: '90s',
12
+ };
13
+ class HafClient {
14
+ client;
15
+ config;
16
+ connected = false;
17
+ constructor(config = {}) {
18
+ this.config = { ...DEFAULT_CONFIG, ...config };
19
+ const pgOptions = {};
20
+ if (this.config.connectionString) {
21
+ pgOptions.connectionString = this.config.connectionString;
22
+ }
23
+ else {
24
+ pgOptions.host = this.config.host;
25
+ pgOptions.port = this.config.port;
26
+ pgOptions.user = this.config.user;
27
+ pgOptions.password = this.config.password;
28
+ pgOptions.database = this.config.database;
29
+ }
30
+ if (this.config.ssl !== undefined) {
31
+ pgOptions.ssl = this.config.ssl;
32
+ }
33
+ this.client = new pg_1.Client(pgOptions);
34
+ }
35
+ async connect() {
36
+ await this.client.connect();
37
+ this.connected = true;
38
+ await this.client.query(`SET statement_timeout = '${this.config.statementTimeout}'`);
39
+ }
40
+ async disconnect() {
41
+ if (this.connected) {
42
+ await this.client.end();
43
+ this.connected = false;
44
+ }
45
+ }
46
+ async query(sql, params) {
47
+ const result = await this.client.query(sql, params);
48
+ return result.rows;
49
+ }
50
+ async getTransfers(options) {
51
+ const conditions = [];
52
+ const params = [];
53
+ let paramIndex = 1;
54
+ if (options.accounts.length > 0) {
55
+ conditions.push(`(t.from_account = ANY($${paramIndex}) OR t.to_account = ANY($${paramIndex}))`);
56
+ params.push(options.accounts);
57
+ paramIndex++;
58
+ }
59
+ if (options.fromDate) {
60
+ conditions.push(`t.id >= (SELECT MIN(ov.id) FROM hafbe_bal.operations_view ov JOIN hafbe_bal.blocks_view bv ON ov.block_num = bv.num WHERE bv.created_at >= $${paramIndex})`);
61
+ params.push(options.fromDate instanceof Date ? options.fromDate.toISOString() : options.fromDate);
62
+ paramIndex++;
63
+ }
64
+ if (options.toDate) {
65
+ conditions.push(`t.id <= (SELECT MAX(ov.id) FROM hafbe_bal.operations_view ov JOIN hafbe_bal.blocks_view bv ON ov.block_num = bv.num WHERE bv.created_at <= $${paramIndex})`);
66
+ params.push(options.toDate instanceof Date ? options.toDate.toISOString() : options.toDate);
67
+ paramIndex++;
68
+ }
69
+ if (options.symbol) {
70
+ conditions.push(`t.symbol = $${paramIndex}`);
71
+ params.push(options.symbol);
72
+ paramIndex++;
73
+ }
74
+ const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
75
+ const sql = `
76
+ SELECT t.from_account AS "from", t.to_account AS "to", t.amount, t.symbol, t.memo
77
+ FROM hafsql.operation_transfer_table t
78
+ ${whereClause}
79
+ ORDER BY t.id DESC
80
+ `;
81
+ return this.query(sql, params);
82
+ }
83
+ async getAccountBalances(accounts) {
84
+ const sql = `
85
+ SELECT acc.name AS account, cab.nai, cab.balance
86
+ FROM hafbe_bal.current_account_balances cab
87
+ JOIN hafsql.accounts acc ON acc.id = cab.account
88
+ WHERE acc.name = ANY($1)
89
+ ORDER BY acc.name, cab.nai
90
+ `;
91
+ return this.query(sql, [accounts]);
92
+ }
93
+ async getBlockAtTime(timestamp) {
94
+ const ts = timestamp instanceof Date ? timestamp.toISOString() : timestamp;
95
+ const result = await this.query(`SELECT num
96
+ FROM hafbe_bal.blocks_view
97
+ WHERE created_at <= $1
98
+ ORDER BY num DESC
99
+ LIMIT 1`, [ts]);
100
+ return result.length > 0 ? result[0].num : null;
101
+ }
102
+ async getBlockTimestamp(blockNumber) {
103
+ const result = await this.query(`SELECT created_at
104
+ FROM hafbe_bal.blocks_view
105
+ WHERE num = $1`, [blockNumber]);
106
+ return result.length > 0 ? String(result[0].created_at) : null;
107
+ }
108
+ async getProposalPayouts(proposalIds) {
109
+ const sql = `
110
+ SELECT pp.proposal_id, pp.receiver, pp.payer, pp.payment, pp.symbol
111
+ FROM hafsql.operation_proposal_pay_table pp
112
+ WHERE pp.proposal_id = ANY($1)
113
+ ORDER BY pp.id DESC
114
+ `;
115
+ return this.query(sql, [proposalIds]);
116
+ }
117
+ }
118
+ exports.HafClient = HafClient;
119
+ //# sourceMappingURL=haf-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"haf-client.js","sourceRoot":"","sources":["../../src/providers/haf-client.ts"],"names":[],"mappings":"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"}