hive-stream 3.0.4 → 3.1.0

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 (52) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/DOCUMENTATION.md +775 -2
  3. package/README.md +34 -1
  4. package/dist/adapters/mongodb.adapter.js +21 -30
  5. package/dist/adapters/mongodb.adapter.js.map +1 -1
  6. package/dist/adapters/postgresql.adapter.js +16 -16
  7. package/dist/adapters/postgresql.adapter.js.map +1 -1
  8. package/dist/adapters/sqlite.adapter.js +17 -17
  9. package/dist/adapters/sqlite.adapter.js.map +1 -1
  10. package/dist/api.js +2 -0
  11. package/dist/api.js.map +1 -1
  12. package/dist/builders.d.ts +269 -1
  13. package/dist/builders.js +883 -1
  14. package/dist/builders.js.map +1 -1
  15. package/dist/cli/index.d.ts +2 -0
  16. package/dist/cli/index.js +209 -0
  17. package/dist/cli/index.js.map +1 -0
  18. package/dist/cli/prompts.d.ts +17 -0
  19. package/dist/cli/prompts.js +109 -0
  20. package/dist/cli/prompts.js.map +1 -0
  21. package/dist/cli/scaffold.d.ts +21 -0
  22. package/dist/cli/scaffold.js +281 -0
  23. package/dist/cli/scaffold.js.map +1 -0
  24. package/dist/cli/templates.d.ts +28 -0
  25. package/dist/cli/templates.js +329 -0
  26. package/dist/cli/templates.js.map +1 -0
  27. package/dist/config.js +2 -2
  28. package/dist/config.js.map +1 -1
  29. package/dist/contracts/checkpoint.contract.d.ts +6 -0
  30. package/dist/contracts/checkpoint.contract.js +196 -0
  31. package/dist/contracts/checkpoint.contract.js.map +1 -0
  32. package/dist/contracts/nft.contract.d.ts +2 -0
  33. package/dist/contracts/nft.contract.js +174 -0
  34. package/dist/contracts/nft.contract.js.map +1 -1
  35. package/dist/contracts/roulette.contract.d.ts +9 -0
  36. package/dist/contracts/roulette.contract.js +365 -0
  37. package/dist/contracts/roulette.contract.js.map +1 -0
  38. package/dist/contracts/ticketing.contract.js +158 -1
  39. package/dist/contracts/ticketing.contract.js.map +1 -1
  40. package/dist/index.d.ts +2 -0
  41. package/dist/index.js +5 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/metadata.js +1 -0
  44. package/dist/metadata.js.map +1 -1
  45. package/dist/streamer.d.ts +105 -10
  46. package/dist/streamer.js +539 -61
  47. package/dist/streamer.js.map +1 -1
  48. package/dist/types/hive-stream.d.ts +306 -0
  49. package/dist/utils.d.ts +442 -0
  50. package/dist/utils.js +1423 -0
  51. package/dist/utils.js.map +1 -1
  52. package/package.json +7 -5
@@ -0,0 +1,365 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createRouletteContract = createRouletteContract;
7
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ const seedrandom_1 = __importDefault(require("seedrandom"));
9
+ const uuid_1 = require("uuid");
10
+ const zod_1 = require("zod");
11
+ const contract_1 = require("./contract");
12
+ const helpers_1 = require("./helpers");
13
+ const DEFAULT_NAME = 'roulette';
14
+ const DEFAULT_ACCOUNT = 'beggars';
15
+ const DEFAULT_TOKEN_SYMBOL = 'HIVE';
16
+ const DEFAULT_MIN_AMOUNT = 0.001;
17
+ const DEFAULT_MAX_AMOUNT = 20;
18
+ const BET_TYPES = ['straight', 'color', 'parity', 'dozen', 'column', 'range'];
19
+ const RED_NUMBERS = new Set([1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 36]);
20
+ function rng(previousBlockId, blockId, transactionId, serverSeed, clientSeed = '') {
21
+ if (!previousBlockId || !blockId || !transactionId || !serverSeed) {
22
+ throw new Error('Invalid RNG parameters');
23
+ }
24
+ const random = (0, seedrandom_1.default)(`${previousBlockId}${blockId}${transactionId}${clientSeed}${serverSeed}`).double();
25
+ const winningNumber = Math.floor(random * 37);
26
+ if (winningNumber < 0 || winningNumber > 36) {
27
+ throw new Error('RNG generated invalid roulette result');
28
+ }
29
+ return winningNumber;
30
+ }
31
+ function parseNumericValue(value) {
32
+ if (typeof value === 'number' && Number.isInteger(value)) {
33
+ return value;
34
+ }
35
+ if (typeof value === 'string' && /^\d+$/.test(value)) {
36
+ return Number.parseInt(value, 10);
37
+ }
38
+ return null;
39
+ }
40
+ function normalizeSpinPayload(payload) {
41
+ switch (payload.betType) {
42
+ case 'straight': {
43
+ const parsed = parseNumericValue(payload.value);
44
+ if (parsed === null || parsed < 0 || parsed > 36) {
45
+ throw new Error('Straight bets require a number between 0 and 36');
46
+ }
47
+ return { betType: 'straight', value: parsed, seed: payload.seed };
48
+ }
49
+ case 'color': {
50
+ if (payload.value !== 'red' && payload.value !== 'black') {
51
+ throw new Error('Color bets must be red or black');
52
+ }
53
+ return { betType: 'color', value: payload.value, seed: payload.seed };
54
+ }
55
+ case 'parity': {
56
+ if (payload.value !== 'odd' && payload.value !== 'even') {
57
+ throw new Error('Parity bets must be odd or even');
58
+ }
59
+ return { betType: 'parity', value: payload.value, seed: payload.seed };
60
+ }
61
+ case 'dozen': {
62
+ const parsed = parseNumericValue(payload.value);
63
+ if (parsed !== 1 && parsed !== 2 && parsed !== 3) {
64
+ throw new Error('Dozen bets must be 1, 2, or 3');
65
+ }
66
+ return { betType: 'dozen', value: parsed, seed: payload.seed };
67
+ }
68
+ case 'column': {
69
+ const parsed = parseNumericValue(payload.value);
70
+ if (parsed !== 1 && parsed !== 2 && parsed !== 3) {
71
+ throw new Error('Column bets must be 1, 2, or 3');
72
+ }
73
+ return { betType: 'column', value: parsed, seed: payload.seed };
74
+ }
75
+ case 'range': {
76
+ if (payload.value !== 'low' && payload.value !== 'high') {
77
+ throw new Error('Range bets must be low or high');
78
+ }
79
+ return { betType: 'range', value: payload.value, seed: payload.seed };
80
+ }
81
+ }
82
+ }
83
+ function getPayoutMultiplier(payload) {
84
+ switch (payload.betType) {
85
+ case 'straight':
86
+ return new bignumber_js_1.default(36);
87
+ case 'dozen':
88
+ case 'column':
89
+ return new bignumber_js_1.default(3);
90
+ case 'color':
91
+ case 'parity':
92
+ case 'range':
93
+ return new bignumber_js_1.default(2);
94
+ }
95
+ }
96
+ function getRouletteColor(number) {
97
+ if (number === 0) {
98
+ return null;
99
+ }
100
+ return RED_NUMBERS.has(number) ? 'red' : 'black';
101
+ }
102
+ function isWinningBet(payload, winningNumber) {
103
+ switch (payload.betType) {
104
+ case 'straight':
105
+ return payload.value === winningNumber;
106
+ case 'color':
107
+ return winningNumber !== 0 && getRouletteColor(winningNumber) === payload.value;
108
+ case 'parity':
109
+ if (winningNumber === 0) {
110
+ return false;
111
+ }
112
+ return (winningNumber % 2 === 0 ? 'even' : 'odd') === payload.value;
113
+ case 'dozen':
114
+ if (winningNumber === 0) {
115
+ return false;
116
+ }
117
+ return Math.ceil(winningNumber / 12) === payload.value;
118
+ case 'column':
119
+ if (winningNumber === 0) {
120
+ return false;
121
+ }
122
+ return ((winningNumber - 1) % 3) + 1 === payload.value;
123
+ case 'range':
124
+ if (winningNumber === 0) {
125
+ return false;
126
+ }
127
+ return payload.value === 'low' ? winningNumber >= 1 && winningNumber <= 18 : winningNumber >= 19 && winningNumber <= 36;
128
+ }
129
+ }
130
+ function describeBet(payload) {
131
+ return `${payload.betType}:${payload.value}`;
132
+ }
133
+ function getSpinContext(number) {
134
+ const color = getRouletteColor(number) ?? 'green';
135
+ const parity = number === 0 ? 'none' : number % 2 === 0 ? 'even' : 'odd';
136
+ const range = number === 0 ? 'none' : number <= 18 ? 'low' : 'high';
137
+ return { color, parity, range };
138
+ }
139
+ const spinSchema = zod_1.z.object({
140
+ betType: zod_1.z.enum(BET_TYPES),
141
+ value: zod_1.z.union([zod_1.z.string(), zod_1.z.number().int()]),
142
+ seed: zod_1.z.string().optional()
143
+ }).superRefine((payload, ctx) => {
144
+ try {
145
+ normalizeSpinPayload(payload);
146
+ }
147
+ catch (error) {
148
+ ctx.addIssue({
149
+ code: zod_1.z.ZodIssueCode.custom,
150
+ message: error instanceof Error ? error.message : 'Invalid roulette payload'
151
+ });
152
+ }
153
+ });
154
+ function createRouletteContract(options = {}) {
155
+ const name = options.name || DEFAULT_NAME;
156
+ const account = options.account || DEFAULT_ACCOUNT;
157
+ const tokenSymbol = options.tokenSymbol || DEFAULT_TOKEN_SYMBOL;
158
+ const validCurrencies = options.validCurrencies || [tokenSymbol];
159
+ const minAmount = options.minAmount ?? DEFAULT_MIN_AMOUNT;
160
+ const maxAmount = options.maxAmount ?? DEFAULT_MAX_AMOUNT;
161
+ const state = {
162
+ streamer: null,
163
+ adapter: null,
164
+ balanceCache: null,
165
+ balanceCacheTimeout: 30000,
166
+ betQueue: [],
167
+ processingQueue: false,
168
+ pendingPayouts: new bignumber_js_1.default(0)
169
+ };
170
+ const invalidateBalanceCache = () => {
171
+ state.balanceCache = null;
172
+ };
173
+ const getBalance = async () => {
174
+ const now = Date.now();
175
+ if (state.balanceCache && (now - state.balanceCache.timestamp) < state.balanceCacheTimeout) {
176
+ return state.balanceCache.balance;
177
+ }
178
+ try {
179
+ const accountInfo = await state.streamer['client'].database.getAccounts([account]);
180
+ if (accountInfo?.[0]) {
181
+ const amount = (0, helpers_1.parseBlockchainAmount)(accountInfo[0].balance).value;
182
+ state.balanceCache = {
183
+ balance: amount,
184
+ timestamp: now
185
+ };
186
+ return amount;
187
+ }
188
+ }
189
+ catch (error) {
190
+ console.error('[RouletteContract] Error fetching balance:', error);
191
+ if (state.balanceCache) {
192
+ return state.balanceCache.balance;
193
+ }
194
+ }
195
+ return new bignumber_js_1.default(0);
196
+ };
197
+ const processQueue = async () => {
198
+ if (state.processingQueue || state.betQueue.length === 0) {
199
+ return;
200
+ }
201
+ state.processingQueue = true;
202
+ while (state.betQueue.length > 0) {
203
+ const nextBet = state.betQueue.shift();
204
+ if (nextBet) {
205
+ try {
206
+ await nextBet();
207
+ }
208
+ catch (error) {
209
+ console.error('[RouletteContract] Queue processing error:', error);
210
+ }
211
+ }
212
+ }
213
+ state.processingQueue = false;
214
+ };
215
+ const processSpin = async (payload, ctx) => {
216
+ if (!ctx.transfer) {
217
+ throw new Error('Transfer context required for spin');
218
+ }
219
+ const sender = ctx.sender;
220
+ const amountRaw = ctx.transfer.rawAmount;
221
+ try {
222
+ const bet = normalizeSpinPayload(payload);
223
+ let parsedAmount;
224
+ try {
225
+ parsedAmount = (0, helpers_1.parseBlockchainAmount)(amountRaw);
226
+ }
227
+ catch (error) {
228
+ throw new Error('Invalid amount format');
229
+ }
230
+ const amountParsed = parsedAmount.value;
231
+ if (amountParsed.isNegative()) {
232
+ throw new Error('Invalid amount value');
233
+ }
234
+ const transaction = await state.streamer.getTransaction(ctx.block.number, ctx.transaction.id);
235
+ const verify = await state.streamer.verifyTransfer(transaction, sender, account, amountRaw);
236
+ const amountCurrency = parsedAmount.asset;
237
+ if (!verify) {
238
+ return;
239
+ }
240
+ if (!validCurrencies.includes(amountCurrency)) {
241
+ await state.streamer.transferHiveTokens(account, sender, parsedAmount.amount, parsedAmount.asset, '[Refund] You sent an invalid currency.');
242
+ invalidateBalanceCache();
243
+ return;
244
+ }
245
+ if (amountParsed.isLessThan(minAmount)) {
246
+ await state.streamer.transferHiveTokens(account, sender, parsedAmount.amount, parsedAmount.asset, `[Refund] Bet amount too small. Minimum: ${minAmount} ${amountCurrency}.`);
247
+ invalidateBalanceCache();
248
+ return;
249
+ }
250
+ if (amountParsed.isGreaterThan(maxAmount)) {
251
+ await state.streamer.transferHiveTokens(account, sender, parsedAmount.amount, parsedAmount.asset, `[Refund] You sent too much. Maximum: ${maxAmount} ${amountCurrency}.`);
252
+ invalidateBalanceCache();
253
+ return;
254
+ }
255
+ const potentialPayout = amountParsed.multipliedBy(getPayoutMultiplier(bet));
256
+ const balance = await getBalance();
257
+ const availableBalance = balance.minus(state.pendingPayouts);
258
+ if (potentialPayout.isGreaterThan(availableBalance)) {
259
+ await state.streamer.transferHiveTokens(account, sender, parsedAmount.amount, parsedAmount.asset, '[Refund] The server cannot afford this bet payout.');
260
+ invalidateBalanceCache();
261
+ return;
262
+ }
263
+ state.pendingPayouts = state.pendingPayouts.plus(potentialPayout);
264
+ let payoutIncremented = true;
265
+ try {
266
+ const serverSeed = (0, uuid_1.v4)();
267
+ if (!serverSeed || typeof serverSeed !== 'string') {
268
+ throw new Error('Failed to generate server seed');
269
+ }
270
+ const winningNumber = rng(ctx.block.previousId, ctx.block.id, ctx.transaction.id, serverSeed, bet.seed ?? '');
271
+ const spinContext = getSpinContext(winningNumber);
272
+ const won = isWinningBet(bet, winningNumber);
273
+ if (state.adapter?.addEvent) {
274
+ await state.adapter.addEvent(new Date(), name, 'spin', payload, {
275
+ action: 'spin_result',
276
+ data: {
277
+ player: sender,
278
+ betType: bet.betType,
279
+ betValue: String(bet.value),
280
+ winningNumber,
281
+ winningColor: spinContext.color,
282
+ winningParity: spinContext.parity,
283
+ winningRange: spinContext.range,
284
+ result: won ? 'win' : 'lose',
285
+ serverSeed,
286
+ blockId: ctx.block.id,
287
+ transactionId: ctx.transaction.id
288
+ }
289
+ });
290
+ }
291
+ const betDescription = describeBet(bet);
292
+ if (won) {
293
+ await state.streamer.transferHiveTokens(account, sender, (0, helpers_1.formatBlockchainAmount)(potentialPayout), parsedAmount.asset, `[Winner] | Bet: ${betDescription} | Number: ${winningNumber} | Color: ${spinContext.color} | Seed: ${serverSeed}`);
294
+ invalidateBalanceCache();
295
+ return;
296
+ }
297
+ await state.streamer.transferHiveTokens(account, sender, '0.001', parsedAmount.asset, `[Lost] | Bet: ${betDescription} | Number: ${winningNumber} | Color: ${spinContext.color} | Seed: ${serverSeed}`);
298
+ invalidateBalanceCache();
299
+ }
300
+ finally {
301
+ if (payoutIncremented) {
302
+ state.pendingPayouts = state.pendingPayouts.minus(potentialPayout);
303
+ payoutIncremented = false;
304
+ }
305
+ }
306
+ }
307
+ catch (e) {
308
+ const error = e instanceof Error ? e : new Error(String(e));
309
+ console.error('[RouletteContract] Spin processing error:', {
310
+ sender,
311
+ amount: amountRaw,
312
+ payload,
313
+ message: error.message
314
+ });
315
+ try {
316
+ if (amountRaw && typeof amountRaw === 'string' && amountRaw.includes(' ')) {
317
+ const parsedAmount = (0, helpers_1.parseBlockchainAmount)(amountRaw);
318
+ const amountBN = parsedAmount.value;
319
+ if (!amountBN.isNaN() && amountBN.isFinite() && !amountBN.isNegative()) {
320
+ await state.streamer.transferHiveTokens(account, sender, parsedAmount.amount, parsedAmount.asset, '[Refund] Processing error occurred.');
321
+ invalidateBalanceCache();
322
+ }
323
+ }
324
+ }
325
+ catch (refundError) {
326
+ console.error('[RouletteContract] Failed to refund after error:', refundError);
327
+ }
328
+ throw error;
329
+ }
330
+ };
331
+ const spin = async (payload, ctx) => {
332
+ return new Promise((resolve, reject) => {
333
+ state.betQueue.push(async () => {
334
+ try {
335
+ await processSpin(payload, ctx);
336
+ resolve();
337
+ }
338
+ catch (error) {
339
+ reject(error);
340
+ }
341
+ });
342
+ processQueue();
343
+ });
344
+ };
345
+ return (0, contract_1.defineContract)({
346
+ name,
347
+ hooks: {
348
+ create: ({ streamer, adapter }) => {
349
+ state.streamer = streamer;
350
+ state.adapter = adapter;
351
+ },
352
+ destroy: () => {
353
+ state.betQueue = [];
354
+ state.processingQueue = false;
355
+ }
356
+ },
357
+ actions: {
358
+ spin: (0, contract_1.action)(spin, {
359
+ schema: spinSchema,
360
+ trigger: 'transfer'
361
+ })
362
+ }
363
+ });
364
+ }
365
+ //# sourceMappingURL=roulette.contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roulette.contract.js","sourceRoot":"","sources":["../../src/contracts/roulette.contract.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,19 @@ function createTicketingContract(options = {}) {
26
26
  ticketId: helpers_1.identifierSchema,
27
27
  note: zod_1.z.string().max(280).optional()
28
28
  });
29
+ const transferTicketSchema = zod_1.z.object({
30
+ ticketId: helpers_1.identifierSchema,
31
+ to: zod_1.z.string().min(3).max(16).regex(/^[a-z][a-z0-9.-]+$/, 'Invalid account name'),
32
+ note: zod_1.z.string().max(280).optional()
33
+ });
34
+ const listTicketSchema = zod_1.z.object({
35
+ ticketId: helpers_1.identifierSchema,
36
+ price: helpers_1.amountSchema,
37
+ asset: helpers_1.assetSchema.optional()
38
+ });
39
+ const buyTicketSchema = zod_1.z.object({
40
+ ticketId: helpers_1.identifierSchema
41
+ });
29
42
  const initialize = async () => {
30
43
  await (0, helpers_1.initializeTables)(state.adapter, [
31
44
  `
@@ -54,6 +67,18 @@ function createTicketingContract(options = {}) {
54
67
  created_at DATETIME NOT NULL,
55
68
  updated_at DATETIME NOT NULL
56
69
  )
70
+ `,
71
+ `
72
+ CREATE TABLE IF NOT EXISTS ticket_listings (
73
+ ticket_id TEXT PRIMARY KEY,
74
+ event_id TEXT NOT NULL,
75
+ seller TEXT NOT NULL,
76
+ price TEXT NOT NULL,
77
+ asset TEXT NOT NULL,
78
+ active INTEGER NOT NULL,
79
+ listed_at DATETIME NOT NULL,
80
+ updated_at DATETIME NOT NULL
81
+ )
57
82
  `
58
83
  ]);
59
84
  };
@@ -166,6 +191,134 @@ function createTicketingContract(options = {}) {
166
191
  }
167
192
  });
168
193
  };
194
+ const deactivateListing = async (ticketId) => {
195
+ await state.adapter.query('UPDATE ticket_listings SET active = 0, updated_at = ? WHERE ticket_id = ? AND active = 1', [new Date(), ticketId]);
196
+ };
197
+ const getValidTicket = async (ticketId) => {
198
+ const ticketRows = await state.adapter.query('SELECT * FROM tickets WHERE ticket_id = ?', [ticketId]);
199
+ if (ticketRows.length === 0) {
200
+ throw new Error(`Ticket ${ticketId} does not exist`);
201
+ }
202
+ const ticket = ticketRows[0];
203
+ if (ticket.status !== 'valid') {
204
+ throw new Error('Ticket is not valid');
205
+ }
206
+ const eventRows = await state.adapter.query('SELECT * FROM ticket_events WHERE event_id = ?', [ticket.event_id]);
207
+ if (eventRows.length === 0) {
208
+ throw new Error(`Event ${ticket.event_id} does not exist`);
209
+ }
210
+ return { ticket, event: eventRows[0] };
211
+ };
212
+ const transferTicket = async (payload, ctx) => {
213
+ const sender = (0, helpers_1.requireSender)(ctx);
214
+ const { ticket } = await getValidTicket(payload.ticketId);
215
+ if (ticket.owner !== sender) {
216
+ throw new Error('Only the ticket owner can transfer the ticket');
217
+ }
218
+ if (payload.to === sender) {
219
+ throw new Error('Cannot transfer a ticket to yourself');
220
+ }
221
+ await deactivateListing(payload.ticketId);
222
+ await state.adapter.query('UPDATE tickets SET owner = ?, note = ?, updated_at = ? WHERE ticket_id = ?', [payload.to, payload.note || '', new Date(), payload.ticketId]);
223
+ await (0, helpers_1.emitContractEvent)(state.adapter, name, 'transferTicket', payload, {
224
+ action: 'ticket_transferred',
225
+ data: {
226
+ ticketId: payload.ticketId,
227
+ eventId: ticket.event_id,
228
+ from: sender,
229
+ to: payload.to
230
+ }
231
+ });
232
+ };
233
+ const listTicket = async (payload, ctx) => {
234
+ const sender = (0, helpers_1.requireSender)(ctx);
235
+ const { ticket, event } = await getValidTicket(payload.ticketId);
236
+ if (ticket.owner !== sender) {
237
+ throw new Error('Only the ticket owner can list the ticket for resale');
238
+ }
239
+ if (((0, helpers_1.parseDateValue)(event.starts_at) || new Date()) <= new Date()) {
240
+ throw new Error('Resale is closed for this event');
241
+ }
242
+ const asset = payload.asset || event.asset;
243
+ await deactivateListing(payload.ticketId);
244
+ await state.adapter.query(`INSERT INTO ticket_listings (ticket_id, event_id, seller, price, asset, active, listed_at, updated_at)
245
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
246
+ ON CONFLICT (ticket_id) DO UPDATE SET
247
+ seller = excluded.seller,
248
+ price = excluded.price,
249
+ asset = excluded.asset,
250
+ active = excluded.active,
251
+ listed_at = excluded.listed_at,
252
+ updated_at = excluded.updated_at`, [payload.ticketId, ticket.event_id, sender, payload.price, asset, 1, new Date(), new Date()]);
253
+ await (0, helpers_1.emitContractEvent)(state.adapter, name, 'listTicket', payload, {
254
+ action: 'ticket_listed',
255
+ data: {
256
+ ticketId: payload.ticketId,
257
+ eventId: ticket.event_id,
258
+ seller: sender,
259
+ price: payload.price,
260
+ asset
261
+ }
262
+ });
263
+ };
264
+ const unlistTicket = async (payload, ctx) => {
265
+ const sender = (0, helpers_1.requireSender)(ctx);
266
+ const listingRows = await state.adapter.query('SELECT * FROM ticket_listings WHERE ticket_id = ? AND active = 1', [payload.ticketId]);
267
+ if (listingRows.length === 0) {
268
+ throw new Error(`No active listing found for ticket ${payload.ticketId}`);
269
+ }
270
+ if (listingRows[0].seller !== sender) {
271
+ throw new Error('Only the seller can unlist the ticket');
272
+ }
273
+ await deactivateListing(payload.ticketId);
274
+ await (0, helpers_1.emitContractEvent)(state.adapter, name, 'unlistTicket', payload, {
275
+ action: 'ticket_unlisted',
276
+ data: {
277
+ ticketId: payload.ticketId,
278
+ seller: sender
279
+ }
280
+ });
281
+ };
282
+ const buyTicketDirect = async (payload, ctx) => {
283
+ const buyer = (0, helpers_1.requireSender)(ctx);
284
+ const payment = (0, helpers_1.getIncomingPayment)(ctx);
285
+ const listingRows = await state.adapter.query('SELECT * FROM ticket_listings WHERE ticket_id = ? AND active = 1', [payload.ticketId]);
286
+ if (listingRows.length === 0) {
287
+ throw new Error(`No active listing found for ticket ${payload.ticketId}`);
288
+ }
289
+ const listing = listingRows[0];
290
+ if (listing.seller === buyer) {
291
+ throw new Error('Cannot buy your own ticket');
292
+ }
293
+ // Non-custodial: payment must go straight to the seller, never the contract account
294
+ if (payment.to !== listing.seller) {
295
+ throw new Error(`Payment must be sent directly to the seller ${listing.seller}`);
296
+ }
297
+ const { ticket, event } = await getValidTicket(payload.ticketId);
298
+ if (ticket.owner !== listing.seller) {
299
+ throw new Error('Listing is stale: the seller no longer owns this ticket');
300
+ }
301
+ if (((0, helpers_1.parseDateValue)(event.starts_at) || new Date()) <= new Date()) {
302
+ throw new Error('Resale is closed for this event');
303
+ }
304
+ (0, helpers_1.assertAssetMatches)(payment.asset, listing.asset);
305
+ if (!(0, helpers_1.toBigNumber)(payment.amount).eq(listing.price)) {
306
+ throw new Error(`Ticket resale price is ${listing.price} ${listing.asset}`);
307
+ }
308
+ await deactivateListing(payload.ticketId);
309
+ await state.adapter.query('UPDATE tickets SET owner = ?, updated_at = ? WHERE ticket_id = ?', [buyer, new Date(), payload.ticketId]);
310
+ await (0, helpers_1.emitContractEvent)(state.adapter, name, 'buyTicketDirect', payload, {
311
+ action: 'ticket_sold_direct',
312
+ data: {
313
+ ticketId: payload.ticketId,
314
+ eventId: ticket.event_id,
315
+ seller: listing.seller,
316
+ buyer,
317
+ price: listing.price,
318
+ asset: listing.asset
319
+ }
320
+ });
321
+ };
169
322
  return (0, contract_1.defineContract)({
170
323
  name,
171
324
  hooks: {
@@ -178,7 +331,11 @@ function createTicketingContract(options = {}) {
178
331
  createEvent: (0, contract_1.action)(createEvent, { schema: createEventSchema, trigger: 'custom_json' }),
179
332
  purchaseTicket: (0, contract_1.action)(purchaseTicket, { schema: purchaseSchema, trigger: ['transfer', 'recurrent_transfer'] }),
180
333
  checkInTicket: (0, contract_1.action)(checkInTicket, { schema: ticketIdSchema, trigger: 'custom_json' }),
181
- refundTicket: (0, contract_1.action)(refundTicket, { schema: ticketIdSchema, trigger: 'custom_json' })
334
+ refundTicket: (0, contract_1.action)(refundTicket, { schema: ticketIdSchema, trigger: 'custom_json' }),
335
+ transferTicket: (0, contract_1.action)(transferTicket, { schema: transferTicketSchema, trigger: 'custom_json' }),
336
+ listTicket: (0, contract_1.action)(listTicket, { schema: listTicketSchema, trigger: 'custom_json' }),
337
+ unlistTicket: (0, contract_1.action)(unlistTicket, { schema: buyTicketSchema, trigger: 'custom_json' }),
338
+ buyTicketDirect: (0, contract_1.action)(buyTicketDirect, { schema: buyTicketSchema, trigger: 'transfer' })
182
339
  }
183
340
  });
184
341
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ticketing.contract.js","sourceRoot":"","sources":["../../src/contracts/ticketing.contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ticketing.contract.js","sourceRoot":"","sources":["../../src/contracts/ticketing.contract.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -23,6 +23,7 @@ export { createCoinflipContract } from './contracts/coinflip.contract';
23
23
  export { createTokenContract } from './contracts/token.contract';
24
24
  export { createNFTContract, NFTContract } from './contracts/nft.contract';
25
25
  export { createRpsContract } from './contracts/rps.contract';
26
+ export { createRouletteContract } from './contracts/roulette.contract';
26
27
  export { createPollContract } from './contracts/poll.contract';
27
28
  export { createTipJarContract } from './contracts/tipjar.contract';
28
29
  export { createExchangeContract } from './contracts/exchange.contract';
@@ -55,6 +56,7 @@ export { createProposalTimelockContract } from './contracts/proposaltimelock.con
55
56
  export { createBundleMarketplaceContract } from './contracts/bundlemarketplace.contract';
56
57
  export { createTicketingContract } from './contracts/ticketing.contract';
57
58
  export { createFanClubContract } from './contracts/fanclub.contract';
59
+ export { createCheckpointContract } from './contracts/checkpoint.contract';
58
60
  export * from './types/hive-stream';
59
61
  export { RatesError, NetworkError, ValidationError } from './types/rates';
60
62
  export type { ExchangeRates, HiveRates as HiveRatesMap, CryptoRates, ExchangeResponse, FiatResponse, RateConfig, ExchangeInterface, CurrencyPair, SupportedCrypto, SupportedFiat } from './types/rates';