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
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLaunchpadContract = createLaunchpadContract;
4
+ const zod_1 = require("zod");
5
+ const contract_1 = require("./contract");
6
+ const helpers_1 = require("./helpers");
7
+ const DEFAULT_NAME = 'launchpad';
8
+ function createLaunchpadContract(options = {}) {
9
+ const name = options.name || DEFAULT_NAME;
10
+ const state = (0, helpers_1.createContractState)();
11
+ const createSaleSchema = zod_1.z.object({
12
+ saleId: helpers_1.identifierSchema,
13
+ title: zod_1.z.string().min(3).max(140),
14
+ tokenSymbol: zod_1.z.string().min(1).max(20),
15
+ purchaseAsset: helpers_1.assetSchema,
16
+ unitPrice: helpers_1.amountSchema,
17
+ totalUnits: zod_1.z.number().int().min(1).max(100000000),
18
+ closesAt: zod_1.z.string(),
19
+ minUnitsPerBuyer: zod_1.z.number().int().min(1).max(100000000).optional(),
20
+ maxUnitsPerBuyer: zod_1.z.number().int().min(1).max(100000000).optional(),
21
+ metadata: zod_1.z.record(zod_1.z.any()).optional()
22
+ });
23
+ const saleIdSchema = zod_1.z.object({
24
+ saleId: helpers_1.identifierSchema
25
+ });
26
+ const initialize = async () => {
27
+ await (0, helpers_1.initializeTables)(state.adapter, [
28
+ `
29
+ CREATE TABLE IF NOT EXISTS launchpad_sales (
30
+ sale_id TEXT PRIMARY KEY,
31
+ creator TEXT NOT NULL,
32
+ title TEXT NOT NULL,
33
+ token_symbol TEXT NOT NULL,
34
+ purchase_asset TEXT NOT NULL,
35
+ unit_price TEXT NOT NULL,
36
+ total_units INTEGER NOT NULL,
37
+ units_sold INTEGER NOT NULL,
38
+ closes_at DATETIME NOT NULL,
39
+ min_units_per_buyer INTEGER,
40
+ max_units_per_buyer INTEGER,
41
+ status TEXT NOT NULL,
42
+ metadata TEXT,
43
+ created_at DATETIME NOT NULL,
44
+ finalized_at DATETIME
45
+ )
46
+ `,
47
+ `
48
+ CREATE TABLE IF NOT EXISTS launchpad_allocations (
49
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
50
+ sale_id TEXT NOT NULL,
51
+ buyer TEXT NOT NULL,
52
+ units INTEGER NOT NULL,
53
+ amount_paid TEXT NOT NULL,
54
+ asset TEXT NOT NULL,
55
+ claimed INTEGER NOT NULL,
56
+ created_at DATETIME NOT NULL,
57
+ updated_at DATETIME NOT NULL,
58
+ UNIQUE(sale_id, buyer)
59
+ )
60
+ `
61
+ ]);
62
+ };
63
+ const createSale = async (payload, ctx) => {
64
+ const creator = (0, helpers_1.requireSender)(ctx);
65
+ const existing = await state.adapter.query('SELECT sale_id FROM launchpad_sales WHERE sale_id = ?', [payload.saleId]);
66
+ if (existing.length > 0) {
67
+ throw new Error(`Sale ${payload.saleId} already exists`);
68
+ }
69
+ const closesAt = (0, helpers_1.parseDateValue)(payload.closesAt);
70
+ if (!closesAt || closesAt <= new Date()) {
71
+ throw new Error('Sale close time must be in the future');
72
+ }
73
+ if (payload.maxUnitsPerBuyer && payload.minUnitsPerBuyer && payload.maxUnitsPerBuyer < payload.minUnitsPerBuyer) {
74
+ throw new Error('Maximum units per buyer cannot be less than the minimum');
75
+ }
76
+ await state.adapter.query(`INSERT INTO launchpad_sales (
77
+ sale_id, creator, title, token_symbol, purchase_asset, unit_price, total_units, units_sold, closes_at,
78
+ min_units_per_buyer, max_units_per_buyer, status, metadata, created_at, finalized_at
79
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
80
+ payload.saleId,
81
+ creator,
82
+ payload.title,
83
+ payload.tokenSymbol,
84
+ payload.purchaseAsset,
85
+ payload.unitPrice,
86
+ payload.totalUnits,
87
+ 0,
88
+ closesAt,
89
+ payload.minUnitsPerBuyer || null,
90
+ payload.maxUnitsPerBuyer || null,
91
+ 'open',
92
+ JSON.stringify(payload.metadata || {}),
93
+ new Date(),
94
+ null
95
+ ]);
96
+ await (0, helpers_1.emitContractEvent)(state.adapter, name, 'createSale', payload, {
97
+ action: 'launchpad_sale_created',
98
+ data: {
99
+ saleId: payload.saleId,
100
+ creator
101
+ }
102
+ });
103
+ };
104
+ const contribute = async (payload, ctx) => {
105
+ const buyer = (0, helpers_1.requireSender)(ctx);
106
+ const payment = (0, helpers_1.getIncomingPayment)(ctx);
107
+ const rows = await state.adapter.query('SELECT * FROM launchpad_sales WHERE sale_id = ?', [payload.saleId]);
108
+ if (rows.length === 0) {
109
+ throw new Error(`Sale ${payload.saleId} does not exist`);
110
+ }
111
+ const sale = rows[0];
112
+ if (sale.status !== 'open') {
113
+ throw new Error('Sale is not open');
114
+ }
115
+ if (((0, helpers_1.parseDateValue)(sale.closes_at) || new Date()) <= new Date()) {
116
+ throw new Error('Sale has already closed');
117
+ }
118
+ (0, helpers_1.assertAssetMatches)(payment.asset, sale.purchase_asset);
119
+ const units = (0, helpers_1.toBigNumber)(payment.amount).dividedBy(sale.unit_price);
120
+ if (!units.isInteger()) {
121
+ throw new Error('Contribution amount must match a whole number of sale units');
122
+ }
123
+ const unitCount = units.toNumber();
124
+ if (sale.min_units_per_buyer && unitCount < Number(sale.min_units_per_buyer)) {
125
+ throw new Error('Contribution is below the minimum purchase size');
126
+ }
127
+ const existingRows = await state.adapter.query('SELECT * FROM launchpad_allocations WHERE sale_id = ? AND buyer = ?', [payload.saleId, buyer]);
128
+ const existingUnits = existingRows.length > 0 ? Number(existingRows[0].units) : 0;
129
+ const totalBuyerUnits = existingUnits + unitCount;
130
+ if (sale.max_units_per_buyer && totalBuyerUnits > Number(sale.max_units_per_buyer)) {
131
+ throw new Error('Contribution exceeds the per-buyer cap');
132
+ }
133
+ if (Number(sale.units_sold) + unitCount > Number(sale.total_units)) {
134
+ throw new Error('Contribution exceeds the remaining sale allocation');
135
+ }
136
+ const totalPaid = existingRows.length > 0
137
+ ? (0, helpers_1.toBigNumber)(existingRows[0].amount_paid).plus(payment.amount)
138
+ : (0, helpers_1.toBigNumber)(payment.amount);
139
+ await state.adapter.query(`INSERT INTO launchpad_allocations (sale_id, buyer, units, amount_paid, asset, claimed, created_at, updated_at)
140
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
141
+ ON CONFLICT(sale_id, buyer)
142
+ DO UPDATE SET units = excluded.units, amount_paid = excluded.amount_paid, asset = excluded.asset, updated_at = excluded.updated_at`, [payload.saleId, buyer, totalBuyerUnits, totalPaid.toFixed(), payment.asset, 0, new Date(), new Date()]);
143
+ await state.adapter.query('UPDATE launchpad_sales SET units_sold = ? WHERE sale_id = ?', [Number(sale.units_sold) + unitCount, payload.saleId]);
144
+ await (0, helpers_1.emitContractEvent)(state.adapter, name, 'contribute', payload, {
145
+ action: 'launchpad_contribution_received',
146
+ data: {
147
+ saleId: payload.saleId,
148
+ buyer,
149
+ units: unitCount,
150
+ totalBuyerUnits
151
+ }
152
+ });
153
+ };
154
+ const finalizeSale = async (payload, ctx) => {
155
+ const rows = await state.adapter.query('SELECT * FROM launchpad_sales WHERE sale_id = ?', [payload.saleId]);
156
+ if (rows.length === 0) {
157
+ throw new Error(`Sale ${payload.saleId} does not exist`);
158
+ }
159
+ const sale = rows[0];
160
+ if (sale.status === 'successful' || sale.status === 'closed') {
161
+ return;
162
+ }
163
+ if (ctx.trigger !== 'time') {
164
+ const sender = (0, helpers_1.requireSender)(ctx);
165
+ if (sender !== sale.creator) {
166
+ throw new Error('Only the sale creator can finalize the sale');
167
+ }
168
+ }
169
+ if (((0, helpers_1.parseDateValue)(sale.closes_at) || new Date()) > new Date() && Number(sale.units_sold) < Number(sale.total_units)) {
170
+ throw new Error('Sale cannot be finalized before it closes unless it sells out');
171
+ }
172
+ const status = Number(sale.units_sold) > 0 ? 'successful' : 'closed';
173
+ await state.adapter.query('UPDATE launchpad_sales SET status = ?, finalized_at = ? WHERE sale_id = ?', [status, new Date(), payload.saleId]);
174
+ await (0, helpers_1.emitContractEvent)(state.adapter, name, 'finalizeSale', payload, {
175
+ action: 'launchpad_sale_finalized',
176
+ data: {
177
+ saleId: payload.saleId,
178
+ status,
179
+ unitsSold: sale.units_sold
180
+ }
181
+ });
182
+ };
183
+ const claimAllocation = async (payload, ctx) => {
184
+ const buyer = (0, helpers_1.requireSender)(ctx);
185
+ const saleRows = await state.adapter.query('SELECT * FROM launchpad_sales WHERE sale_id = ?', [payload.saleId]);
186
+ const allocationRows = await state.adapter.query('SELECT * FROM launchpad_allocations WHERE sale_id = ? AND buyer = ?', [payload.saleId, buyer]);
187
+ if (saleRows.length === 0 || allocationRows.length === 0) {
188
+ throw new Error('Sale allocation does not exist');
189
+ }
190
+ const sale = saleRows[0];
191
+ const allocation = allocationRows[0];
192
+ if (sale.status !== 'successful') {
193
+ throw new Error('Sale is not ready for claims');
194
+ }
195
+ if (allocation.claimed) {
196
+ throw new Error('Allocation already claimed');
197
+ }
198
+ await state.adapter.query('UPDATE launchpad_allocations SET claimed = ?, updated_at = ? WHERE sale_id = ? AND buyer = ?', [1, new Date(), payload.saleId, buyer]);
199
+ await (0, helpers_1.emitContractEvent)(state.adapter, name, 'claimAllocation', payload, {
200
+ action: 'launchpad_allocation_claim_requested',
201
+ data: {
202
+ saleId: payload.saleId,
203
+ buyer,
204
+ tokenSymbol: sale.token_symbol,
205
+ units: allocation.units
206
+ }
207
+ });
208
+ };
209
+ return (0, contract_1.defineContract)({
210
+ name,
211
+ hooks: {
212
+ create: async ({ adapter }) => {
213
+ state.adapter = adapter;
214
+ await initialize();
215
+ }
216
+ },
217
+ actions: {
218
+ createSale: (0, contract_1.action)(createSale, { schema: createSaleSchema, trigger: 'custom_json' }),
219
+ contribute: (0, contract_1.action)(contribute, { schema: saleIdSchema, trigger: ['transfer', 'recurrent_transfer'] }),
220
+ finalizeSale: (0, contract_1.action)(finalizeSale, { schema: saleIdSchema, trigger: ['custom_json', 'time'] }),
221
+ claimAllocation: (0, contract_1.action)(claimAllocation, { schema: saleIdSchema, trigger: 'custom_json' })
222
+ }
223
+ });
224
+ }
225
+ //# sourceMappingURL=launchpad.contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchpad.contract.js","sourceRoot":"","sources":["../../src/contracts/launchpad.contract.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,6 @@ const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
8
  const seedrandom_1 = __importDefault(require("seedrandom"));
9
9
  const zod_1 = require("zod");
10
10
  const contract_1 = require("./contract");
11
- const utils_1 = require("../utils");
12
11
  const DEFAULT_NAME = 'hivelotto';
13
12
  const DEFAULT_ACCOUNT = 'beggars';
14
13
  const DEFAULT_FEE_ACCOUNT = 'beggars';
@@ -57,7 +56,7 @@ function createLottoContract(options = {}) {
57
56
  return null;
58
57
  };
59
58
  const getPreviousUserTicketsForCurrentDrawType = async (type, accountName) => {
60
- const lotto = await state.adapter.find(COLLECTION_LOTTERY, { status: 'active', type });
59
+ const lotto = (await state.adapter.find(COLLECTION_LOTTERY, { status: 'active', type })) || [];
61
60
  if (!lotto[0] || !lotto[0].entries) {
62
61
  return 0;
63
62
  }
@@ -71,7 +70,10 @@ function createLottoContract(options = {}) {
71
70
  const sender = ctx.sender;
72
71
  const amountRaw = ctx.transfer.rawAmount;
73
72
  const amountTrim = amountRaw.split(' ');
74
- const amountParsed = parseFloat(amountTrim[0]);
73
+ const amountParsed = new bignumber_js_1.default(amountTrim[0]);
74
+ if (amountParsed.isNaN() || !amountParsed.isFinite() || amountParsed.isNegative()) {
75
+ throw new Error('Invalid ticket amount');
76
+ }
75
77
  const amountCurrency = amountTrim[1].trim();
76
78
  const transaction = await state.streamer.getTransaction(ctx.block.number, ctx.transaction.id);
77
79
  const verify = await state.streamer.verifyTransfer(transaction, sender, account, amountRaw);
@@ -89,12 +91,16 @@ function createLottoContract(options = {}) {
89
91
  await state.streamer.transferHiveTokens(account, sender, amountTrim[0], amountTrim[1], '[Refund] You have exceeded the allowed number of entries');
90
92
  return;
91
93
  }
92
- if (amountParsed > cost) {
93
- const difference = new bignumber_js_1.default(amountParsed).minus(cost).toFixed(3);
94
- await state.streamer.transferHiveTokens(account, sender, difference, amountTrim[1], `[Refund] A ticket costs ${cost} ${tokenSymbol}. You sent ${amountRaw}. You were refunded ${difference} ${tokenSymbol}.`);
94
+ if (amountParsed.isLessThan(cost)) {
95
+ await state.streamer.transferHiveTokens(account, sender, amountTrim[0], amountTrim[1], `[Refund] A ticket costs ${cost} ${tokenSymbol}. You sent ${amountRaw}. Insufficient amount.`);
95
96
  return;
96
97
  }
97
- const lotto = await state.adapter.find(COLLECTION_LOTTERY, { status: 'active', type: payload.type });
98
+ if (amountParsed.isGreaterThan(cost)) {
99
+ const difference = amountParsed.minus(cost).toFixed(3);
100
+ await state.streamer.transferHiveTokens(account, sender, difference, amountTrim[1], `[Refund] A ticket costs ${cost} ${tokenSymbol}. You sent ${amountRaw}. You were refunded ${difference} ${tokenSymbol}.`);
101
+ // Continue to create the entry — user paid enough for a ticket
102
+ }
103
+ const lotto = (await state.adapter.find(COLLECTION_LOTTERY, { status: 'active', type: payload.type })) || [];
98
104
  if (lotto.length) {
99
105
  const draw = lotto[0];
100
106
  draw.entries.push({
@@ -115,21 +121,19 @@ function createLottoContract(options = {}) {
115
121
  };
116
122
  const getWinners = async (count, entries, ctx) => {
117
123
  const winners = [];
118
- utils_1.Utils.shuffle(entries);
119
- for (const entry of entries) {
120
- if (winners.length < count) {
121
- const winner = entries[rng(ctx.block.previousId + `${(0, seedrandom_1.default)().double()}`, ctx.block.id + `${(0, seedrandom_1.default)().double()}`, ctx.transaction.id + `${(0, seedrandom_1.default)().double()}`, (0, seedrandom_1.default)().double(), entries.length - 1)];
122
- winners.push(winner);
123
- await utils_1.Utils.sleep(300);
124
- }
125
- else {
126
- break;
124
+ const selectedIndices = new Set();
125
+ const maxEntries = Math.min(count, entries.length);
126
+ for (let attempt = 0; winners.length < maxEntries && attempt < maxEntries * 10; attempt++) {
127
+ const index = rng(ctx.block.previousId, ctx.block.id, ctx.transaction.id, attempt, entries.length) - 1; // rng returns 1-based, convert to 0-based
128
+ if (!selectedIndices.has(index)) {
129
+ selectedIndices.add(index);
130
+ winners.push(entries[index]);
127
131
  }
128
132
  }
129
133
  return winners;
130
134
  };
131
135
  const drawHourlyLottery = async (_payload, ctx) => {
132
- const lotto = await state.adapter.find(COLLECTION_LOTTERY, { status: 'active', type: 'hourly' });
136
+ const lotto = (await state.adapter.find(COLLECTION_LOTTERY, { status: 'active', type: 'hourly' })) || [];
133
137
  if (lotto.length) {
134
138
  const draw = lotto[0];
135
139
  const total = draw.entries.length;
@@ -138,20 +142,25 @@ function createLottoContract(options = {}) {
138
142
  arr.push(entrant.account);
139
143
  return arr;
140
144
  }, []);
141
- await state.streamer.transferHiveTokensMultiple(account, entrants, '10.000', tokenSymbol, '[Refund] The hourly lotto draw did not have enough contestants.');
145
+ // Mark draw as completed BEFORE refunding to prevent re-draws
146
+ await state.adapter.replace(COLLECTION_LOTTERY, { _id: draw._id }, { ...draw, status: 'completed' });
147
+ await state.streamer.transferHiveTokensMultiple(account, entrants, new bignumber_js_1.default(cost).toFixed(3), tokenSymbol, '[Refund] The hourly lotto draw did not have enough contestants.');
142
148
  return;
143
149
  }
144
150
  const balance = await getBalance();
145
- const winningsAmount = new bignumber_js_1.default(total).multipliedBy(cost).toNumber();
146
- const percentageFee = new bignumber_js_1.default(winningsAmount).dividedBy(100).multipliedBy(feePercentage);
147
- const payoutTotal = new bignumber_js_1.default(winningsAmount).minus(percentageFee);
148
- const amountPerWinner = new bignumber_js_1.default(payoutTotal).dividedBy(hourlyWinnersPick).toFixed(3);
151
+ const winningsAmount = new bignumber_js_1.default(total).multipliedBy(cost);
152
+ const percentageFee = winningsAmount.dividedBy(100).multipliedBy(feePercentage);
153
+ const payoutTotal = winningsAmount.minus(percentageFee);
154
+ const amountPerWinner = payoutTotal.dividedBy(hourlyWinnersPick).toFixed(3);
155
+ // Check full outgoing amount (winnings + fee) against balance
156
+ if (balance !== null && winningsAmount.toNumber() > balance) {
157
+ throw new Error('Balance is less than amount to pay out');
158
+ }
159
+ // Mark draw as completed BEFORE payouts to prevent re-draws
160
+ await state.adapter.replace(COLLECTION_LOTTERY, { _id: draw._id }, { ...draw, status: 'completed' });
149
161
  if (account !== feeAccount) {
150
162
  await state.streamer.transferHiveTokens(account, feeAccount, percentageFee.toFixed(3), tokenSymbol, 'percentage fee');
151
163
  }
152
- if (balance !== null && payoutTotal.toNumber() > balance) {
153
- throw new Error('Balance is less than amount to pay out');
154
- }
155
164
  const winners = await getWinners(hourlyWinnersPick, draw.entries, ctx);
156
165
  if (winners) {
157
166
  const winnerStrings = winners.reduce((arr, winner) => {
@@ -173,28 +182,35 @@ function createLottoContract(options = {}) {
173
182
  return;
174
183
  };
175
184
  const drawDailyLottery = async (_payload, ctx) => {
176
- const lotto = await state.adapter.find(COLLECTION_LOTTERY, { status: 'active', type: 'daily' });
185
+ const lotto = (await state.adapter.find(COLLECTION_LOTTERY, { status: 'active', type: 'daily' })) || [];
177
186
  if (lotto.length) {
178
187
  const draw = lotto[0];
179
188
  const total = draw.entries.length;
180
189
  if (total < minEntriesDaily) {
181
- for (const entrant of draw.entries) {
182
- await state.streamer.transferHiveTokens(account, entrant.account, '10.000', tokenSymbol, '[Refund] The daily lotto draw did not have enough contestants.');
183
- await utils_1.Utils.sleep(3000);
184
- }
190
+ // Mark draw as completed BEFORE refunding to prevent re-draws
191
+ await state.adapter.replace(COLLECTION_LOTTERY, { _id: draw._id }, { ...draw, status: 'completed' });
192
+ // Use transferHiveTokensMultiple for error isolation (one failure doesn't kill others)
193
+ const entrants = draw.entries.reduce((arr, entrant) => {
194
+ arr.push(entrant.account);
195
+ return arr;
196
+ }, []);
197
+ await state.streamer.transferHiveTokensMultiple(account, entrants, new bignumber_js_1.default(cost).toFixed(3), tokenSymbol, '[Refund] The daily lotto draw did not have enough contestants.');
185
198
  return;
186
199
  }
187
200
  const balance = await getBalance();
188
- const winningsAmount = new bignumber_js_1.default(total).multipliedBy(cost).toNumber();
189
- const percentageFee = new bignumber_js_1.default(winningsAmount).dividedBy(100).multipliedBy(feePercentage);
190
- const payoutTotal = new bignumber_js_1.default(winningsAmount).minus(percentageFee);
191
- const amountPerWinner = new bignumber_js_1.default(payoutTotal).dividedBy(dailyWinnersPick).toFixed(3);
201
+ const winningsAmount = new bignumber_js_1.default(total).multipliedBy(cost);
202
+ const percentageFee = winningsAmount.dividedBy(100).multipliedBy(feePercentage);
203
+ const payoutTotal = winningsAmount.minus(percentageFee);
204
+ const amountPerWinner = payoutTotal.dividedBy(dailyWinnersPick).toFixed(3);
205
+ // Check full outgoing amount (winnings + fee) against balance
206
+ if (balance !== null && winningsAmount.toNumber() > balance) {
207
+ throw new Error('Balance is less than amount to pay out');
208
+ }
209
+ // Mark draw as completed BEFORE payouts to prevent re-draws
210
+ await state.adapter.replace(COLLECTION_LOTTERY, { _id: draw._id }, { ...draw, status: 'completed' });
192
211
  if (account !== feeAccount) {
193
212
  await state.streamer.transferHiveTokens(account, feeAccount, percentageFee.toFixed(3), tokenSymbol, 'percentage fee');
194
213
  }
195
- if (balance !== null && payoutTotal.toNumber() > balance) {
196
- throw new Error('Balance is less than amount to pay out');
197
- }
198
214
  const winners = await getWinners(dailyWinnersPick, draw.entries, ctx);
199
215
  if (winners) {
200
216
  const winnerStrings = winners.reduce((arr, winner) => {
@@ -1 +1 @@
1
- {"version":3,"file":"lotto.contract.js","sourceRoot":"","sources":["../../src/contracts/lotto.contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lotto.contract.js","sourceRoot":"","sources":["../../src/contracts/lotto.contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export interface MultisigTreasuryContractOptions {
2
+ name?: string;
3
+ }
4
+ export declare function createMultisigTreasuryContract(options?: MultisigTreasuryContractOptions): import("..").ContractDefinition;