@aurigami/sdk 1.12.0-beta1 → 1.12.0-beta3

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.
@@ -116,7 +116,7 @@ var networkAddresses = {
116
116
  PLY_TOKEN_LOCK: /*#__PURE__*/MAINNET_ADDRESSES.plyTokenLock.toLowerCase(),
117
117
  REFERRAL: /*#__PURE__*/MAINNET_ADDRESSES.referralDirectory.toLowerCase(),
118
118
  AURI_INTERNAL_LENS: /*#__PURE__*/MAINNET_ADDRESSES.auriInternalLens.toLowerCase(),
119
- PLYGAME: /*#__PURE__*/'0x60bf668CA101060BD83BD644531a38719586B89f'.toLowerCase()
119
+ PLYGAME: /*#__PURE__*/MAINNET_ADDRESSES.plyGame.toLowerCase()
120
120
  },
121
121
  tokens: {
122
122
  AURORA: /*#__PURE__*/'0x8bec47865ade3b172a928df8f990bc7f2a3b9f79'.toLowerCase(),
@@ -1213,6 +1213,30 @@ var isSameAddress = function isSameAddress(address1, address2) {
1213
1213
  var getCurrentTimestamp = function getCurrentTimestamp() {
1214
1214
  return Math.trunc(Date.now() / 1000);
1215
1215
  };
1216
+ function sleep(_x) {
1217
+ return _sleep.apply(this, arguments);
1218
+ }
1219
+
1220
+ function _sleep() {
1221
+ _sleep = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(duration) {
1222
+ return runtime_1.wrap(function _callee$(_context) {
1223
+ while (1) {
1224
+ switch (_context.prev = _context.next) {
1225
+ case 0:
1226
+ return _context.abrupt("return", new Promise(function (resolve) {
1227
+ setTimeout(resolve, duration);
1228
+ }));
1229
+
1230
+ case 1:
1231
+ case "end":
1232
+ return _context.stop();
1233
+ }
1234
+ }
1235
+ }, _callee);
1236
+ }));
1237
+ return _sleep.apply(this, arguments);
1238
+ }
1239
+
1216
1240
  function validateAndParseAddress(address) {
1217
1241
  try {
1218
1242
  return ethers.utils.getAddress(address);
@@ -1254,35 +1278,35 @@ function calcLMRewardApr(rewardsValue, totalStakeValue, frequencyPerYear) {
1254
1278
 
1255
1279
  return rewardsValue.multipliedBy(frequencyPerYear).dividedBy(totalStakeValue);
1256
1280
  }
1257
- function getBlockTimestamp(_x, _x2) {
1281
+ function getBlockTimestamp(_x2, _x3) {
1258
1282
  return _getBlockTimestamp.apply(this, arguments);
1259
1283
  }
1260
1284
 
1261
1285
  function _getBlockTimestamp() {
1262
- _getBlockTimestamp = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(provider, blockNumber) {
1286
+ _getBlockTimestamp = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(provider, blockNumber) {
1263
1287
  var block;
1264
- return runtime_1.wrap(function _callee$(_context) {
1288
+ return runtime_1.wrap(function _callee2$(_context2) {
1265
1289
  while (1) {
1266
- switch (_context.prev = _context.next) {
1290
+ switch (_context2.prev = _context2.next) {
1267
1291
  case 0:
1268
- _context.next = 2;
1292
+ _context2.next = 2;
1269
1293
  return provider.getBlock(blockNumber);
1270
1294
 
1271
1295
  case 2:
1272
- block = _context.sent;
1273
- return _context.abrupt("return", block.timestamp);
1296
+ block = _context2.sent;
1297
+ return _context2.abrupt("return", block.timestamp);
1274
1298
 
1275
1299
  case 4:
1276
1300
  case "end":
1277
- return _context.stop();
1301
+ return _context2.stop();
1278
1302
  }
1279
1303
  }
1280
- }, _callee);
1304
+ }, _callee2);
1281
1305
  }));
1282
1306
  return _getBlockTimestamp.apply(this, arguments);
1283
1307
  }
1284
1308
 
1285
- function getBlocksTimestampViaRPC(_x3, _x4) {
1309
+ function getBlocksTimestampViaRPC(_x4, _x5) {
1286
1310
  return _getBlocksTimestampViaRPC.apply(this, arguments);
1287
1311
  }
1288
1312
  /**
@@ -1292,11 +1316,11 @@ function getBlocksTimestampViaRPC(_x3, _x4) {
1292
1316
  */
1293
1317
 
1294
1318
  function _getBlocksTimestampViaRPC() {
1295
- _getBlocksTimestampViaRPC = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee3(provider, blocksNumber) {
1319
+ _getBlocksTimestampViaRPC = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee4(provider, blocksNumber) {
1296
1320
  var CHUNK_SIZE, results, i, slice, promises;
1297
- return runtime_1.wrap(function _callee3$(_context3) {
1321
+ return runtime_1.wrap(function _callee4$(_context4) {
1298
1322
  while (1) {
1299
- switch (_context3.prev = _context3.next) {
1323
+ switch (_context4.prev = _context4.next) {
1300
1324
  case 0:
1301
1325
  // Promise all 200 blocks at a time, using too many blocks at once will cause the RPC call timeout.
1302
1326
  CHUNK_SIZE = 200;
@@ -1305,58 +1329,58 @@ function _getBlocksTimestampViaRPC() {
1305
1329
 
1306
1330
  case 3:
1307
1331
  if (!(i < blocksNumber.length)) {
1308
- _context3.next = 14;
1332
+ _context4.next = 14;
1309
1333
  break;
1310
1334
  }
1311
1335
 
1312
1336
  slice = blocksNumber.slice(i, i + CHUNK_SIZE);
1313
1337
  promises = slice.map( /*#__PURE__*/function () {
1314
- var _ref = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(blockNumber) {
1315
- return runtime_1.wrap(function _callee2$(_context2) {
1338
+ var _ref = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee3(blockNumber) {
1339
+ return runtime_1.wrap(function _callee3$(_context3) {
1316
1340
  while (1) {
1317
- switch (_context2.prev = _context2.next) {
1341
+ switch (_context3.prev = _context3.next) {
1318
1342
  case 0:
1319
- return _context2.abrupt("return", getBlockTimestamp(provider, blockNumber));
1343
+ return _context3.abrupt("return", getBlockTimestamp(provider, blockNumber));
1320
1344
 
1321
1345
  case 1:
1322
1346
  case "end":
1323
- return _context2.stop();
1347
+ return _context3.stop();
1324
1348
  }
1325
1349
  }
1326
- }, _callee2);
1350
+ }, _callee3);
1327
1351
  }));
1328
1352
 
1329
- return function (_x9) {
1353
+ return function (_x10) {
1330
1354
  return _ref.apply(this, arguments);
1331
1355
  };
1332
1356
  }());
1333
- _context3.t0 = results;
1334
- _context3.next = 9;
1357
+ _context4.t0 = results;
1358
+ _context4.next = 9;
1335
1359
  return Promise.all(promises);
1336
1360
 
1337
1361
  case 9:
1338
- _context3.t1 = _context3.sent;
1339
- results = _context3.t0.concat.call(_context3.t0, _context3.t1);
1362
+ _context4.t1 = _context4.sent;
1363
+ results = _context4.t0.concat.call(_context4.t0, _context4.t1);
1340
1364
 
1341
1365
  case 11:
1342
1366
  i += CHUNK_SIZE;
1343
- _context3.next = 3;
1367
+ _context4.next = 3;
1344
1368
  break;
1345
1369
 
1346
1370
  case 14:
1347
- return _context3.abrupt("return", results);
1371
+ return _context4.abrupt("return", results);
1348
1372
 
1349
1373
  case 15:
1350
1374
  case "end":
1351
- return _context3.stop();
1375
+ return _context4.stop();
1352
1376
  }
1353
1377
  }
1354
- }, _callee3);
1378
+ }, _callee4);
1355
1379
  }));
1356
1380
  return _getBlocksTimestampViaRPC.apply(this, arguments);
1357
1381
  }
1358
1382
 
1359
- function getBlocksTimestamp(_x5, _x6) {
1383
+ function getBlocksTimestamp(_x6, _x7) {
1360
1384
  return _getBlocksTimestamp.apply(this, arguments);
1361
1385
  }
1362
1386
  /**
@@ -1369,18 +1393,18 @@ function getBlocksTimestamp(_x5, _x6) {
1369
1393
  */
1370
1394
 
1371
1395
  function _getBlocksTimestamp() {
1372
- _getBlocksTimestamp = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee4(provider, blockNumbers) {
1396
+ _getBlocksTimestamp = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee5(provider, blockNumbers) {
1373
1397
  var CHUNK_SIZE, promises, lines, i, query, results, missingBlocks, missingBlocksTimestamps;
1374
- return runtime_1.wrap(function _callee4$(_context4) {
1398
+ return runtime_1.wrap(function _callee5$(_context5) {
1375
1399
  while (1) {
1376
- switch (_context4.prev = _context4.next) {
1400
+ switch (_context5.prev = _context5.next) {
1377
1401
  case 0:
1378
1402
  if (!(blockNumbers.length == 0)) {
1379
- _context4.next = 2;
1403
+ _context5.next = 2;
1380
1404
  break;
1381
1405
  }
1382
1406
 
1383
- return _context4.abrupt("return", []);
1407
+ return _context5.abrupt("return", []);
1384
1408
 
1385
1409
  case 2:
1386
1410
  CHUNK_SIZE = 100; // graphql query limit
@@ -1396,11 +1420,11 @@ function _getBlocksTimestamp() {
1396
1420
  } // merge all the json objects
1397
1421
 
1398
1422
 
1399
- _context4.next = 8;
1423
+ _context5.next = 8;
1400
1424
  return Promise.all(promises);
1401
1425
 
1402
1426
  case 8:
1403
- results = _context4.sent.reduce(function (acc, cur) {
1427
+ results = _context5.sent.reduce(function (acc, cur) {
1404
1428
  return _extends({}, acc, cur);
1405
1429
  });
1406
1430
  missingBlocks = blockNumbers.filter(function (blockNumber) {
@@ -1411,71 +1435,71 @@ function _getBlocksTimestamp() {
1411
1435
  devLog("These blocks are missing from Aurora GraphQL endpoint: " + missingBlocks.join(', '));
1412
1436
  }
1413
1437
 
1414
- _context4.next = 13;
1438
+ _context5.next = 13;
1415
1439
  return getBlocksTimestampViaRPC(provider, missingBlocks);
1416
1440
 
1417
1441
  case 13:
1418
- missingBlocksTimestamps = _context4.sent;
1442
+ missingBlocksTimestamps = _context5.sent;
1419
1443
  missingBlocksTimestamps.forEach(function (timestamp, index) {
1420
1444
  results["b" + missingBlocks[index]] = {
1421
1445
  timestamp: new Date(timestamp * 1000).toISOString()
1422
1446
  };
1423
1447
  });
1424
- return _context4.abrupt("return", blockNumbers.map(function (blockNumber) {
1448
+ return _context5.abrupt("return", blockNumbers.map(function (blockNumber) {
1425
1449
  return Math.trunc(new Date(results["b" + blockNumber].timestamp).getTime() / 1000);
1426
1450
  }));
1427
1451
 
1428
1452
  case 16:
1429
1453
  case "end":
1430
- return _context4.stop();
1454
+ return _context5.stop();
1431
1455
  }
1432
1456
  }
1433
- }, _callee4);
1457
+ }, _callee5);
1434
1458
  }));
1435
1459
  return _getBlocksTimestamp.apply(this, arguments);
1436
1460
  }
1437
1461
 
1438
- function getBlockBeforeTimestamp(_x7, _x8) {
1462
+ function getBlockBeforeTimestamp(_x8, _x9) {
1439
1463
  return _getBlockBeforeTimestamp.apply(this, arguments);
1440
1464
  }
1441
1465
 
1442
1466
  function _getBlockBeforeTimestamp() {
1443
- _getBlockBeforeTimestamp = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee5(provider, timestamp) {
1467
+ _getBlockBeforeTimestamp = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee6(provider, timestamp) {
1444
1468
  var result;
1445
- return runtime_1.wrap(function _callee5$(_context5) {
1469
+ return runtime_1.wrap(function _callee6$(_context6) {
1446
1470
  while (1) {
1447
- switch (_context5.prev = _context5.next) {
1471
+ switch (_context6.prev = _context6.next) {
1448
1472
  case 0:
1449
- _context5.next = 2;
1473
+ _context6.next = 2;
1450
1474
  return getQuery('block', 'getblocknobytime', {
1451
1475
  timestamp: timestamp,
1452
1476
  closest: 'before'
1453
1477
  });
1454
1478
 
1455
1479
  case 2:
1456
- result = _context5.sent;
1457
- _context5.t0 = parseInt(result);
1480
+ result = _context6.sent;
1481
+ _context6.t0 = parseInt(result);
1458
1482
 
1459
- if (_context5.t0) {
1460
- _context5.next = 8;
1483
+ if (_context6.t0) {
1484
+ _context6.next = 8;
1461
1485
  break;
1462
1486
  }
1463
1487
 
1464
- _context5.next = 7;
1488
+ _context6.next = 7;
1465
1489
  return provider.getBlockNumber();
1466
1490
 
1467
1491
  case 7:
1468
- _context5.t0 = _context5.sent;
1492
+ _context6.t0 = _context6.sent;
1469
1493
 
1470
1494
  case 8:
1471
- return _context5.abrupt("return", _context5.t0);
1495
+ return _context6.abrupt("return", _context6.t0);
1472
1496
 
1473
1497
  case 9:
1474
1498
  case "end":
1475
- return _context5.stop();
1499
+ return _context6.stop();
1476
1500
  }
1477
1501
  }
1478
- }, _callee5);
1502
+ }, _callee6);
1479
1503
  }));
1480
1504
  return _getBlockBeforeTimestamp.apply(this, arguments);
1481
1505
  }
@@ -1491,6 +1515,20 @@ function devLog(message) {
1491
1515
  (_console = console).log.apply(_console, ['[DEV LOG]', message].concat(optionalParams));
1492
1516
  }
1493
1517
  }
1518
+ /**
1519
+ * Sorts (in place) an array of Events by blocknumber.
1520
+ * This method mutates the array and returns a reference to the same array.
1521
+ **/
1522
+
1523
+ function sortEvents(events) {
1524
+ return events.sort(function (a, b) {
1525
+ if (a.blockNumber == b.blockNumber) {
1526
+ return a.logIndex - b.logIndex;
1527
+ }
1528
+
1529
+ return a.blockNumber - b.blockNumber;
1530
+ });
1531
+ }
1494
1532
 
1495
1533
  var BlockchainEntityRead = function BlockchainEntityRead(networkConnection) {
1496
1534
  this._networkConnection = networkConnection;
@@ -1755,21 +1793,23 @@ var dummyUserMarketDetails = {
1755
1793
  };
1756
1794
  var referralRewardDummy1 = {
1757
1795
  campaign: 'testa',
1758
- startTime: 1652882400,
1759
- endTime: 1653573599,
1796
+ startTime: /*#__PURE__*/Math.trunc( /*#__PURE__*/new Date(2022, 8, 1).getTime() / 1000),
1797
+ endTime: /*#__PURE__*/Math.trunc( /*#__PURE__*/new Date(2022, 9, 30).getTime() / 1000),
1760
1798
  isReferrer: false,
1761
1799
  rewardTokenAmount: dummyTokenAmount,
1762
1800
  transactionHash: null,
1763
- userAddr: '0x...123'
1801
+ userAddr: '0x...123',
1802
+ refereeAddress: '0x123..123'
1764
1803
  };
1765
1804
  var referralRewardDummy2 = {
1766
1805
  campaign: 'testb',
1767
- startTime: 1652882400,
1768
- endTime: 1653573599,
1806
+ startTime: /*#__PURE__*/Math.trunc( /*#__PURE__*/new Date(2022, 8, 1).getTime() / 1000),
1807
+ endTime: /*#__PURE__*/Math.trunc( /*#__PURE__*/new Date(2022, 8, 31).getTime() / 1000),
1769
1808
  isReferrer: true,
1770
1809
  rewardTokenAmount: dummyTokenAmount2,
1771
1810
  transactionHash: '0x4da9657663b46ef18d150b897b28c7b717f16421978b52e3a06d91b54ca3548b',
1772
- userAddr: '0x...456'
1811
+ userAddr: '0x...456',
1812
+ refereeAddress: '0x123..123'
1773
1813
  };
1774
1814
 
1775
1815
  var AURIGAMI_API_END_POINT = 'https://api.aurigami.finance/app/';
@@ -2589,6 +2629,7 @@ var helpers = {
2589
2629
  decimalFactor: decimalFactor,
2590
2630
  isSameAddress: isSameAddress,
2591
2631
  getCurrentTimestamp: getCurrentTimestamp,
2632
+ sleep: sleep,
2592
2633
  validateAndParseAddress: validateAndParseAddress,
2593
2634
  getDecimal: getDecimal,
2594
2635
  getSymbol: getSymbol,
@@ -2599,6 +2640,7 @@ var helpers = {
2599
2640
  getBlocksTimestamp: getBlocksTimestamp,
2600
2641
  getBlockBeforeTimestamp: getBlockBeforeTimestamp,
2601
2642
  devLog: devLog,
2643
+ sortEvents: sortEvents,
2602
2644
  fetchPriceFromCoingeckoAPI: fetchPriceFromCoingeckoAPI,
2603
2645
  fetchPriceFromCoingecko: fetchPriceFromCoingecko,
2604
2646
  fetchLPPositions: fetchLPPositions,
@@ -4649,11 +4691,14 @@ var PlyGameRead = /*#__PURE__*/function (_BlockchainEntityRead) {
4649
4691
 
4650
4692
  _proto.parseBetMakeEvent = function parseBetMakeEvent(event) {
4651
4693
  var outcome = ['bigWin', 'win', 'lose', 'noImpact'][event.args.outcome];
4652
- var amount = event.args.amount;
4653
- var unlock = amount.mul([10, 1, 0, 0][event.args.outcome]);
4694
+ var betAmount = event.args.amount; // 0%, 0%, 100%, 2%
4695
+ // big win, win, lose, no impact
4696
+
4697
+ var lostAmount = betAmount.mul([0, 0, 100, 2][event.args.outcome]).div(100);
4698
+ var unlock = betAmount.mul([10, 1, 0, 0][event.args.outcome]);
4654
4699
  return {
4655
4700
  player: event.args.player,
4656
- amount: new TokenAmount(this.plyToken, amount.toString()),
4701
+ lostAmount: new TokenAmount(this.plyToken, lostAmount.toString()),
4657
4702
  unlockedPulpAmount: new TokenAmount(this.pulpToken, unlock.toString()),
4658
4703
  outcome: outcome,
4659
4704
  transactionHash: event.transactionHash,
@@ -4733,11 +4778,13 @@ var PlyGameRead = /*#__PURE__*/function (_BlockchainEntityRead) {
4733
4778
 
4734
4779
  case 8:
4735
4780
  events = _context2.sent;
4781
+ // Sort descending by block number
4782
+ sortEvents(events).reverse();
4736
4783
  return _context2.abrupt("return", this.attachTimestamp(events.map(function (event) {
4737
4784
  return _this2.parseBetMakeEvent(event);
4738
4785
  })));
4739
4786
 
4740
- case 10:
4787
+ case 11:
4741
4788
  case "end":
4742
4789
  return _context2.stop();
4743
4790
  }
@@ -4787,49 +4834,26 @@ var PlyGameRead = /*#__PURE__*/function (_BlockchainEntityRead) {
4787
4834
  return currentJackpotAmount;
4788
4835
  }();
4789
4836
 
4790
- _proto.nextJackpotRevealTime = /*#__PURE__*/function () {
4791
- var _nextJackpotRevealTime = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee4() {
4792
- return runtime_1.wrap(function _callee4$(_context4) {
4793
- while (1) {
4794
- switch (_context4.prev = _context4.next) {
4795
- case 0:
4796
- return _context4.abrupt("return", 0);
4797
-
4798
- case 1:
4799
- case "end":
4800
- return _context4.stop();
4801
- }
4802
- }
4803
- }, _callee4);
4804
- }));
4805
-
4806
- function nextJackpotRevealTime() {
4807
- return _nextJackpotRevealTime.apply(this, arguments);
4808
- }
4809
-
4810
- return nextJackpotRevealTime;
4811
- }();
4812
-
4813
4837
  _proto.earlyUnlockedPulpAmount = /*#__PURE__*/function () {
4814
- var _earlyUnlockedPulpAmount = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee5(user) {
4838
+ var _earlyUnlockedPulpAmount = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee4(user) {
4815
4839
  var earlyUnlockedPulpAmount;
4816
- return runtime_1.wrap(function _callee5$(_context5) {
4840
+ return runtime_1.wrap(function _callee4$(_context4) {
4817
4841
  while (1) {
4818
- switch (_context5.prev = _context5.next) {
4842
+ switch (_context4.prev = _context4.next) {
4819
4843
  case 0:
4820
- _context5.next = 2;
4844
+ _context4.next = 2;
4821
4845
  return this.env.plygame.totalPlyUnlockedEarly(user);
4822
4846
 
4823
4847
  case 2:
4824
- earlyUnlockedPulpAmount = _context5.sent;
4825
- return _context5.abrupt("return", new TokenAmount(this.pulpToken, earlyUnlockedPulpAmount.toString()));
4848
+ earlyUnlockedPulpAmount = _context4.sent;
4849
+ return _context4.abrupt("return", new TokenAmount(this.pulpToken, earlyUnlockedPulpAmount.toString()));
4826
4850
 
4827
4851
  case 4:
4828
4852
  case "end":
4829
- return _context5.stop();
4853
+ return _context4.stop();
4830
4854
  }
4831
4855
  }
4832
- }, _callee5, this);
4856
+ }, _callee4, this);
4833
4857
  }));
4834
4858
 
4835
4859
  function earlyUnlockedPulpAmount(_x3) {
@@ -4840,19 +4864,51 @@ var PlyGameRead = /*#__PURE__*/function (_BlockchainEntityRead) {
4840
4864
  }();
4841
4865
 
4842
4866
  _proto.getPlyGameResultsInTransaction = /*#__PURE__*/function () {
4843
- var _getPlyGameResultsInTransaction = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee6(txHash) {
4867
+ var _getPlyGameResultsInTransaction = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee5(txHash) {
4844
4868
  var _this3 = this;
4845
4869
 
4846
- var tx, filter, betMadeEvents;
4847
- return runtime_1.wrap(function _callee6$(_context6) {
4870
+ var tx, i, filter, betMadeEvents;
4871
+ return runtime_1.wrap(function _callee5$(_context5) {
4848
4872
  while (1) {
4849
- switch (_context6.prev = _context6.next) {
4873
+ switch (_context5.prev = _context5.next) {
4850
4874
  case 0:
4851
- _context6.next = 2;
4875
+ _context5.next = 2;
4852
4876
  return this._networkConnection.provider.getTransactionReceipt(txHash);
4853
4877
 
4854
4878
  case 2:
4855
- tx = _context6.sent;
4879
+ tx = _context5.sent;
4880
+ i = 0;
4881
+
4882
+ case 4:
4883
+ if (!(i < 100 && !tx)) {
4884
+ _context5.next = 13;
4885
+ break;
4886
+ }
4887
+
4888
+ _context5.next = 7;
4889
+ return sleep(1000);
4890
+
4891
+ case 7:
4892
+ _context5.next = 9;
4893
+ return this._networkConnection.provider.getTransactionReceipt(txHash);
4894
+
4895
+ case 9:
4896
+ tx = _context5.sent;
4897
+
4898
+ case 10:
4899
+ i++;
4900
+ _context5.next = 4;
4901
+ break;
4902
+
4903
+ case 13:
4904
+ if (tx) {
4905
+ _context5.next = 15;
4906
+ break;
4907
+ }
4908
+
4909
+ throw new Error("Transaction " + txHash + " takes too long to be mined");
4910
+
4911
+ case 15:
4856
4912
  filter = this.env.plygame.filters.BetMade();
4857
4913
  betMadeEvents = tx.logs.filter(function (log) {
4858
4914
  return isSameAddress(log.topics[0], filter.topics[0]);
@@ -4862,16 +4918,16 @@ var PlyGameRead = /*#__PURE__*/function (_BlockchainEntityRead) {
4862
4918
  transactionHash: txHash
4863
4919
  });
4864
4920
  });
4865
- return _context6.abrupt("return", this.attachTimestamp(betMadeEvents.map(function (e) {
4921
+ return _context5.abrupt("return", this.attachTimestamp(betMadeEvents.map(function (e) {
4866
4922
  return _this3.parseBetMakeEvent(e);
4867
4923
  })));
4868
4924
 
4869
- case 6:
4925
+ case 18:
4870
4926
  case "end":
4871
- return _context6.stop();
4927
+ return _context5.stop();
4872
4928
  }
4873
4929
  }
4874
- }, _callee6, this);
4930
+ }, _callee5, this);
4875
4931
  }));
4876
4932
 
4877
4933
  function getPlyGameResultsInTransaction(_x4) {
@@ -4888,20 +4944,20 @@ var PlyGameRead = /*#__PURE__*/function (_BlockchainEntityRead) {
4888
4944
  _proto.leaderboard =
4889
4945
  /*#__PURE__*/
4890
4946
  function () {
4891
- var _leaderboard = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee7() {
4947
+ var _leaderboard = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee6() {
4892
4948
  var _this4 = this;
4893
4949
 
4894
4950
  var result;
4895
- return runtime_1.wrap(function _callee7$(_context7) {
4951
+ return runtime_1.wrap(function _callee6$(_context6) {
4896
4952
  while (1) {
4897
- switch (_context7.prev = _context7.next) {
4953
+ switch (_context6.prev = _context6.next) {
4898
4954
  case 0:
4899
- _context7.next = 2;
4955
+ _context6.next = 2;
4900
4956
  return getPaginatedApi('/plygame/leaderboard');
4901
4957
 
4902
4958
  case 2:
4903
- result = _context7.sent;
4904
- return _context7.abrupt("return", result.items.map(function (item, i) {
4959
+ result = _context6.sent;
4960
+ return _context6.abrupt("return", result.items.map(function (item, i) {
4905
4961
  return {
4906
4962
  player: item.user,
4907
4963
  unlockedPulpAmount: new TokenAmount(_this4.pulpToken, item.unlockedAmount),
@@ -4911,10 +4967,10 @@ var PlyGameRead = /*#__PURE__*/function (_BlockchainEntityRead) {
4911
4967
 
4912
4968
  case 4:
4913
4969
  case "end":
4914
- return _context7.stop();
4970
+ return _context6.stop();
4915
4971
  }
4916
4972
  }
4917
- }, _callee7);
4973
+ }, _callee6);
4918
4974
  }));
4919
4975
 
4920
4976
  function leaderboard() {
@@ -4935,57 +4991,28 @@ var PlyGameReadWrite = /*#__PURE__*/function (_PlyGameRead) {
4935
4991
 
4936
4992
  var _proto2 = PlyGameReadWrite.prototype;
4937
4993
 
4938
- /**
4939
- * makes "times" independent bets, but consecutively, of the same amount
4940
- */
4941
- _proto2.makeBetMultiple =
4942
- /*#__PURE__*/
4943
- function () {
4944
- var _makeBetMultiple = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee8(amount, times) {
4945
- return runtime_1.wrap(function _callee8$(_context8) {
4946
- while (1) {
4947
- switch (_context8.prev = _context8.next) {
4948
- case 0:
4949
- return _context8.abrupt("return", this.env.plygame.connect(this._networkConnection.signer).makeBetMultiple(amount.rawAmount(), times));
4950
-
4951
- case 1:
4952
- case "end":
4953
- return _context8.stop();
4954
- }
4955
- }
4956
- }, _callee8, this);
4957
- }));
4958
-
4959
- function makeBetMultiple(_x5, _x6) {
4960
- return _makeBetMultiple.apply(this, arguments);
4961
- }
4962
-
4963
- return makeBetMultiple;
4964
- }()
4965
4994
  /**
4966
4995
  * Make a single bet
4967
4996
  */
4968
- ;
4969
-
4970
4997
  _proto2.makeBetOnce =
4971
4998
  /*#__PURE__*/
4972
4999
  function () {
4973
- var _makeBetOnce = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee9(amount) {
4974
- return runtime_1.wrap(function _callee9$(_context9) {
5000
+ var _makeBetOnce = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee7(amount) {
5001
+ return runtime_1.wrap(function _callee7$(_context7) {
4975
5002
  while (1) {
4976
- switch (_context9.prev = _context9.next) {
5003
+ switch (_context7.prev = _context7.next) {
4977
5004
  case 0:
4978
- return _context9.abrupt("return", this.env.plygame.connect(this._networkConnection.signer).makeBetOnce(amount.rawAmount()));
5005
+ return _context7.abrupt("return", this.env.plygame.connect(this._networkConnection.signer).makeBetOnce(amount.rawAmount()));
4979
5006
 
4980
5007
  case 1:
4981
5008
  case "end":
4982
- return _context9.stop();
5009
+ return _context7.stop();
4983
5010
  }
4984
5011
  }
4985
- }, _callee9, this);
5012
+ }, _callee7, this);
4986
5013
  }));
4987
5014
 
4988
- function makeBetOnce(_x7) {
5015
+ function makeBetOnce(_x5) {
4989
5016
  return _makeBetOnce.apply(this, arguments);
4990
5017
  }
4991
5018
 
@@ -4993,22 +5020,22 @@ var PlyGameReadWrite = /*#__PURE__*/function (_PlyGameRead) {
4993
5020
  }();
4994
5021
 
4995
5022
  _proto2.approve = /*#__PURE__*/function () {
4996
- var _approve = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee10(amount) {
4997
- return runtime_1.wrap(function _callee10$(_context10) {
5023
+ var _approve = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee8(amount) {
5024
+ return runtime_1.wrap(function _callee8$(_context8) {
4998
5025
  while (1) {
4999
- switch (_context10.prev = _context10.next) {
5026
+ switch (_context8.prev = _context8.next) {
5000
5027
  case 0:
5001
- return _context10.abrupt("return", this.env.ply.connect(this._networkConnection.signer).approve(this.env.plygame.address, amount.rawAmount()));
5028
+ return _context8.abrupt("return", this.env.ply.connect(this._networkConnection.signer).approve(this.env.plygame.address, amount.rawAmount()));
5002
5029
 
5003
5030
  case 1:
5004
5031
  case "end":
5005
- return _context10.stop();
5032
+ return _context8.stop();
5006
5033
  }
5007
5034
  }
5008
- }, _callee10, this);
5035
+ }, _callee8, this);
5009
5036
  }));
5010
5037
 
5011
- function approve(_x8) {
5038
+ function approve(_x6) {
5012
5039
  return _approve.apply(this, arguments);
5013
5040
  }
5014
5041
 
@@ -5252,12 +5279,14 @@ var ReferralRead = /*#__PURE__*/function (_BlockchainEntityRead) {
5252
5279
  rewardTokenAmount: TokenAmount.fromAddressAndAmount(item.token, item.amount),
5253
5280
  startTime: REFERRAL_CAMPAIGNS[item.campaign].start,
5254
5281
  endTime: REFERRAL_CAMPAIGNS[item.campaign].end,
5255
- transactionHash: (_item$transactionHash = item.transactionHash) != null ? _item$transactionHash : null
5282
+ transactionHash: (_item$transactionHash = item.transactionHash) != null ? _item$transactionHash : null,
5283
+ refereeAddress: null
5256
5284
  };
5257
5285
  });
5286
+ items = [referralRewardDummy1, referralRewardDummy2].concat(items);
5258
5287
  return _context5.abrupt("return", items);
5259
5288
 
5260
- case 5:
5289
+ case 6:
5261
5290
  case "end":
5262
5291
  return _context5.stop();
5263
5292
  }
@@ -5300,7 +5329,8 @@ var ReferralRead = /*#__PURE__*/function (_BlockchainEntityRead) {
5300
5329
  rewardTokenAmount: TokenAmount.fromAddressAndAmount(item.token, item.amount),
5301
5330
  startTime: REFERRAL_CAMPAIGNS[item.campaign].start,
5302
5331
  endTime: REFERRAL_CAMPAIGNS[item.campaign].end,
5303
- transactionHash: null
5332
+ transactionHash: null,
5333
+ refereeAddress: null
5304
5334
  };
5305
5335
  });
5306
5336
  items.sort(function (a, b) {
@@ -5321,23 +5351,29 @@ var ReferralRead = /*#__PURE__*/function (_BlockchainEntityRead) {
5321
5351
  }
5322
5352
 
5323
5353
  return leaderboard;
5324
- }();
5354
+ }()
5355
+ /**
5356
+ * current number of slots under a referral code being used that exceed minimum deposit amount
5357
+ */
5358
+ ;
5325
5359
 
5326
- _proto.isWhitelistedAddress = /*#__PURE__*/function () {
5327
- var _isWhitelistedAddress = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee7(address) {
5360
+ _proto.slotsInUse =
5361
+ /*#__PURE__*/
5362
+ function () {
5363
+ var _slotsInUse = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee7(referralCode) {
5328
5364
  var result;
5329
5365
  return runtime_1.wrap(function _callee7$(_context7) {
5330
5366
  while (1) {
5331
5367
  switch (_context7.prev = _context7.next) {
5332
5368
  case 0:
5333
5369
  _context7.next = 2;
5334
- return getApi('/referral/whitelisted', {
5335
- address: address
5370
+ return getApi('/referral/slotsInUse', {
5371
+ referralCode: referralCode
5336
5372
  });
5337
5373
 
5338
5374
  case 2:
5339
5375
  result = _context7.sent;
5340
- return _context7.abrupt("return", result.isWhitelisted);
5376
+ return _context7.abrupt("return", result);
5341
5377
 
5342
5378
  case 4:
5343
5379
  case "end":
@@ -5347,7 +5383,95 @@ var ReferralRead = /*#__PURE__*/function (_BlockchainEntityRead) {
5347
5383
  }, _callee7);
5348
5384
  }));
5349
5385
 
5350
- function isWhitelistedAddress(_x7) {
5386
+ function slotsInUse(_x7) {
5387
+ return _slotsInUse.apply(this, arguments);
5388
+ }
5389
+
5390
+ return slotsInUse;
5391
+ }();
5392
+
5393
+ _proto.totalReferralSlots = function totalReferralSlots() {
5394
+ return 500;
5395
+ }
5396
+ /**
5397
+ * a way to determine qualification status of a user. null if not referred yet,
5398
+ * qualified if referred + min deposit, notQualified if referred + min deposit
5399
+ * not reached or withdrew too early
5400
+ */
5401
+ ;
5402
+
5403
+ _proto.userReferralStatus =
5404
+ /*#__PURE__*/
5405
+ function () {
5406
+ var _userReferralStatus = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee8(userAddr) {
5407
+ var result;
5408
+ return runtime_1.wrap(function _callee8$(_context8) {
5409
+ while (1) {
5410
+ switch (_context8.prev = _context8.next) {
5411
+ case 0:
5412
+ _context8.next = 2;
5413
+ return getApi('/referral/referralStatus', {
5414
+ address: userAddr
5415
+ });
5416
+
5417
+ case 2:
5418
+ result = _context8.sent;
5419
+ _context8.t0 = result;
5420
+ _context8.next = _context8.t0 === -1 ? 6 : _context8.t0 === 0 ? 7 : _context8.t0 === 1 ? 8 : 9;
5421
+ break;
5422
+
5423
+ case 6:
5424
+ return _context8.abrupt("return", 'notReferred');
5425
+
5426
+ case 7:
5427
+ return _context8.abrupt("return", 'notQualified');
5428
+
5429
+ case 8:
5430
+ return _context8.abrupt("return", 'Qualified');
5431
+
5432
+ case 9:
5433
+ return _context8.abrupt("return", 'Withdrawn');
5434
+
5435
+ case 10:
5436
+ case "end":
5437
+ return _context8.stop();
5438
+ }
5439
+ }
5440
+ }, _callee8);
5441
+ }));
5442
+
5443
+ function userReferralStatus(_x8) {
5444
+ return _userReferralStatus.apply(this, arguments);
5445
+ }
5446
+
5447
+ return userReferralStatus;
5448
+ }();
5449
+
5450
+ _proto.isWhitelistedAddress = /*#__PURE__*/function () {
5451
+ var _isWhitelistedAddress = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee9(address) {
5452
+ var result;
5453
+ return runtime_1.wrap(function _callee9$(_context9) {
5454
+ while (1) {
5455
+ switch (_context9.prev = _context9.next) {
5456
+ case 0:
5457
+ _context9.next = 2;
5458
+ return getApi('/referral/whitelisted', {
5459
+ address: address
5460
+ });
5461
+
5462
+ case 2:
5463
+ result = _context9.sent;
5464
+ return _context9.abrupt("return", result.isWhitelisted);
5465
+
5466
+ case 4:
5467
+ case "end":
5468
+ return _context9.stop();
5469
+ }
5470
+ }
5471
+ }, _callee9);
5472
+ }));
5473
+
5474
+ function isWhitelistedAddress(_x9) {
5351
5475
  return _isWhitelistedAddress.apply(this, arguments);
5352
5476
  }
5353
5477
 
@@ -5355,28 +5479,28 @@ var ReferralRead = /*#__PURE__*/function (_BlockchainEntityRead) {
5355
5479
  }();
5356
5480
 
5357
5481
  _proto.isOnAuroraPlus = /*#__PURE__*/function () {
5358
- var _isOnAuroraPlus = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee8(address) {
5482
+ var _isOnAuroraPlus = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee10(address) {
5359
5483
  var resp;
5360
- return runtime_1.wrap(function _callee8$(_context8) {
5484
+ return runtime_1.wrap(function _callee10$(_context10) {
5361
5485
  while (1) {
5362
- switch (_context8.prev = _context8.next) {
5486
+ switch (_context10.prev = _context10.next) {
5363
5487
  case 0:
5364
- _context8.next = 2;
5488
+ _context10.next = 2;
5365
5489
  return axios.get(AURORA_PLUS_API_PREFIX + address);
5366
5490
 
5367
5491
  case 2:
5368
- resp = _context8.sent;
5369
- return _context8.abrupt("return", resp.data.status == 'active');
5492
+ resp = _context10.sent;
5493
+ return _context10.abrupt("return", resp.data.status == 'active');
5370
5494
 
5371
5495
  case 4:
5372
5496
  case "end":
5373
- return _context8.stop();
5497
+ return _context10.stop();
5374
5498
  }
5375
5499
  }
5376
- }, _callee8);
5500
+ }, _callee10);
5377
5501
  }));
5378
5502
 
5379
- function isOnAuroraPlus(_x8) {
5503
+ function isOnAuroraPlus(_x10) {
5380
5504
  return _isOnAuroraPlus.apply(this, arguments);
5381
5505
  }
5382
5506
 
@@ -5402,21 +5526,21 @@ var ReferralReadWrite = /*#__PURE__*/function (_ReferralRead) {
5402
5526
  _proto2.registerNewReferralCode =
5403
5527
  /*#__PURE__*/
5404
5528
  function () {
5405
- var _registerNewReferralCode = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee9() {
5529
+ var _registerNewReferralCode = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee11() {
5406
5530
  var referralCode;
5407
- return runtime_1.wrap(function _callee9$(_context9) {
5531
+ return runtime_1.wrap(function _callee11$(_context11) {
5408
5532
  while (1) {
5409
- switch (_context9.prev = _context9.next) {
5533
+ switch (_context11.prev = _context11.next) {
5410
5534
  case 0:
5411
5535
  referralCode = ethers.ethers.utils.formatBytes32String(this.generateReferralCode());
5412
- return _context9.abrupt("return", this.env.referralDirectory.connect(this._networkConnection.signer).registerNewUserReferralCode(referralCode));
5536
+ return _context11.abrupt("return", this.env.referralDirectory.connect(this._networkConnection.signer).registerNewUserReferralCode(referralCode));
5413
5537
 
5414
5538
  case 2:
5415
5539
  case "end":
5416
- return _context9.stop();
5540
+ return _context11.stop();
5417
5541
  }
5418
5542
  }
5419
- }, _callee9, this);
5543
+ }, _callee11, this);
5420
5544
  }));
5421
5545
 
5422
5546
  function registerNewReferralCode() {
@@ -5433,24 +5557,24 @@ var ReferralReadWrite = /*#__PURE__*/function (_ReferralRead) {
5433
5557
  _proto2.useReferralCode =
5434
5558
  /*#__PURE__*/
5435
5559
  function () {
5436
- var _useReferralCode = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee10(code) {
5560
+ var _useReferralCode = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee12(code) {
5437
5561
  var referralCode;
5438
- return runtime_1.wrap(function _callee10$(_context10) {
5562
+ return runtime_1.wrap(function _callee12$(_context12) {
5439
5563
  while (1) {
5440
- switch (_context10.prev = _context10.next) {
5564
+ switch (_context12.prev = _context12.next) {
5441
5565
  case 0:
5442
5566
  referralCode = ethers.ethers.utils.formatBytes32String(code);
5443
- return _context10.abrupt("return", this.env.referralDirectory.connect(this._networkConnection.signer).registerReferralCodeUsed(referralCode));
5567
+ return _context12.abrupt("return", this.env.referralDirectory.connect(this._networkConnection.signer).registerReferralCodeUsed(referralCode));
5444
5568
 
5445
5569
  case 2:
5446
5570
  case "end":
5447
- return _context10.stop();
5571
+ return _context12.stop();
5448
5572
  }
5449
5573
  }
5450
- }, _callee10, this);
5574
+ }, _callee12, this);
5451
5575
  }));
5452
5576
 
5453
- function useReferralCode(_x9) {
5577
+ function useReferralCode(_x11) {
5454
5578
  return _useReferralCode.apply(this, arguments);
5455
5579
  }
5456
5580
 
@@ -5464,23 +5588,23 @@ var ReferralReadWrite = /*#__PURE__*/function (_ReferralRead) {
5464
5588
  _proto2.claimReferralRewards =
5465
5589
  /*#__PURE__*/
5466
5590
  function () {
5467
- var _claimReferralRewards = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee11() {
5591
+ var _claimReferralRewards = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee13() {
5468
5592
  var unclaimedRewards, campaigns, tokens;
5469
- return runtime_1.wrap(function _callee11$(_context11) {
5593
+ return runtime_1.wrap(function _callee13$(_context13) {
5470
5594
  while (1) {
5471
- switch (_context11.prev = _context11.next) {
5595
+ switch (_context13.prev = _context13.next) {
5472
5596
  case 0:
5473
- _context11.t0 = this;
5474
- _context11.next = 3;
5597
+ _context13.t0 = this;
5598
+ _context13.next = 3;
5475
5599
  return this._networkConnection.signer.getAddress();
5476
5600
 
5477
5601
  case 3:
5478
- _context11.t1 = _context11.sent;
5479
- _context11.next = 6;
5480
- return _context11.t0.referralRewards.call(_context11.t0, _context11.t1);
5602
+ _context13.t1 = _context13.sent;
5603
+ _context13.next = 6;
5604
+ return _context13.t0.referralRewards.call(_context13.t0, _context13.t1);
5481
5605
 
5482
5606
  case 6:
5483
- unclaimedRewards = _context11.sent.filter(function (reward) {
5607
+ unclaimedRewards = _context13.sent.filter(function (reward) {
5484
5608
  return reward.transactionHash == null;
5485
5609
  });
5486
5610
  campaigns = unclaimedRewards.map(function (reward) {
@@ -5489,14 +5613,14 @@ var ReferralReadWrite = /*#__PURE__*/function (_ReferralRead) {
5489
5613
  tokens = unclaimedRewards.map(function (reward) {
5490
5614
  return reward.rewardTokenAmount.token.address;
5491
5615
  });
5492
- return _context11.abrupt("return", new AirdropReadWrite(this._networkConnection).redeemMultiple(campaigns, tokens));
5616
+ return _context13.abrupt("return", new AirdropReadWrite(this._networkConnection).redeemMultiple(campaigns, tokens));
5493
5617
 
5494
5618
  case 10:
5495
5619
  case "end":
5496
- return _context11.stop();
5620
+ return _context13.stop();
5497
5621
  }
5498
5622
  }
5499
- }, _callee11, this);
5623
+ }, _callee13, this);
5500
5624
  }));
5501
5625
 
5502
5626
  function claimReferralRewards() {
@@ -6005,6 +6129,8 @@ exports.networkAddresses = networkAddresses;
6005
6129
  exports.queryGraphQL = queryGraphQL;
6006
6130
  exports.referralRewardDummy1 = referralRewardDummy1;
6007
6131
  exports.referralRewardDummy2 = referralRewardDummy2;
6132
+ exports.sleep = sleep;
6133
+ exports.sortEvents = sortEvents;
6008
6134
  exports.symbolRecords = symbolRecords;
6009
6135
  exports.validateAndParseAddress = validateAndParseAddress;
6010
6136
  exports.valuateToken = valuateToken;