hive-stream 2.0.5 → 3.0.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 (89) hide show
  1. package/.claude/settings.local.json +12 -0
  2. package/.env.example +2 -2
  3. package/.travis.yml +11 -11
  4. package/CHANGELOG.md +166 -0
  5. package/CLAUDE.md +75 -0
  6. package/LICENSE +21 -21
  7. package/README.md +338 -238
  8. package/dist/actions.d.ts +41 -10
  9. package/dist/actions.js +126 -23
  10. package/dist/actions.js.map +1 -1
  11. package/dist/adapters/base.adapter.d.ts +25 -25
  12. package/dist/adapters/base.adapter.js +63 -49
  13. package/dist/adapters/base.adapter.js.map +1 -1
  14. package/dist/adapters/mongodb.adapter.d.ts +50 -37
  15. package/dist/adapters/mongodb.adapter.js +363 -158
  16. package/dist/adapters/mongodb.adapter.js.map +1 -1
  17. package/dist/adapters/postgresql.adapter.d.ts +49 -0
  18. package/dist/adapters/postgresql.adapter.js +507 -0
  19. package/dist/adapters/postgresql.adapter.js.map +1 -0
  20. package/dist/adapters/sqlite.adapter.d.ts +40 -41
  21. package/dist/adapters/sqlite.adapter.js +470 -397
  22. package/dist/adapters/sqlite.adapter.js.map +1 -1
  23. package/dist/api.d.ts +6 -6
  24. package/dist/api.js +95 -55
  25. package/dist/api.js.map +1 -1
  26. package/dist/config.d.ts +16 -16
  27. package/dist/config.js +18 -18
  28. package/dist/config.js.map +1 -1
  29. package/dist/contracts/coinflip.contract.d.ts +27 -14
  30. package/dist/contracts/coinflip.contract.js +253 -94
  31. package/dist/contracts/coinflip.contract.js.map +1 -1
  32. package/dist/contracts/dice.contract.d.ts +37 -29
  33. package/dist/contracts/dice.contract.js +282 -155
  34. package/dist/contracts/dice.contract.js.map +1 -1
  35. package/dist/contracts/lotto.contract.d.ts +20 -20
  36. package/dist/contracts/lotto.contract.js +246 -246
  37. package/dist/contracts/nft.contract.d.ts +24 -0
  38. package/dist/contracts/nft.contract.js +533 -0
  39. package/dist/contracts/nft.contract.js.map +1 -0
  40. package/dist/contracts/token.contract.d.ts +18 -0
  41. package/dist/contracts/token.contract.js +263 -0
  42. package/dist/contracts/token.contract.js.map +1 -0
  43. package/dist/exchanges/bittrex.d.ts +6 -6
  44. package/dist/exchanges/bittrex.js +34 -34
  45. package/dist/exchanges/coingecko.d.ts +5 -0
  46. package/dist/exchanges/coingecko.js +40 -0
  47. package/dist/exchanges/coingecko.js.map +1 -0
  48. package/dist/exchanges/exchange.d.ts +9 -9
  49. package/dist/exchanges/exchange.js +26 -26
  50. package/dist/hive-rates.d.ts +9 -9
  51. package/dist/hive-rates.js +121 -75
  52. package/dist/hive-rates.js.map +1 -1
  53. package/dist/index.d.ts +12 -11
  54. package/dist/index.js +33 -32
  55. package/dist/index.js.map +1 -1
  56. package/dist/streamer.d.ts +140 -93
  57. package/dist/streamer.js +793 -545
  58. package/dist/streamer.js.map +1 -1
  59. package/dist/test.d.ts +1 -1
  60. package/dist/test.js +25 -25
  61. package/dist/test.js.map +1 -1
  62. package/dist/types/hive-stream.d.ts +35 -6
  63. package/dist/types/hive-stream.js +2 -2
  64. package/dist/utils.d.ts +27 -27
  65. package/dist/utils.js +271 -261
  66. package/dist/utils.js.map +1 -1
  67. package/ecosystem.config.js +17 -17
  68. package/jest.config.js +8 -8
  69. package/package.json +53 -48
  70. package/test-contract-block.md +18 -18
  71. package/tests/actions.spec.ts +252 -0
  72. package/tests/adapters/actions-persistence.spec.ts +144 -0
  73. package/tests/adapters/postgresql.adapter.spec.ts +127 -0
  74. package/tests/adapters/sqlite.adapter.spec.ts +180 -42
  75. package/tests/contracts/coinflip.contract.spec.ts +221 -131
  76. package/tests/contracts/dice.contract.spec.ts +202 -159
  77. package/tests/contracts/entrants.json +728 -728
  78. package/tests/contracts/lotto.contract.spec.ts +323 -323
  79. package/tests/contracts/nft.contract.spec.ts +948 -0
  80. package/tests/contracts/token.contract.spec.ts +334 -0
  81. package/tests/helpers/mock-adapter.ts +214 -0
  82. package/tests/setup.ts +29 -18
  83. package/tests/streamer-actions.spec.ts +263 -0
  84. package/tests/streamer.spec.ts +248 -151
  85. package/tests/utils.spec.ts +91 -94
  86. package/tsconfig.build.json +3 -22
  87. package/tslint.json +20 -20
  88. package/wallaby.js +26 -26
  89. package/.env +0 -3
@@ -1,156 +1,283 @@
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.DiceContract = void 0;
7
- const seedrandom_1 = __importDefault(require("seedrandom"));
8
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
- const CONTRACT_NAME = 'hivedice';
10
- const ACCOUNT = 'beggars';
11
- const TOKEN_SYMBOL = 'HIVE';
12
- const HOUSE_EDGE = 0.05;
13
- const MIN_BET = 1;
14
- const MAX_BET = 10;
15
- // Random Number Generator
16
- const rng = (previousBlockId, blockId, transactionId) => {
17
- const random = (0, seedrandom_1.default)(`${previousBlockId}${blockId}${transactionId}`).double();
18
- const randomRoll = Math.floor(random * 100) + 1;
19
- return randomRoll;
20
- };
21
- // Valid betting currencies
22
- const VALID_CURRENCIES = ['HIVE'];
23
- class DiceContract {
24
- // tslint:disable-next-line: variable-name
25
- _instance;
26
- blockNumber;
27
- blockId;
28
- previousBlockId;
29
- transactionId;
30
- create() {
31
- // Runs every time register is called on this contract
32
- // Do setup logic and code in here (creating a database, etc)
33
- }
34
- destroy() {
35
- // Runs every time unregister is run for this contract
36
- // Close database connections, write to a database with state, etc
37
- }
38
- // Updates the contract with information about the current block
39
- // This is a method automatically called if it exists
40
- updateBlockInfo(blockNumber, blockId, previousBlockId, transactionId) {
41
- // Lifecycle method which sets block info
42
- this.blockNumber = blockNumber;
43
- this.blockId = blockId;
44
- this.previousBlockId = previousBlockId;
45
- this.transactionId = transactionId;
46
- }
47
- /**
48
- * Get Balance
49
- *
50
- * Helper method for getting the contract account balance. In the case of our dice contract
51
- * we want to make sure the account has enough money to pay out any bets
52
- *
53
- * @returns number
54
- */
55
- async getBalance() {
56
- const account = await this._instance['client'].database.getAccounts([ACCOUNT]);
57
- if (account?.[0]) {
58
- const balance = account[0].balance.split(' ');
59
- const amount = balance[0];
60
- return parseFloat(amount);
61
- }
62
- return null;
63
- }
64
- /**
65
- * Roll
66
- *
67
- * Automatically called when a custom JSON action matches the following method
68
- *
69
- * @param payload
70
- * @param param1 - sender and amount
71
- */
72
- async roll(payload, { sender, amount }) {
73
- try {
74
- // Destructure the values from the payload
75
- const { roll } = payload;
76
- // The amount is formatted like 100 HIVE
77
- // The value is the first part, the currency symbol is the second
78
- const amountTrim = amount.split(' ');
79
- // Parse the numeric value as a real value
80
- const amountParsed = parseFloat(amountTrim[0]);
81
- // Format the amount to 3 decimal places
82
- const amountFormatted = parseFloat(amountTrim[0]).toFixed(3);
83
- // Trim any space from the currency symbol
84
- const amountCurrency = amountTrim[1].trim();
85
- // console.log(`Roll: ${roll}
86
- // Amount parsed: ${amountParsed}
87
- // Amount formatted: ${amountFormatted}
88
- // Currency: ${amountCurrency}`);
89
- // Get the transaction from the blockchain
90
- const transaction = await this._instance.getTransaction(this.blockNumber, this.transactionId);
91
- // Call the verifyTransfer method to confirm the transfer happened
92
- const verify = await this._instance.verifyTransfer(transaction, sender, 'beggars', amount);
93
- // Get the balance of our contract account
94
- const balance = await this.getBalance();
95
- // Transfer is valid
96
- if (verify) {
97
- // Server balance is less than the max bet, cancel and refund
98
- if (balance < MAX_BET) {
99
- // Send back what was sent, the server is broke
100
- await this._instance.transferHiveTokens(ACCOUNT, sender, amountTrim[0], amountTrim[1], `[Refund] The server could not fufill your bet.`);
101
- return;
102
- }
103
- // Bet amount is valid
104
- if (amountParsed >= MIN_BET && amountParsed <= MAX_BET) {
105
- // Validate roll is valid
106
- if ((roll >= 2 && roll <= 96) && VALID_CURRENCIES.includes(amountCurrency)) {
107
- // Roll a random value
108
- const random = rng(this.previousBlockId, this.blockId, this.transactionId);
109
- // Calculate the multiplier percentage
110
- const multiplier = new bignumber_js_1.default(1).minus(HOUSE_EDGE).multipliedBy(100).dividedBy(roll);
111
- // Calculate the number of tokens won
112
- const tokensWon = new bignumber_js_1.default(amountParsed).multipliedBy(multiplier).toFixed(3, bignumber_js_1.default.ROUND_DOWN);
113
- // Memo that shows in users memo when they win
114
- const winningMemo = `You won ${tokensWon} ${TOKEN_SYMBOL}. Roll: ${random}, Your guess: ${roll}`;
115
- // Memo that shows in users memo when they lose
116
- const losingMemo = `You lost ${amountParsed} ${TOKEN_SYMBOL}. Roll: ${random}, Your guess: ${roll}`;
117
- // User won more than the server can afford, refund the bet amount
118
- if (parseFloat(tokensWon) > balance) {
119
- await this._instance.transferHiveTokens(ACCOUNT, sender, amountTrim[0], amountTrim[1], `[Refund] The server could not fufill your bet.`);
120
- return;
121
- }
122
- // If random value is less than roll
123
- if (random < roll) {
124
- await this._instance.transferHiveTokens(ACCOUNT, sender, tokensWon, TOKEN_SYMBOL, winningMemo);
125
- }
126
- else {
127
- await this._instance.transferHiveTokens(ACCOUNT, sender, '0.001', TOKEN_SYMBOL, losingMemo);
128
- }
129
- }
130
- else {
131
- // Invalid bet parameters, refund the user their bet
132
- await this._instance.transferHiveTokens(ACCOUNT, sender, amountTrim[0], amountTrim[1], `[Refund] Invalid bet params.`);
133
- }
134
- }
135
- else {
136
- try {
137
- // We need to refund the user
138
- await this._instance.transferHiveTokens(ACCOUNT, sender, amountTrim[0], amountTrim[1], `[Refund] You sent an invalid bet amount.`);
139
- }
140
- catch (e) {
141
- console.log(e);
142
- }
143
- }
144
- }
145
- }
146
- catch (e) {
147
- throw e;
148
- }
149
- }
150
- // Called by our time-based action
151
- testauto() {
152
- console.log('test');
153
- }
154
- }
155
- exports.DiceContract = DiceContract;
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.DiceContract = void 0;
7
+ const seedrandom_1 = __importDefault(require("seedrandom"));
8
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
+ const CONTRACT_NAME = 'hivedice';
10
+ const ACCOUNT = 'beggars';
11
+ const TOKEN_SYMBOL = 'HIVE';
12
+ const HOUSE_EDGE = 0.05;
13
+ const MIN_BET = 1;
14
+ const MAX_BET = 10;
15
+ // Provably Fair Random Number Generator
16
+ // Uses deterministic blockchain data to ensure results are verifiable by users
17
+ // This is the correct approach for transparent, auditable gambling systems
18
+ const rng = (previousBlockId, blockId, transactionId) => {
19
+ // Validate inputs to prevent manipulation
20
+ if (!previousBlockId || !blockId || !transactionId) {
21
+ throw new Error('Invalid RNG parameters');
22
+ }
23
+ const random = (0, seedrandom_1.default)(`${previousBlockId}${blockId}${transactionId}`).double();
24
+ const randomRoll = Math.floor(random * 100) + 1;
25
+ // Ensure result is within expected range
26
+ if (randomRoll < 1 || randomRoll > 100) {
27
+ throw new Error('RNG generated invalid result');
28
+ }
29
+ return randomRoll;
30
+ };
31
+ // Valid betting currencies
32
+ const VALID_CURRENCIES = ['HIVE'];
33
+ class DiceContract {
34
+ _instance;
35
+ blockNumber;
36
+ blockId;
37
+ previousBlockId;
38
+ transactionId;
39
+ // Cache for account balance to reduce API calls
40
+ balanceCache = null;
41
+ balanceCacheTimeout = 30000; // 30 seconds
42
+ // Queue system for processing bets to prevent race conditions
43
+ betQueue = [];
44
+ processingQueue = false;
45
+ pendingPayouts = new bignumber_js_1.default(0);
46
+ create() {
47
+ // Runs every time register is called on this contract
48
+ // Do setup logic and code in here (creating a database, etc)
49
+ }
50
+ destroy() {
51
+ // Runs every time unregister is run for this contract
52
+ // Close database connections, write to a database with state, etc
53
+ }
54
+ // Updates the contract with information about the current block
55
+ // This is a method automatically called if it exists
56
+ updateBlockInfo(blockNumber, blockId, previousBlockId, transactionId) {
57
+ // Lifecycle method which sets block info
58
+ this.blockNumber = blockNumber;
59
+ this.blockId = blockId;
60
+ this.previousBlockId = previousBlockId;
61
+ this.transactionId = transactionId;
62
+ }
63
+ /**
64
+ * Get Balance
65
+ *
66
+ * Helper method for getting the contract account balance with caching
67
+ * We cache the balance to reduce API calls since it doesn't change frequently
68
+ *
69
+ * @returns number
70
+ */
71
+ async getBalance() {
72
+ const now = Date.now();
73
+ // Return cached balance if still valid
74
+ if (this.balanceCache && (now - this.balanceCache.timestamp) < this.balanceCacheTimeout) {
75
+ return this.balanceCache.balance;
76
+ }
77
+ try {
78
+ const account = await this._instance['client'].database.getAccounts([ACCOUNT]);
79
+ if (account?.[0]) {
80
+ const balance = account[0].balance.split(' ');
81
+ const amount = new bignumber_js_1.default(balance[0]);
82
+ // Validate the amount is a valid number
83
+ if (amount.isNaN() || !amount.isFinite()) {
84
+ throw new Error('Invalid balance format received from API');
85
+ }
86
+ // Cache the balance
87
+ this.balanceCache = {
88
+ balance: amount,
89
+ timestamp: now
90
+ };
91
+ return amount;
92
+ }
93
+ }
94
+ catch (error) {
95
+ console.error('[DiceContainer] Error fetching balance:', error);
96
+ // Return cached balance if available, even if expired
97
+ if (this.balanceCache) {
98
+ return this.balanceCache.balance;
99
+ }
100
+ }
101
+ return new bignumber_js_1.default(0);
102
+ }
103
+ /**
104
+ * Roll
105
+ *
106
+ * Automatically called when a custom JSON action matches the following method
107
+ *
108
+ * @param payload
109
+ * @param param1 - sender and amount
110
+ */
111
+ async roll(payload, { sender, amount }) {
112
+ // Add bet to queue for processing
113
+ return new Promise((resolve, reject) => {
114
+ this.betQueue.push(async () => {
115
+ try {
116
+ await this.processRoll(payload, { sender, amount });
117
+ resolve();
118
+ }
119
+ catch (error) {
120
+ reject(error);
121
+ }
122
+ });
123
+ // Start processing queue if not already running
124
+ this.processQueue();
125
+ });
126
+ }
127
+ async processQueue() {
128
+ if (this.processingQueue || this.betQueue.length === 0) {
129
+ return;
130
+ }
131
+ this.processingQueue = true;
132
+ while (this.betQueue.length > 0) {
133
+ const nextBet = this.betQueue.shift();
134
+ if (nextBet) {
135
+ try {
136
+ await nextBet();
137
+ }
138
+ catch (error) {
139
+ console.error('[DiceContract] Queue processing error:', error);
140
+ }
141
+ }
142
+ }
143
+ this.processingQueue = false;
144
+ }
145
+ async processRoll(payload, { sender, amount }) {
146
+ try {
147
+ // Validate payload structure
148
+ if (!payload || typeof payload.roll !== 'number') {
149
+ throw new Error('Invalid payload structure');
150
+ }
151
+ // Destructure the values from the payload
152
+ const { roll } = payload;
153
+ // Validate amount format
154
+ if (!amount || typeof amount !== 'string' || !amount.includes(' ')) {
155
+ throw new Error('Invalid amount format');
156
+ }
157
+ // The amount is formatted like 100 HIVE
158
+ // The value is the first part, the currency symbol is the second
159
+ const amountTrim = amount.split(' ');
160
+ if (amountTrim.length !== 2) {
161
+ throw new Error('Invalid amount format');
162
+ }
163
+ // Parse the numeric value using BigNumber for precision
164
+ const amountParsed = new bignumber_js_1.default(amountTrim[0]);
165
+ // Validate the parsed amount
166
+ if (amountParsed.isNaN() || !amountParsed.isFinite() || amountParsed.isNegative()) {
167
+ throw new Error('Invalid amount value');
168
+ }
169
+ // Format the amount to 3 decimal places
170
+ const amountFormatted = amountParsed.toFixed(3);
171
+ // Trim any space from the currency symbol
172
+ const amountCurrency = amountTrim[1].trim();
173
+ // console.log(`Roll: ${roll}
174
+ // Amount parsed: ${amountParsed}
175
+ // Amount formatted: ${amountFormatted}
176
+ // Currency: ${amountCurrency}`);
177
+ // Get the transaction from the blockchain
178
+ const transaction = await this._instance.getTransaction(this.blockNumber, this.transactionId);
179
+ // Call the verifyTransfer method to confirm the transfer happened
180
+ const verify = await this._instance.verifyTransfer(transaction, sender, 'beggars', amount);
181
+ // Get the balance of our contract account
182
+ const balance = await this.getBalance();
183
+ // Calculate available balance (total - pending payouts)
184
+ const availableBalance = balance.minus(this.pendingPayouts);
185
+ // Transfer is valid
186
+ if (verify) {
187
+ // Server balance is less than the minimum required, cancel and refund
188
+ if (availableBalance.isLessThan(new bignumber_js_1.default(MIN_BET * 2))) {
189
+ // Send back what was sent, the server is broke
190
+ await this._instance.transferHiveTokens(ACCOUNT, sender, amountTrim[0], amountTrim[1], `[Refund] The server could not fulfill your bet.`);
191
+ return;
192
+ }
193
+ // Bet amount is valid
194
+ if (amountParsed.isGreaterThanOrEqualTo(MIN_BET) && amountParsed.isLessThanOrEqualTo(MAX_BET)) {
195
+ // Validate roll is valid (integer between 2-96)
196
+ if (Number.isInteger(roll) && roll >= 2 && roll <= 96 && VALID_CURRENCIES.includes(amountCurrency)) {
197
+ // Calculate the multiplier percentage
198
+ const multiplier = new bignumber_js_1.default(1).minus(HOUSE_EDGE).multipliedBy(100).dividedBy(roll);
199
+ // Calculate the number of tokens won
200
+ const tokensWonBN = amountParsed.multipliedBy(multiplier);
201
+ const tokensWon = tokensWonBN.toFixed(3, bignumber_js_1.default.ROUND_DOWN);
202
+ // User won more than the server can afford, refund the bet amount
203
+ if (tokensWonBN.isGreaterThan(availableBalance)) {
204
+ await this._instance.transferHiveTokens(ACCOUNT, sender, amountTrim[0], amountTrim[1], `[Refund] The server could not fulfill your bet.`);
205
+ return;
206
+ }
207
+ // Reserve the potential payout
208
+ this.pendingPayouts = this.pendingPayouts.plus(tokensWonBN);
209
+ // Generate cryptographically secure random number
210
+ // Note: This is still deterministic based on blockchain data
211
+ // In production, consider using a commit-reveal scheme
212
+ const random = rng(this.previousBlockId, this.blockId, this.transactionId);
213
+ // Memo that shows in users memo when they win
214
+ const winningMemo = `You won ${tokensWon} ${TOKEN_SYMBOL}. Roll: ${random}, Your guess: ${roll}`;
215
+ // Memo that shows in users memo when they lose
216
+ const losingMemo = `You lost ${amountParsed.toFixed(3)} ${TOKEN_SYMBOL}. Roll: ${random}, Your guess: ${roll}`;
217
+ try {
218
+ // If random value is less than roll
219
+ if (random < roll) {
220
+ await this._instance.transferHiveTokens(ACCOUNT, sender, tokensWon, TOKEN_SYMBOL, winningMemo);
221
+ }
222
+ else {
223
+ await this._instance.transferHiveTokens(ACCOUNT, sender, '0.001', TOKEN_SYMBOL, losingMemo);
224
+ }
225
+ }
226
+ finally {
227
+ // Release the reserved payout
228
+ this.pendingPayouts = this.pendingPayouts.minus(tokensWonBN);
229
+ }
230
+ }
231
+ else {
232
+ // Invalid bet parameters, refund the user their bet
233
+ await this._instance.transferHiveTokens(ACCOUNT, sender, amountTrim[0], amountTrim[1], `[Refund] Invalid bet params.`);
234
+ }
235
+ }
236
+ else {
237
+ try {
238
+ // We need to refund the user
239
+ await this._instance.transferHiveTokens(ACCOUNT, sender, amountTrim[0], amountTrim[1], `[Refund] You sent an invalid bet amount.`);
240
+ }
241
+ catch (e) {
242
+ const error = e instanceof Error ? e : new Error(String(e));
243
+ console.error(`[DiceContract] Refund error: ${error.message}`, {
244
+ sender,
245
+ amount: amountTrim[0],
246
+ currency: amountTrim[1],
247
+ stack: error.stack
248
+ });
249
+ }
250
+ }
251
+ }
252
+ }
253
+ catch (e) {
254
+ const error = e instanceof Error ? e : new Error(String(e));
255
+ console.error(`[DiceContract] Roll processing error: ${error.message}`, {
256
+ sender,
257
+ amount,
258
+ payload,
259
+ stack: error.stack
260
+ });
261
+ // Attempt to refund on error if amount is valid
262
+ try {
263
+ if (amount && typeof amount === 'string' && amount.includes(' ')) {
264
+ const [amountStr, currency] = amount.split(' ');
265
+ const amountBN = new bignumber_js_1.default(amountStr);
266
+ if (!amountBN.isNaN() && amountBN.isFinite() && !amountBN.isNegative()) {
267
+ await this._instance.transferHiveTokens(ACCOUNT, sender, amountStr, currency, '[Refund] Processing error occurred.');
268
+ }
269
+ }
270
+ }
271
+ catch (refundError) {
272
+ console.error(`[DiceContract] Failed to refund after error:`, refundError);
273
+ }
274
+ throw error;
275
+ }
276
+ }
277
+ // Called by our time-based action
278
+ testauto() {
279
+ console.log('test');
280
+ }
281
+ }
282
+ exports.DiceContract = DiceContract;
156
283
  //# sourceMappingURL=dice.contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dice.contract.js","sourceRoot":"","sources":["../../src/contracts/dice.contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dice.contract.js","sourceRoot":"","sources":["../../src/contracts/dice.contract.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,20 @@
1
- export declare class LottoContract {
2
- private _instance;
3
- private adapter;
4
- private blockNumber;
5
- private blockId;
6
- private previousBlockId;
7
- private transactionId;
8
- create(): Promise<void>;
9
- destroy(): void;
10
- updateBlockInfo(blockNumber: any, blockId: any, previousBlockId: any, transactionId: any): void;
11
- getBalance(): Promise<number>;
12
- getPreviousUserTicketsForCurrentDrawType(type: string, account: string): Promise<number>;
13
- buy(payload: any, { sender, amount }: {
14
- sender: any;
15
- amount: any;
16
- }): Promise<any>;
17
- drawHourlyLottery(): Promise<any[]>;
18
- drawDailyLottery(): Promise<any[]>;
19
- getWinners(count: number, entries: any[]): Promise<any[]>;
20
- }
1
+ export declare class LottoContract {
2
+ private _instance;
3
+ private adapter;
4
+ private blockNumber;
5
+ private blockId;
6
+ private previousBlockId;
7
+ private transactionId;
8
+ create(): Promise<void>;
9
+ destroy(): void;
10
+ updateBlockInfo(blockNumber: any, blockId: any, previousBlockId: any, transactionId: any): void;
11
+ getBalance(): Promise<number>;
12
+ getPreviousUserTicketsForCurrentDrawType(type: string, account: string): Promise<number>;
13
+ buy(payload: any, { sender, amount }: {
14
+ sender: any;
15
+ amount: any;
16
+ }): Promise<any>;
17
+ drawHourlyLottery(): Promise<any[]>;
18
+ drawDailyLottery(): Promise<any[]>;
19
+ getWinners(count: number, entries: any[]): Promise<any[]>;
20
+ }