hive-stream 3.0.2 → 3.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DOCUMENTATION.md +50 -2
- package/README.md +282 -4
- package/dist/adapters/base.adapter.d.ts +5 -0
- package/dist/adapters/base.adapter.js +9 -0
- package/dist/adapters/base.adapter.js.map +1 -1
- package/dist/adapters/mongodb.adapter.d.ts +6 -6
- package/dist/adapters/mongodb.adapter.js +36 -21
- package/dist/adapters/mongodb.adapter.js.map +1 -1
- package/dist/adapters/postgresql.adapter.d.ts +7 -0
- package/dist/adapters/postgresql.adapter.js +46 -19
- package/dist/adapters/postgresql.adapter.js.map +1 -1
- package/dist/adapters/sqlite.adapter.d.ts +4 -0
- package/dist/adapters/sqlite.adapter.js +10 -0
- package/dist/adapters/sqlite.adapter.js.map +1 -1
- package/dist/api.d.ts +13 -3
- package/dist/api.js +96 -62
- package/dist/api.js.map +1 -1
- package/dist/builders.d.ts +176 -0
- package/dist/builders.js +727 -0
- package/dist/builders.js.map +1 -0
- package/dist/config.d.ts +16 -1
- package/dist/config.js +95 -3
- package/dist/config.js.map +1 -1
- package/dist/contracts/auctionhouse.contract.d.ts +4 -0
- package/dist/contracts/auctionhouse.contract.js +234 -0
- package/dist/contracts/auctionhouse.contract.js.map +1 -0
- package/dist/contracts/booking.contract.d.ts +4 -0
- package/dist/contracts/booking.contract.js +225 -0
- package/dist/contracts/booking.contract.js.map +1 -0
- package/dist/contracts/bountyboard.contract.d.ts +4 -0
- package/dist/contracts/bountyboard.contract.js +233 -0
- package/dist/contracts/bountyboard.contract.js.map +1 -0
- package/dist/contracts/bundlemarketplace.contract.d.ts +4 -0
- package/dist/contracts/bundlemarketplace.contract.js +195 -0
- package/dist/contracts/bundlemarketplace.contract.js.map +1 -0
- package/dist/contracts/charitymatch.contract.d.ts +4 -0
- package/dist/contracts/charitymatch.contract.js +172 -0
- package/dist/contracts/charitymatch.contract.js.map +1 -0
- package/dist/contracts/coinflip.contract.js +25 -22
- package/dist/contracts/coinflip.contract.js.map +1 -1
- package/dist/contracts/crowdfund.contract.d.ts +4 -0
- package/dist/contracts/crowdfund.contract.js +290 -0
- package/dist/contracts/crowdfund.contract.js.map +1 -0
- package/dist/contracts/dcabot.contract.d.ts +4 -0
- package/dist/contracts/dcabot.contract.js +217 -0
- package/dist/contracts/dcabot.contract.js.map +1 -0
- package/dist/contracts/dice.contract.js +25 -22
- package/dist/contracts/dice.contract.js.map +1 -1
- package/dist/contracts/domainregistry.contract.d.ts +4 -0
- package/dist/contracts/domainregistry.contract.js +232 -0
- package/dist/contracts/domainregistry.contract.js.map +1 -0
- package/dist/contracts/exchange.contract.js +209 -168
- package/dist/contracts/exchange.contract.js.map +1 -1
- package/dist/contracts/fanclub.contract.d.ts +4 -0
- package/dist/contracts/fanclub.contract.js +193 -0
- package/dist/contracts/fanclub.contract.js.map +1 -0
- package/dist/contracts/giftcard.contract.d.ts +4 -0
- package/dist/contracts/giftcard.contract.js +158 -0
- package/dist/contracts/giftcard.contract.js.map +1 -0
- package/dist/contracts/grantrounds.contract.d.ts +4 -0
- package/dist/contracts/grantrounds.contract.js +265 -0
- package/dist/contracts/grantrounds.contract.js.map +1 -0
- package/dist/contracts/groupbuy.contract.d.ts +4 -0
- package/dist/contracts/groupbuy.contract.js +198 -0
- package/dist/contracts/groupbuy.contract.js.map +1 -0
- package/dist/contracts/helpers.d.ts +66 -0
- package/dist/contracts/helpers.js +166 -0
- package/dist/contracts/helpers.js.map +1 -0
- package/dist/contracts/insurancepool.contract.d.ts +4 -0
- package/dist/contracts/insurancepool.contract.js +281 -0
- package/dist/contracts/insurancepool.contract.js.map +1 -0
- package/dist/contracts/invoice.contract.d.ts +4 -0
- package/dist/contracts/invoice.contract.js +193 -0
- package/dist/contracts/invoice.contract.js.map +1 -0
- package/dist/contracts/launchpad.contract.d.ts +4 -0
- package/dist/contracts/launchpad.contract.js +225 -0
- package/dist/contracts/launchpad.contract.js.map +1 -0
- package/dist/contracts/lotto.contract.js +53 -37
- package/dist/contracts/lotto.contract.js.map +1 -1
- package/dist/contracts/multisigtreasury.contract.d.ts +4 -0
- package/dist/contracts/multisigtreasury.contract.js +245 -0
- package/dist/contracts/multisigtreasury.contract.js.map +1 -0
- package/dist/contracts/nft.contract.d.ts +1 -0
- package/dist/contracts/nft.contract.js +234 -195
- package/dist/contracts/nft.contract.js.map +1 -1
- package/dist/contracts/oraclebounty.contract.d.ts +4 -0
- package/dist/contracts/oraclebounty.contract.js +250 -0
- package/dist/contracts/oraclebounty.contract.js.map +1 -0
- package/dist/contracts/payroll.contract.d.ts +4 -0
- package/dist/contracts/payroll.contract.js +232 -0
- package/dist/contracts/payroll.contract.js.map +1 -0
- package/dist/contracts/paywall.contract.d.ts +4 -0
- package/dist/contracts/paywall.contract.js +185 -0
- package/dist/contracts/paywall.contract.js.map +1 -0
- package/dist/contracts/poll.contract.js +2 -0
- package/dist/contracts/poll.contract.js.map +1 -1
- package/dist/contracts/predictionmarket.contract.d.ts +4 -0
- package/dist/contracts/predictionmarket.contract.js +213 -0
- package/dist/contracts/predictionmarket.contract.js.map +1 -0
- package/dist/contracts/proposaltimelock.contract.d.ts +4 -0
- package/dist/contracts/proposaltimelock.contract.js +250 -0
- package/dist/contracts/proposaltimelock.contract.js.map +1 -0
- package/dist/contracts/questpass.contract.d.ts +4 -0
- package/dist/contracts/questpass.contract.js +214 -0
- package/dist/contracts/questpass.contract.js.map +1 -0
- package/dist/contracts/referral.contract.d.ts +4 -0
- package/dist/contracts/referral.contract.js +238 -0
- package/dist/contracts/referral.contract.js.map +1 -0
- package/dist/contracts/rental.contract.d.ts +4 -0
- package/dist/contracts/rental.contract.js +221 -0
- package/dist/contracts/rental.contract.js.map +1 -0
- package/dist/contracts/revenuesplit.contract.d.ts +4 -0
- package/dist/contracts/revenuesplit.contract.js +211 -0
- package/dist/contracts/revenuesplit.contract.js.map +1 -0
- package/dist/contracts/rps.contract.js +48 -20
- package/dist/contracts/rps.contract.js.map +1 -1
- package/dist/contracts/savings.contract.d.ts +4 -0
- package/dist/contracts/savings.contract.js +208 -0
- package/dist/contracts/savings.contract.js.map +1 -0
- package/dist/contracts/subscription.contract.d.ts +4 -0
- package/dist/contracts/subscription.contract.js +241 -0
- package/dist/contracts/subscription.contract.js.map +1 -0
- package/dist/contracts/sweepstakes.contract.d.ts +4 -0
- package/dist/contracts/sweepstakes.contract.js +209 -0
- package/dist/contracts/sweepstakes.contract.js.map +1 -0
- package/dist/contracts/ticketing.contract.d.ts +4 -0
- package/dist/contracts/ticketing.contract.js +185 -0
- package/dist/contracts/ticketing.contract.js.map +1 -0
- package/dist/contracts/tipjar.contract.js +2 -0
- package/dist/contracts/tipjar.contract.js.map +1 -1
- package/dist/contracts/token.contract.js +135 -125
- package/dist/contracts/token.contract.js.map +1 -1
- package/dist/index.d.ts +40 -0
- package/dist/index.js +72 -1
- package/dist/index.js.map +1 -1
- package/dist/metadata.d.ts +20 -0
- package/dist/metadata.js +320 -1
- package/dist/metadata.js.map +1 -1
- package/dist/providers/block-provider.d.ts +22 -0
- package/dist/providers/block-provider.js +3 -0
- package/dist/providers/block-provider.js.map +1 -0
- package/dist/providers/haf-client.d.ts +30 -0
- package/dist/providers/haf-client.js +119 -0
- package/dist/providers/haf-client.js.map +1 -0
- package/dist/providers/haf-provider.d.ts +49 -0
- package/dist/providers/haf-provider.js +256 -0
- package/dist/providers/haf-provider.js.map +1 -0
- package/dist/providers/hive-provider.d.ts +13 -0
- package/dist/providers/hive-provider.js +25 -0
- package/dist/providers/hive-provider.js.map +1 -0
- package/dist/providers/index.d.ts +4 -0
- package/dist/providers/index.js +21 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/streamer.d.ts +65 -4
- package/dist/streamer.js +768 -72
- package/dist/streamer.js.map +1 -1
- package/dist/types/hive-stream.d.ts +317 -0
- package/dist/utils.d.ts +33 -0
- package/dist/utils.js +198 -2
- package/dist/utils.js.map +1 -1
- package/package.json +16 -1
- package/.claude/settings.local.json +0 -12
- package/.env.example +0 -3
- package/.travis.yml +0 -11
- package/AGENTS.md +0 -35
- package/CLAUDE.md +0 -75
- package/ecosystem.config.js +0 -17
- package/examples/contracts/README.md +0 -8
- package/examples/contracts/exchange.ts +0 -38
- package/examples/contracts/poll.ts +0 -21
- package/examples/contracts/rps.ts +0 -19
- package/examples/contracts/tipjar.ts +0 -19
- package/jest.config.js +0 -9
- package/test-contract-block.md +0 -19
- package/tests/actions.spec.ts +0 -252
- package/tests/adapters/actions-persistence.spec.ts +0 -144
- package/tests/adapters/postgresql.adapter.spec.ts +0 -127
- package/tests/adapters/sqlite.adapter.spec.ts +0 -181
- package/tests/config-input.spec.ts +0 -90
- package/tests/contracts/coinflip.contract.spec.ts +0 -94
- package/tests/contracts/dice.contract.spec.ts +0 -87
- package/tests/contracts/entrants.json +0 -729
- package/tests/contracts/exchange.contract.spec.ts +0 -84
- package/tests/contracts/lotto.contract.spec.ts +0 -59
- package/tests/contracts/nft.contract.spec.ts +0 -948
- package/tests/contracts/token.contract.spec.ts +0 -90
- package/tests/exchanges/coingecko.exchange.spec.ts +0 -169
- package/tests/exchanges/exchange.base.spec.ts +0 -246
- package/tests/helpers/mock-adapter.ts +0 -214
- package/tests/helpers/mock-fetch.ts +0 -165
- package/tests/hive-chain-features.spec.ts +0 -319
- package/tests/hive-rates.spec.ts +0 -443
- package/tests/integration/hive-rates.integration.spec.ts +0 -35
- package/tests/metadata.spec.ts +0 -63
- package/tests/setup.ts +0 -30
- package/tests/streamer-actions.spec.ts +0 -274
- package/tests/streamer.spec.ts +0 -342
- package/tests/types/rates.spec.ts +0 -216
- package/tests/utils.spec.ts +0 -113
- package/tsconfig.build.json +0 -4
- package/tslint.json +0 -21
- package/wallaby.js +0 -26
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTicketingContract = createTicketingContract;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const contract_1 = require("./contract");
|
|
6
|
+
const helpers_1 = require("./helpers");
|
|
7
|
+
const DEFAULT_NAME = 'ticketing';
|
|
8
|
+
function createTicketingContract(options = {}) {
|
|
9
|
+
const name = options.name || DEFAULT_NAME;
|
|
10
|
+
const state = (0, helpers_1.createContractState)();
|
|
11
|
+
const createEventSchema = zod_1.z.object({
|
|
12
|
+
eventId: helpers_1.identifierSchema,
|
|
13
|
+
title: zod_1.z.string().min(3).max(140),
|
|
14
|
+
venue: zod_1.z.string().min(2).max(140),
|
|
15
|
+
startsAt: zod_1.z.string(),
|
|
16
|
+
ticketPrice: helpers_1.amountSchema,
|
|
17
|
+
asset: helpers_1.assetSchema,
|
|
18
|
+
capacity: zod_1.z.number().int().min(1).max(1000000),
|
|
19
|
+
metadata: zod_1.z.record(zod_1.z.any()).optional()
|
|
20
|
+
});
|
|
21
|
+
const purchaseSchema = zod_1.z.object({
|
|
22
|
+
eventId: helpers_1.identifierSchema,
|
|
23
|
+
ticketId: helpers_1.identifierSchema
|
|
24
|
+
});
|
|
25
|
+
const ticketIdSchema = zod_1.z.object({
|
|
26
|
+
ticketId: helpers_1.identifierSchema,
|
|
27
|
+
note: zod_1.z.string().max(280).optional()
|
|
28
|
+
});
|
|
29
|
+
const initialize = async () => {
|
|
30
|
+
await (0, helpers_1.initializeTables)(state.adapter, [
|
|
31
|
+
`
|
|
32
|
+
CREATE TABLE IF NOT EXISTS ticket_events (
|
|
33
|
+
event_id TEXT PRIMARY KEY,
|
|
34
|
+
owner TEXT NOT NULL,
|
|
35
|
+
title TEXT NOT NULL,
|
|
36
|
+
venue TEXT NOT NULL,
|
|
37
|
+
starts_at DATETIME NOT NULL,
|
|
38
|
+
ticket_price TEXT NOT NULL,
|
|
39
|
+
asset TEXT NOT NULL,
|
|
40
|
+
capacity INTEGER NOT NULL,
|
|
41
|
+
sold_count INTEGER NOT NULL,
|
|
42
|
+
status TEXT NOT NULL,
|
|
43
|
+
metadata TEXT,
|
|
44
|
+
created_at DATETIME NOT NULL
|
|
45
|
+
)
|
|
46
|
+
`,
|
|
47
|
+
`
|
|
48
|
+
CREATE TABLE IF NOT EXISTS tickets (
|
|
49
|
+
ticket_id TEXT PRIMARY KEY,
|
|
50
|
+
event_id TEXT NOT NULL,
|
|
51
|
+
owner TEXT NOT NULL,
|
|
52
|
+
status TEXT NOT NULL,
|
|
53
|
+
note TEXT,
|
|
54
|
+
created_at DATETIME NOT NULL,
|
|
55
|
+
updated_at DATETIME NOT NULL
|
|
56
|
+
)
|
|
57
|
+
`
|
|
58
|
+
]);
|
|
59
|
+
};
|
|
60
|
+
const createEvent = async (payload, ctx) => {
|
|
61
|
+
const owner = (0, helpers_1.requireSender)(ctx);
|
|
62
|
+
const existing = await state.adapter.query('SELECT event_id FROM ticket_events WHERE event_id = ?', [payload.eventId]);
|
|
63
|
+
if (existing.length > 0) {
|
|
64
|
+
throw new Error(`Event ${payload.eventId} already exists`);
|
|
65
|
+
}
|
|
66
|
+
const startsAt = (0, helpers_1.parseDateValue)(payload.startsAt);
|
|
67
|
+
if (!startsAt || startsAt <= new Date()) {
|
|
68
|
+
throw new Error('Event start time must be in the future');
|
|
69
|
+
}
|
|
70
|
+
await state.adapter.query(`INSERT INTO ticket_events (
|
|
71
|
+
event_id, owner, title, venue, starts_at, ticket_price, asset, capacity, sold_count, status, metadata, created_at
|
|
72
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [payload.eventId, owner, payload.title, payload.venue, startsAt, payload.ticketPrice, payload.asset, payload.capacity, 0, 'active', JSON.stringify(payload.metadata || {}), new Date()]);
|
|
73
|
+
await (0, helpers_1.emitContractEvent)(state.adapter, name, 'createEvent', payload, {
|
|
74
|
+
action: 'ticket_event_created',
|
|
75
|
+
data: {
|
|
76
|
+
eventId: payload.eventId,
|
|
77
|
+
owner
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
const purchaseTicket = async (payload, ctx) => {
|
|
82
|
+
const buyer = (0, helpers_1.requireSender)(ctx);
|
|
83
|
+
const payment = (0, helpers_1.getIncomingPayment)(ctx);
|
|
84
|
+
const eventRows = await state.adapter.query('SELECT * FROM ticket_events WHERE event_id = ?', [payload.eventId]);
|
|
85
|
+
if (eventRows.length === 0) {
|
|
86
|
+
throw new Error(`Event ${payload.eventId} does not exist`);
|
|
87
|
+
}
|
|
88
|
+
const event = eventRows[0];
|
|
89
|
+
if (event.status !== 'active') {
|
|
90
|
+
throw new Error('Event is not active');
|
|
91
|
+
}
|
|
92
|
+
if (((0, helpers_1.parseDateValue)(event.starts_at) || new Date()) <= new Date()) {
|
|
93
|
+
throw new Error('Ticket sales are closed for this event');
|
|
94
|
+
}
|
|
95
|
+
(0, helpers_1.assertAssetMatches)(payment.asset, event.asset);
|
|
96
|
+
if (!(0, helpers_1.toBigNumber)(payment.amount).eq(event.ticket_price)) {
|
|
97
|
+
throw new Error(`Ticket price is ${event.ticket_price} ${event.asset}`);
|
|
98
|
+
}
|
|
99
|
+
if (Number(event.sold_count) >= Number(event.capacity)) {
|
|
100
|
+
throw new Error('Event is sold out');
|
|
101
|
+
}
|
|
102
|
+
const existing = await state.adapter.query('SELECT ticket_id FROM tickets WHERE ticket_id = ?', [payload.ticketId]);
|
|
103
|
+
if (existing.length > 0) {
|
|
104
|
+
throw new Error(`Ticket ${payload.ticketId} already exists`);
|
|
105
|
+
}
|
|
106
|
+
await state.adapter.query('INSERT INTO tickets (ticket_id, event_id, owner, status, note, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)', [payload.ticketId, payload.eventId, buyer, 'valid', '', new Date(), new Date()]);
|
|
107
|
+
await state.adapter.query('UPDATE ticket_events SET sold_count = ? WHERE event_id = ?', [Number(event.sold_count) + 1, payload.eventId]);
|
|
108
|
+
await (0, helpers_1.emitContractEvent)(state.adapter, name, 'purchaseTicket', payload, {
|
|
109
|
+
action: 'ticket_purchased',
|
|
110
|
+
data: {
|
|
111
|
+
ticketId: payload.ticketId,
|
|
112
|
+
eventId: payload.eventId,
|
|
113
|
+
buyer
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
const checkInTicket = async (payload, ctx) => {
|
|
118
|
+
const sender = (0, helpers_1.requireSender)(ctx);
|
|
119
|
+
const ticketRows = await state.adapter.query('SELECT * FROM tickets WHERE ticket_id = ?', [payload.ticketId]);
|
|
120
|
+
if (ticketRows.length === 0) {
|
|
121
|
+
throw new Error(`Ticket ${payload.ticketId} does not exist`);
|
|
122
|
+
}
|
|
123
|
+
const ticket = ticketRows[0];
|
|
124
|
+
const eventRows = await state.adapter.query('SELECT * FROM ticket_events WHERE event_id = ?', [ticket.event_id]);
|
|
125
|
+
const event = eventRows[0];
|
|
126
|
+
if (event.owner !== sender) {
|
|
127
|
+
throw new Error('Only the event owner can check in tickets');
|
|
128
|
+
}
|
|
129
|
+
if (ticket.status !== 'valid') {
|
|
130
|
+
throw new Error('Ticket is not valid for check-in');
|
|
131
|
+
}
|
|
132
|
+
await state.adapter.query('UPDATE tickets SET status = ?, note = ?, updated_at = ? WHERE ticket_id = ?', ['checked_in', payload.note || '', new Date(), payload.ticketId]);
|
|
133
|
+
await (0, helpers_1.emitContractEvent)(state.adapter, name, 'checkInTicket', payload, {
|
|
134
|
+
action: 'ticket_checked_in',
|
|
135
|
+
data: {
|
|
136
|
+
ticketId: payload.ticketId,
|
|
137
|
+
eventId: ticket.event_id,
|
|
138
|
+
owner: ticket.owner
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
};
|
|
142
|
+
const refundTicket = async (payload, ctx) => {
|
|
143
|
+
const sender = (0, helpers_1.requireSender)(ctx);
|
|
144
|
+
const ticketRows = await state.adapter.query('SELECT * FROM tickets WHERE ticket_id = ?', [payload.ticketId]);
|
|
145
|
+
if (ticketRows.length === 0) {
|
|
146
|
+
throw new Error(`Ticket ${payload.ticketId} does not exist`);
|
|
147
|
+
}
|
|
148
|
+
const ticket = ticketRows[0];
|
|
149
|
+
const eventRows = await state.adapter.query('SELECT * FROM ticket_events WHERE event_id = ?', [ticket.event_id]);
|
|
150
|
+
const event = eventRows[0];
|
|
151
|
+
if (sender !== event.owner && sender !== ticket.owner) {
|
|
152
|
+
throw new Error('Only the event owner or ticket owner can request a refund');
|
|
153
|
+
}
|
|
154
|
+
if (ticket.status !== 'valid') {
|
|
155
|
+
throw new Error('Only valid tickets can be refunded');
|
|
156
|
+
}
|
|
157
|
+
await state.adapter.query('UPDATE tickets SET status = ?, note = ?, updated_at = ? WHERE ticket_id = ?', ['refunded', payload.note || '', new Date(), payload.ticketId]);
|
|
158
|
+
await (0, helpers_1.emitContractEvent)(state.adapter, name, 'refundTicket', payload, {
|
|
159
|
+
action: 'ticket_refund_requested',
|
|
160
|
+
data: {
|
|
161
|
+
ticketId: payload.ticketId,
|
|
162
|
+
eventId: ticket.event_id,
|
|
163
|
+
owner: ticket.owner,
|
|
164
|
+
amount: event.ticket_price,
|
|
165
|
+
asset: event.asset
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
return (0, contract_1.defineContract)({
|
|
170
|
+
name,
|
|
171
|
+
hooks: {
|
|
172
|
+
create: async ({ adapter }) => {
|
|
173
|
+
state.adapter = adapter;
|
|
174
|
+
await initialize();
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
actions: {
|
|
178
|
+
createEvent: (0, contract_1.action)(createEvent, { schema: createEventSchema, trigger: 'custom_json' }),
|
|
179
|
+
purchaseTicket: (0, contract_1.action)(purchaseTicket, { schema: purchaseSchema, trigger: ['transfer', 'recurrent_transfer'] }),
|
|
180
|
+
checkInTicket: (0, contract_1.action)(checkInTicket, { schema: ticketIdSchema, trigger: 'custom_json' }),
|
|
181
|
+
refundTicket: (0, contract_1.action)(refundTicket, { schema: ticketIdSchema, trigger: 'custom_json' })
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=ticketing.contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ticketing.contract.js","sourceRoot":"","sources":["../../src/contracts/ticketing.contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createTipJarContract = createTipJarContract;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const contract_1 = require("./contract");
|
|
6
|
+
const helpers_1 = require("./helpers");
|
|
6
7
|
const DEFAULT_NAME = 'tipjar';
|
|
7
8
|
function createTipJarContract(options = {}) {
|
|
8
9
|
const name = options.name || DEFAULT_NAME;
|
|
@@ -45,6 +46,7 @@ function createTipJarContract(options = {}) {
|
|
|
45
46
|
name,
|
|
46
47
|
hooks: {
|
|
47
48
|
create: async ({ adapter }) => {
|
|
49
|
+
(0, helpers_1.ensureSqlAdapter)(adapter);
|
|
48
50
|
state.adapter = adapter;
|
|
49
51
|
await initializeTables();
|
|
50
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tipjar.contract.js","sourceRoot":"","sources":["../../src/contracts/tipjar.contract.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"tipjar.contract.js","sourceRoot":"","sources":["../../src/contracts/tipjar.contract.ts"],"names":[],"mappings":";;AAUA,oDA+DC;AAzED,6BAAwB;AACxB,yCAAoD;AACpD,uCAA6C;AAE7C,MAAM,YAAY,GAAG,QAAQ,CAAC;AAM9B,SAAgB,oBAAoB,CAAC,UAAiC,EAAE;IACpE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;IAE1C,MAAM,KAAK,GAAG;QACV,OAAO,EAAE,IAAW;KACvB,CAAC;IAEF,MAAM,SAAS,GAAG,OAAC,CAAC,MAAM,CAAC;QACvB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KAC1C,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAChC,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;;;;;;;;;;;SAWzB,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,KAAK,EAAE,OAA6B,EAAE,GAAQ,EAAE,EAAE;QAC1D,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CACrB,uIAAuI,EACvI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CACjI,CAAC;QAEF,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;YAC3D,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE;gBACF,IAAI,EAAE,GAAG,CAAC,MAAM;gBAChB,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM;gBAC3B,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK;gBACzB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;aACjC;SACJ,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO,IAAA,yBAAc,EAAC;QAClB,IAAI;QACJ,KAAK,EAAE;YACH,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC1B,IAAA,0BAAgB,EAAC,OAAO,CAAC,CAAC;gBAC1B,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;gBACxB,MAAM,gBAAgB,EAAE,CAAC;YAC7B,CAAC;SACJ;QACD,OAAO,EAAE;YACL,GAAG,EAAE,IAAA,iBAAM,EAAC,GAAG,EAAE;gBACb,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,UAAU;aACtB,CAAC;SACL;KACJ,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -7,6 +7,7 @@ exports.createTokenContract = createTokenContract;
|
|
|
7
7
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
8
|
const zod_1 = require("zod");
|
|
9
9
|
const contract_1 = require("./contract");
|
|
10
|
+
const helpers_1 = require("./helpers");
|
|
10
11
|
const DEFAULT_NAME = 'hivetoken';
|
|
11
12
|
function createTokenContract(options = {}) {
|
|
12
13
|
const name = options.name || DEFAULT_NAME;
|
|
@@ -41,46 +42,47 @@ function createTokenContract(options = {}) {
|
|
|
41
42
|
symbol: zod_1.z.string().min(1)
|
|
42
43
|
});
|
|
43
44
|
const initializeTokenTables = async () => {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
45
|
+
await state.adapter.query(`
|
|
46
|
+
CREATE TABLE IF NOT EXISTS tokens (
|
|
47
|
+
symbol TEXT PRIMARY KEY,
|
|
48
|
+
name TEXT NOT NULL,
|
|
49
|
+
url TEXT,
|
|
50
|
+
precision INTEGER NOT NULL DEFAULT 3,
|
|
51
|
+
max_supply TEXT NOT NULL,
|
|
52
|
+
current_supply TEXT NOT NULL DEFAULT '0',
|
|
53
|
+
creator TEXT NOT NULL,
|
|
54
|
+
created_at DATETIME NOT NULL
|
|
55
|
+
)
|
|
56
|
+
`);
|
|
57
|
+
await state.adapter.query(`
|
|
58
|
+
CREATE TABLE IF NOT EXISTS token_balances (
|
|
59
|
+
account TEXT NOT NULL,
|
|
60
|
+
symbol TEXT NOT NULL,
|
|
61
|
+
balance TEXT NOT NULL DEFAULT '0',
|
|
62
|
+
PRIMARY KEY (account, symbol),
|
|
63
|
+
FOREIGN KEY (symbol) REFERENCES tokens(symbol)
|
|
64
|
+
)
|
|
65
|
+
`);
|
|
66
|
+
await state.adapter.query(`
|
|
67
|
+
CREATE TABLE IF NOT EXISTS token_transfers (
|
|
68
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
69
|
+
from_account TEXT NOT NULL,
|
|
70
|
+
to_account TEXT NOT NULL,
|
|
71
|
+
amount TEXT NOT NULL,
|
|
72
|
+
symbol TEXT NOT NULL,
|
|
73
|
+
memo TEXT,
|
|
74
|
+
block_number INTEGER NOT NULL,
|
|
75
|
+
transaction_id TEXT NOT NULL,
|
|
76
|
+
timestamp DATETIME NOT NULL,
|
|
77
|
+
FOREIGN KEY (symbol) REFERENCES tokens(symbol)
|
|
78
|
+
)
|
|
79
|
+
`);
|
|
80
|
+
};
|
|
81
|
+
const withTransaction = async (work) => {
|
|
82
|
+
if (typeof state.adapter?.runInTransaction === 'function') {
|
|
83
|
+
return state.adapter.runInTransaction(work);
|
|
83
84
|
}
|
|
85
|
+
return work(state.adapter);
|
|
84
86
|
};
|
|
85
87
|
const createToken = async (payload, ctx) => {
|
|
86
88
|
try {
|
|
@@ -101,23 +103,25 @@ function createTokenContract(options = {}) {
|
|
|
101
103
|
if (url && url.length > 256) {
|
|
102
104
|
throw new Error('URL must be 256 characters or less');
|
|
103
105
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
await state.adapter.query(`
|
|
109
|
-
INSERT INTO tokens (symbol, name, url, precision, max_supply, current_supply, creator, created_at)
|
|
110
|
-
VALUES (?, ?, ?, ?, ?, '0', ?, ?)
|
|
111
|
-
`, [symbol, tokenName, url, precision, maxSupply, ctx.sender, new Date()]);
|
|
112
|
-
await state.adapter.addEvent(new Date(), name, 'createToken', payload, {
|
|
113
|
-
action: 'token_created',
|
|
114
|
-
data: {
|
|
115
|
-
symbol,
|
|
116
|
-
name: tokenName,
|
|
117
|
-
creator: ctx.sender,
|
|
118
|
-
maxSupply,
|
|
119
|
-
precision
|
|
106
|
+
await withTransaction(async (adapter) => {
|
|
107
|
+
const existingToken = await adapter.query('SELECT symbol FROM tokens WHERE symbol = ?', [symbol]);
|
|
108
|
+
if (existingToken && existingToken.length > 0) {
|
|
109
|
+
throw new Error(`Token with symbol ${symbol} already exists`);
|
|
120
110
|
}
|
|
111
|
+
await adapter.query(`
|
|
112
|
+
INSERT INTO tokens (symbol, name, url, precision, max_supply, current_supply, creator, created_at)
|
|
113
|
+
VALUES (?, ?, ?, ?, ?, '0', ?, ?)
|
|
114
|
+
`, [symbol, tokenName, url, precision, maxSupply, ctx.sender, new Date()]);
|
|
115
|
+
await adapter.addEvent(new Date(), name, 'createToken', payload, {
|
|
116
|
+
action: 'token_created',
|
|
117
|
+
data: {
|
|
118
|
+
symbol,
|
|
119
|
+
name: tokenName,
|
|
120
|
+
creator: ctx.sender,
|
|
121
|
+
maxSupply,
|
|
122
|
+
precision
|
|
123
|
+
}
|
|
124
|
+
});
|
|
121
125
|
});
|
|
122
126
|
console.log(`[TokenContract] Token ${symbol} created by ${ctx.sender}`);
|
|
123
127
|
}
|
|
@@ -129,47 +133,49 @@ function createTokenContract(options = {}) {
|
|
|
129
133
|
const issueTokens = async (payload, ctx) => {
|
|
130
134
|
try {
|
|
131
135
|
const { symbol, to, amount, memo = '' } = payload;
|
|
132
|
-
const token = await state.adapter.query('SELECT * FROM tokens WHERE symbol = ?', [symbol]);
|
|
133
|
-
if (!token || token.length === 0) {
|
|
134
|
-
throw new Error(`Token ${symbol} does not exist`);
|
|
135
|
-
}
|
|
136
|
-
const tokenData = token[0];
|
|
137
|
-
if (tokenData.creator !== ctx.sender) {
|
|
138
|
-
throw new Error('Only the token creator can issue new tokens');
|
|
139
|
-
}
|
|
140
136
|
const amountBN = new bignumber_js_1.default(amount);
|
|
141
137
|
if (amountBN.isNaN() || amountBN.lte(0)) {
|
|
142
138
|
throw new Error('Amount must be a positive number');
|
|
143
139
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
throw new Error('Cannot issue tokens: would exceed maximum supply');
|
|
149
|
-
}
|
|
150
|
-
await state.adapter.query(`
|
|
151
|
-
UPDATE tokens SET current_supply = ? WHERE symbol = ?
|
|
152
|
-
`, [newSupplyBN.toString(), symbol]);
|
|
153
|
-
const existingBalance = await state.adapter.query('SELECT balance FROM token_balances WHERE account = ? AND symbol = ?', [to, symbol]);
|
|
154
|
-
if (existingBalance && existingBalance.length > 0) {
|
|
155
|
-
const balanceBN = new bignumber_js_1.default(existingBalance[0].balance);
|
|
156
|
-
const newBalanceBN = balanceBN.plus(amountBN);
|
|
157
|
-
await state.adapter.query('UPDATE token_balances SET balance = ? WHERE account = ? AND symbol = ?', [newBalanceBN.toString(), to, symbol]);
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
await state.adapter.query('INSERT INTO token_balances (account, symbol, balance) VALUES (?, ?, ?)', [to, symbol, amountBN.toString()]);
|
|
161
|
-
}
|
|
162
|
-
await state.adapter.query(`
|
|
163
|
-
INSERT INTO token_transfers (from_account, to_account, amount, symbol, memo, block_number, transaction_id, timestamp)
|
|
164
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
165
|
-
`, ['null', to, amount, symbol, memo, ctx.block.number, ctx.transaction.id, new Date()]);
|
|
166
|
-
await state.adapter.addEvent(new Date(), name, 'issueTokens', payload, {
|
|
167
|
-
action: 'tokens_issued',
|
|
168
|
-
data: {
|
|
169
|
-
to,
|
|
170
|
-
amount,
|
|
171
|
-
symbol
|
|
140
|
+
await withTransaction(async (adapter) => {
|
|
141
|
+
const token = await adapter.query('SELECT * FROM tokens WHERE symbol = ?', [symbol]);
|
|
142
|
+
if (!token || token.length === 0) {
|
|
143
|
+
throw new Error(`Token ${symbol} does not exist`);
|
|
172
144
|
}
|
|
145
|
+
const tokenData = token[0];
|
|
146
|
+
if (tokenData.creator !== ctx.sender) {
|
|
147
|
+
throw new Error('Only the token creator can issue new tokens');
|
|
148
|
+
}
|
|
149
|
+
const currentSupplyBN = new bignumber_js_1.default(tokenData.current_supply);
|
|
150
|
+
const maxSupplyBN = new bignumber_js_1.default(tokenData.max_supply);
|
|
151
|
+
const newSupplyBN = currentSupplyBN.plus(amountBN);
|
|
152
|
+
if (newSupplyBN.gt(maxSupplyBN)) {
|
|
153
|
+
throw new Error('Cannot issue tokens: would exceed maximum supply');
|
|
154
|
+
}
|
|
155
|
+
await adapter.query(`
|
|
156
|
+
UPDATE tokens SET current_supply = ? WHERE symbol = ?
|
|
157
|
+
`, [newSupplyBN.toString(), symbol]);
|
|
158
|
+
const existingBalance = await adapter.query('SELECT balance FROM token_balances WHERE account = ? AND symbol = ?', [to, symbol]);
|
|
159
|
+
if (existingBalance && existingBalance.length > 0) {
|
|
160
|
+
const balanceBN = new bignumber_js_1.default(existingBalance[0].balance);
|
|
161
|
+
const newBalanceBN = balanceBN.plus(amountBN);
|
|
162
|
+
await adapter.query('UPDATE token_balances SET balance = ? WHERE account = ? AND symbol = ?', [newBalanceBN.toString(), to, symbol]);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
await adapter.query('INSERT INTO token_balances (account, symbol, balance) VALUES (?, ?, ?)', [to, symbol, amountBN.toString()]);
|
|
166
|
+
}
|
|
167
|
+
await adapter.query(`
|
|
168
|
+
INSERT INTO token_transfers (from_account, to_account, amount, symbol, memo, block_number, transaction_id, timestamp)
|
|
169
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
170
|
+
`, ['null', to, amount, symbol, memo, ctx.block.number, ctx.transaction.id, new Date()]);
|
|
171
|
+
await adapter.addEvent(new Date(), name, 'issueTokens', payload, {
|
|
172
|
+
action: 'tokens_issued',
|
|
173
|
+
data: {
|
|
174
|
+
to,
|
|
175
|
+
amount,
|
|
176
|
+
symbol
|
|
177
|
+
}
|
|
178
|
+
});
|
|
173
179
|
});
|
|
174
180
|
console.log(`[TokenContract] Issued ${amount} ${symbol} to ${to}`);
|
|
175
181
|
}
|
|
@@ -184,45 +190,48 @@ function createTokenContract(options = {}) {
|
|
|
184
190
|
if (ctx.sender === to) {
|
|
185
191
|
throw new Error('Cannot transfer tokens to yourself');
|
|
186
192
|
}
|
|
187
|
-
const token = await state.adapter.query('SELECT * FROM tokens WHERE symbol = ?', [symbol]);
|
|
188
|
-
if (!token || token.length === 0) {
|
|
189
|
-
throw new Error(`Token ${symbol} does not exist`);
|
|
190
|
-
}
|
|
191
193
|
const amountBN = new bignumber_js_1.default(amount);
|
|
192
194
|
if (amountBN.isNaN() || amountBN.lte(0)) {
|
|
193
195
|
throw new Error('Amount must be a positive number');
|
|
194
196
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
action: 'tokens_transferred',
|
|
220
|
-
data: {
|
|
221
|
-
from: ctx.sender,
|
|
222
|
-
to,
|
|
223
|
-
amount,
|
|
224
|
-
symbol
|
|
197
|
+
await withTransaction(async (adapter) => {
|
|
198
|
+
// Token existence check inside transaction to prevent TOCTOU
|
|
199
|
+
const token = await adapter.query('SELECT * FROM tokens WHERE symbol = ?', [symbol]);
|
|
200
|
+
if (!token || token.length === 0) {
|
|
201
|
+
throw new Error(`Token ${symbol} does not exist`);
|
|
202
|
+
}
|
|
203
|
+
const senderBalance = await adapter.query('SELECT balance FROM token_balances WHERE account = ? AND symbol = ?', [ctx.sender, symbol]);
|
|
204
|
+
if (!senderBalance || senderBalance.length === 0) {
|
|
205
|
+
throw new Error(`Account ${ctx.sender} does not have any ${symbol} tokens`);
|
|
206
|
+
}
|
|
207
|
+
const senderBalanceBN = new bignumber_js_1.default(senderBalance[0].balance);
|
|
208
|
+
if (senderBalanceBN.lt(amountBN)) {
|
|
209
|
+
throw new Error('Insufficient balance');
|
|
210
|
+
}
|
|
211
|
+
const newSenderBalanceBN = senderBalanceBN.minus(amountBN);
|
|
212
|
+
await adapter.query('UPDATE token_balances SET balance = ? WHERE account = ? AND symbol = ?', [newSenderBalanceBN.toString(), ctx.sender, symbol]);
|
|
213
|
+
const receiverBalance = await adapter.query('SELECT balance FROM token_balances WHERE account = ? AND symbol = ?', [to, symbol]);
|
|
214
|
+
if (receiverBalance && receiverBalance.length > 0) {
|
|
215
|
+
const receiverBalanceBN = new bignumber_js_1.default(receiverBalance[0].balance);
|
|
216
|
+
const newReceiverBalanceBN = receiverBalanceBN.plus(amountBN);
|
|
217
|
+
await adapter.query('UPDATE token_balances SET balance = ? WHERE account = ? AND symbol = ?', [newReceiverBalanceBN.toString(), to, symbol]);
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
await adapter.query('INSERT INTO token_balances (account, symbol, balance) VALUES (?, ?, ?)', [to, symbol, amountBN.toString()]);
|
|
225
221
|
}
|
|
222
|
+
await adapter.query(`
|
|
223
|
+
INSERT INTO token_transfers (from_account, to_account, amount, symbol, memo, block_number, transaction_id, timestamp)
|
|
224
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
225
|
+
`, [ctx.sender, to, amount, symbol, memo, ctx.block.number, ctx.transaction.id, new Date()]);
|
|
226
|
+
await adapter.addEvent(new Date(), name, 'transferTokens', payload, {
|
|
227
|
+
action: 'tokens_transferred',
|
|
228
|
+
data: {
|
|
229
|
+
from: ctx.sender,
|
|
230
|
+
to,
|
|
231
|
+
amount,
|
|
232
|
+
symbol
|
|
233
|
+
}
|
|
234
|
+
});
|
|
226
235
|
});
|
|
227
236
|
console.log(`[TokenContract] Transferred ${amount} ${symbol} from ${ctx.sender} to ${to}`);
|
|
228
237
|
}
|
|
@@ -279,6 +288,7 @@ function createTokenContract(options = {}) {
|
|
|
279
288
|
name,
|
|
280
289
|
hooks: {
|
|
281
290
|
create: async ({ streamer, adapter }) => {
|
|
291
|
+
(0, helpers_1.ensureSqlAdapter)(adapter);
|
|
282
292
|
state.streamer = streamer;
|
|
283
293
|
state.adapter = adapter;
|
|
284
294
|
await initializeTokenTables();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.contract.js","sourceRoot":"","sources":["../../src/contracts/token.contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"token.contract.js","sourceRoot":"","sources":["../../src/contracts/token.contract.ts"],"names":[],"mappings":"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"}
|