@aurigami/sdk 1.2.5 → 1.3.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.
- package/README.md +5 -0
- package/dist/airdrop-lottery.d.ts +14 -0
- package/dist/constants.d.ts +3 -0
- package/dist/helpers.d.ts +3 -0
- package/dist/index.d.ts +2 -0
- package/dist/sdk.cjs.development.js +530 -0
- package/dist/sdk.cjs.development.js.map +1 -1
- package/dist/sdk.cjs.production.min.js +1 -1
- package/dist/sdk.cjs.production.min.js.map +1 -1
- package/dist/sdk.esm.js +523 -1
- package/dist/sdk.esm.js.map +1 -1
- package/dist/transfer-event-query.d.ts +17 -0
- package/package.json +1 -1
- package/src/airdrop-lottery.ts +232 -0
- package/src/constants.ts +6 -1
- package/src/helpers.ts +54 -1
- package/src/index.ts +2 -0
- package/src/transfer-event-query.ts +60 -0
package/dist/sdk.esm.js
CHANGED
|
@@ -11,6 +11,8 @@ import axios from 'axios';
|
|
|
11
11
|
import TokenLockABI from '@aurigami/contracts/artifacts/contracts/TokenLock.sol/TokenLock.json';
|
|
12
12
|
import AuriFairLaunchABI from '@aurigami/contracts/artifacts/contracts/AuriFairLaunch.sol/AuriFairLaunch.json';
|
|
13
13
|
import FaucetABI from '@aurigami/contracts/artifacts/contracts/mock/Faucet.sol/Faucet.json';
|
|
14
|
+
import { readFileSync } from 'fs';
|
|
15
|
+
import AuTokenABI from '@aurigami/contracts/artifacts/contracts/AuToken.sol/AuToken.json';
|
|
14
16
|
|
|
15
17
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
16
18
|
try {
|
|
@@ -977,6 +979,9 @@ var ONE_DAY = 86400;
|
|
|
977
979
|
var ONE_YEAR = ONE_DAY * 365;
|
|
978
980
|
var AurPlyPid = 0;
|
|
979
981
|
var INF = /*#__PURE__*/BigNumber$1.from(2).pow(256).sub(1);
|
|
982
|
+
var AIRDROP_START_TIMESTAMP = 1649858400;
|
|
983
|
+
var AIRDROP_END_TIMESTAMP = 1651068000;
|
|
984
|
+
var AIRDROP_KEEP_THRESHOLD = 7 * 86400;
|
|
980
985
|
|
|
981
986
|
var decimalRecords = {
|
|
982
987
|
'0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee': 18,
|
|
@@ -1029,6 +1034,116 @@ function calcLMRewardApr(rewardsValue, totalStakeValue, frequencyPerYear) {
|
|
|
1029
1034
|
|
|
1030
1035
|
return rewardsValue.multipliedBy(frequencyPerYear).dividedBy(totalStakeValue);
|
|
1031
1036
|
}
|
|
1037
|
+
function getBlockTimestamp(_x, _x2) {
|
|
1038
|
+
return _getBlockTimestamp.apply(this, arguments);
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
function _getBlockTimestamp() {
|
|
1042
|
+
_getBlockTimestamp = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(provider, blockNumber) {
|
|
1043
|
+
var block;
|
|
1044
|
+
return runtime_1.wrap(function _callee$(_context) {
|
|
1045
|
+
while (1) {
|
|
1046
|
+
switch (_context.prev = _context.next) {
|
|
1047
|
+
case 0:
|
|
1048
|
+
_context.next = 2;
|
|
1049
|
+
return provider.getBlock(blockNumber);
|
|
1050
|
+
|
|
1051
|
+
case 2:
|
|
1052
|
+
block = _context.sent;
|
|
1053
|
+
return _context.abrupt("return", block.timestamp);
|
|
1054
|
+
|
|
1055
|
+
case 4:
|
|
1056
|
+
case "end":
|
|
1057
|
+
return _context.stop();
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
1060
|
+
}, _callee);
|
|
1061
|
+
}));
|
|
1062
|
+
return _getBlockTimestamp.apply(this, arguments);
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
function getBlockBeforeTimestamp(_x3, _x4, _x5) {
|
|
1066
|
+
return _getBlockBeforeTimestamp.apply(this, arguments);
|
|
1067
|
+
}
|
|
1068
|
+
|
|
1069
|
+
function _getBlockBeforeTimestamp() {
|
|
1070
|
+
_getBlockBeforeTimestamp = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(provider, timestamp, startBlock) {
|
|
1071
|
+
var blockThreshold, K, leftBlock, rightBlock, size, promises, i, blockTimestamps, nextLeftBlock, _i, _i2;
|
|
1072
|
+
|
|
1073
|
+
return runtime_1.wrap(function _callee2$(_context2) {
|
|
1074
|
+
while (1) {
|
|
1075
|
+
switch (_context2.prev = _context2.next) {
|
|
1076
|
+
case 0:
|
|
1077
|
+
blockThreshold = 50 * 10;
|
|
1078
|
+
K = 8;
|
|
1079
|
+
leftBlock = startBlock || 1;
|
|
1080
|
+
_context2.next = 5;
|
|
1081
|
+
return provider.getBlockNumber();
|
|
1082
|
+
|
|
1083
|
+
case 5:
|
|
1084
|
+
rightBlock = _context2.sent;
|
|
1085
|
+
_context2.next = 8;
|
|
1086
|
+
return getBlockTimestamp(provider, rightBlock);
|
|
1087
|
+
|
|
1088
|
+
case 8:
|
|
1089
|
+
_context2.t0 = _context2.sent;
|
|
1090
|
+
_context2.t1 = timestamp;
|
|
1091
|
+
|
|
1092
|
+
if (!(_context2.t0 < _context2.t1)) {
|
|
1093
|
+
_context2.next = 12;
|
|
1094
|
+
break;
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
return _context2.abrupt("return", rightBlock);
|
|
1098
|
+
|
|
1099
|
+
case 12:
|
|
1100
|
+
if (!(rightBlock - leftBlock >= blockThreshold)) {
|
|
1101
|
+
_context2.next = 25;
|
|
1102
|
+
break;
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
size = Math.floor((rightBlock - leftBlock + 1) / K);
|
|
1106
|
+
promises = [];
|
|
1107
|
+
|
|
1108
|
+
for (i = 1; i < K; i++) {
|
|
1109
|
+
promises.push(getBlockTimestamp(provider, leftBlock + i * size));
|
|
1110
|
+
}
|
|
1111
|
+
|
|
1112
|
+
_context2.next = 18;
|
|
1113
|
+
return Promise.all(promises);
|
|
1114
|
+
|
|
1115
|
+
case 18:
|
|
1116
|
+
blockTimestamps = _context2.sent;
|
|
1117
|
+
nextLeftBlock = leftBlock;
|
|
1118
|
+
|
|
1119
|
+
for (_i = 1; _i < K; _i++) {
|
|
1120
|
+
if (blockTimestamps[_i - 1] <= timestamp) {
|
|
1121
|
+
nextLeftBlock = leftBlock + _i * size;
|
|
1122
|
+
}
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1125
|
+
for (_i2 = K - 1; _i2 >= 1; _i2--) {
|
|
1126
|
+
if (blockTimestamps[_i2 - 1] > timestamp) {
|
|
1127
|
+
rightBlock = leftBlock + _i2 * size - 1;
|
|
1128
|
+
}
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1131
|
+
leftBlock = nextLeftBlock;
|
|
1132
|
+
_context2.next = 12;
|
|
1133
|
+
break;
|
|
1134
|
+
|
|
1135
|
+
case 25:
|
|
1136
|
+
return _context2.abrupt("return", leftBlock);
|
|
1137
|
+
|
|
1138
|
+
case 26:
|
|
1139
|
+
case "end":
|
|
1140
|
+
return _context2.stop();
|
|
1141
|
+
}
|
|
1142
|
+
}
|
|
1143
|
+
}, _callee2);
|
|
1144
|
+
}));
|
|
1145
|
+
return _getBlockBeforeTimestamp.apply(this, arguments);
|
|
1146
|
+
}
|
|
1032
1147
|
|
|
1033
1148
|
var Token = function Token(address, decimals) {
|
|
1034
1149
|
this.address = address.toLowerCase();
|
|
@@ -3557,10 +3672,417 @@ var dummyUserMarketDetails = {
|
|
|
3557
3672
|
underlyingPrice: "1"
|
|
3558
3673
|
};
|
|
3559
3674
|
|
|
3675
|
+
var TransferEventQuery = /*#__PURE__*/function (_BlockchainEntityRead) {
|
|
3676
|
+
_inheritsLoose(TransferEventQuery, _BlockchainEntityRead);
|
|
3677
|
+
|
|
3678
|
+
function TransferEventQuery(tokenAddr, networkConnection) {
|
|
3679
|
+
var _this;
|
|
3680
|
+
|
|
3681
|
+
_this = _BlockchainEntityRead.call(this, networkConnection) || this;
|
|
3682
|
+
_this.auToken = new Contract(tokenAddr, AuTokenABI.abi, _this._networkConnection.provider);
|
|
3683
|
+
return _this;
|
|
3684
|
+
}
|
|
3685
|
+
|
|
3686
|
+
var _proto = TransferEventQuery.prototype;
|
|
3687
|
+
|
|
3688
|
+
_proto.queryERC20TransfersOf = /*#__PURE__*/function () {
|
|
3689
|
+
var _queryERC20TransfersOf = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(address, fromBlock, toBlock) {
|
|
3690
|
+
var _this2 = this;
|
|
3691
|
+
|
|
3692
|
+
var filters, events, results;
|
|
3693
|
+
return runtime_1.wrap(function _callee$(_context) {
|
|
3694
|
+
while (1) {
|
|
3695
|
+
switch (_context.prev = _context.next) {
|
|
3696
|
+
case 0:
|
|
3697
|
+
filters = [this.auToken.filters.Transfer(address, null), this.auToken.filters.Transfer(null, address)];
|
|
3698
|
+
_context.next = 3;
|
|
3699
|
+
return Promise.all(filters.map(function (filter) {
|
|
3700
|
+
return _this2.auToken.queryFilter(filter, fromBlock, toBlock);
|
|
3701
|
+
}));
|
|
3702
|
+
|
|
3703
|
+
case 3:
|
|
3704
|
+
events = _context.sent.flat();
|
|
3705
|
+
results = events.map(function (event) {
|
|
3706
|
+
return {
|
|
3707
|
+
from: event.args[0],
|
|
3708
|
+
to: event.args[1],
|
|
3709
|
+
amount: event.args[2],
|
|
3710
|
+
blockNumber: event.blockNumber
|
|
3711
|
+
};
|
|
3712
|
+
});
|
|
3713
|
+
results.sort(function (a, b) {
|
|
3714
|
+
return a.blockNumber - b.blockNumber;
|
|
3715
|
+
});
|
|
3716
|
+
return _context.abrupt("return", results);
|
|
3717
|
+
|
|
3718
|
+
case 7:
|
|
3719
|
+
case "end":
|
|
3720
|
+
return _context.stop();
|
|
3721
|
+
}
|
|
3722
|
+
}
|
|
3723
|
+
}, _callee, this);
|
|
3724
|
+
}));
|
|
3725
|
+
|
|
3726
|
+
function queryERC20TransfersOf(_x, _x2, _x3) {
|
|
3727
|
+
return _queryERC20TransfersOf.apply(this, arguments);
|
|
3728
|
+
}
|
|
3729
|
+
|
|
3730
|
+
return queryERC20TransfersOf;
|
|
3731
|
+
}();
|
|
3732
|
+
|
|
3733
|
+
_proto.queryERC20BalanceAt = /*#__PURE__*/function () {
|
|
3734
|
+
var _queryERC20BalanceAt = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(address, endBlock) {
|
|
3735
|
+
return runtime_1.wrap(function _callee2$(_context2) {
|
|
3736
|
+
while (1) {
|
|
3737
|
+
switch (_context2.prev = _context2.next) {
|
|
3738
|
+
case 0:
|
|
3739
|
+
return _context2.abrupt("return", this.auToken.balanceOf(address, {
|
|
3740
|
+
blockTag: endBlock + 1
|
|
3741
|
+
}));
|
|
3742
|
+
|
|
3743
|
+
case 1:
|
|
3744
|
+
case "end":
|
|
3745
|
+
return _context2.stop();
|
|
3746
|
+
}
|
|
3747
|
+
}
|
|
3748
|
+
}, _callee2, this);
|
|
3749
|
+
}));
|
|
3750
|
+
|
|
3751
|
+
function queryERC20BalanceAt(_x4, _x5) {
|
|
3752
|
+
return _queryERC20BalanceAt.apply(this, arguments);
|
|
3753
|
+
}
|
|
3754
|
+
|
|
3755
|
+
return queryERC20BalanceAt;
|
|
3756
|
+
}();
|
|
3757
|
+
|
|
3758
|
+
return TransferEventQuery;
|
|
3759
|
+
}(BlockchainEntityRead);
|
|
3760
|
+
|
|
3761
|
+
var AirdropSettings = /*#__PURE__*/function () {
|
|
3762
|
+
function AirdropSettings() {
|
|
3763
|
+
this.airdropStartBlock = 0;
|
|
3764
|
+
this.airdropEndBlock = 0;
|
|
3765
|
+
this.airdropStartTimestamp = AIRDROP_START_TIMESTAMP;
|
|
3766
|
+
this.airdropEndTimestamp = AIRDROP_END_TIMESTAMP;
|
|
3767
|
+
this.airdropThreshold = AIRDROP_KEEP_THRESHOLD;
|
|
3768
|
+
}
|
|
3769
|
+
|
|
3770
|
+
AirdropSettings.getSettings = /*#__PURE__*/function () {
|
|
3771
|
+
var _getSettings = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(provider) {
|
|
3772
|
+
var settings;
|
|
3773
|
+
return runtime_1.wrap(function _callee$(_context) {
|
|
3774
|
+
while (1) {
|
|
3775
|
+
switch (_context.prev = _context.next) {
|
|
3776
|
+
case 0:
|
|
3777
|
+
if (!this._instance) {
|
|
3778
|
+
_context.next = 2;
|
|
3779
|
+
break;
|
|
3780
|
+
}
|
|
3781
|
+
|
|
3782
|
+
return _context.abrupt("return", this._instance);
|
|
3783
|
+
|
|
3784
|
+
case 2:
|
|
3785
|
+
settings = new AirdropSettings();
|
|
3786
|
+
_context.next = 5;
|
|
3787
|
+
return getBlockBeforeTimestamp(provider, settings.airdropStartTimestamp, 63317969);
|
|
3788
|
+
|
|
3789
|
+
case 5:
|
|
3790
|
+
settings.airdropStartBlock = _context.sent;
|
|
3791
|
+
_context.next = 8;
|
|
3792
|
+
return getBlockBeforeTimestamp(provider, settings.airdropEndTimestamp, settings.airdropStartBlock);
|
|
3793
|
+
|
|
3794
|
+
case 8:
|
|
3795
|
+
settings.airdropEndBlock = _context.sent;
|
|
3796
|
+
this._instance = settings;
|
|
3797
|
+
return _context.abrupt("return", settings);
|
|
3798
|
+
|
|
3799
|
+
case 11:
|
|
3800
|
+
case "end":
|
|
3801
|
+
return _context.stop();
|
|
3802
|
+
}
|
|
3803
|
+
}
|
|
3804
|
+
}, _callee, this);
|
|
3805
|
+
}));
|
|
3806
|
+
|
|
3807
|
+
function getSettings(_x) {
|
|
3808
|
+
return _getSettings.apply(this, arguments);
|
|
3809
|
+
}
|
|
3810
|
+
|
|
3811
|
+
return getSettings;
|
|
3812
|
+
}();
|
|
3813
|
+
|
|
3814
|
+
return AirdropSettings;
|
|
3815
|
+
}();
|
|
3816
|
+
|
|
3817
|
+
var AirdropAuTokenKeepTracker = /*#__PURE__*/function (_BlockchainEntityRead) {
|
|
3818
|
+
_inheritsLoose(AirdropAuTokenKeepTracker, _BlockchainEntityRead);
|
|
3819
|
+
|
|
3820
|
+
function AirdropAuTokenKeepTracker(networkConnection, airdropAuTokenInfo) {
|
|
3821
|
+
var _this;
|
|
3822
|
+
|
|
3823
|
+
_this = _BlockchainEntityRead.call(this, networkConnection) || this;
|
|
3824
|
+
_this._transferQuery = new TransferEventQuery(airdropAuTokenInfo.address, networkConnection);
|
|
3825
|
+
_this._airdropAuTokenInfo = airdropAuTokenInfo;
|
|
3826
|
+
_this._airdropAuTokenInfo.exchangeRate = _this._airdropAuTokenInfo.exchangeRate.add(_this._airdropAuTokenInfo.exchangeRate.div(50));
|
|
3827
|
+
return _this;
|
|
3828
|
+
}
|
|
3829
|
+
|
|
3830
|
+
var _proto = AirdropAuTokenKeepTracker.prototype;
|
|
3831
|
+
|
|
3832
|
+
_proto._toUnderlyingValue = function _toUnderlyingValue(auTokenAmount) {
|
|
3833
|
+
return auTokenAmount.mul(this._airdropAuTokenInfo.exchangeRate).div(BigNumber$1.from(10).pow(18));
|
|
3834
|
+
};
|
|
3835
|
+
|
|
3836
|
+
_proto.isEligible = /*#__PURE__*/function () {
|
|
3837
|
+
var _isEligible = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(address) {
|
|
3838
|
+
var settings, minDeposit, balance, BELOW, ABOVE, flag, lastEligibleBalanceTimestamp, events, _iterator, _step, _step$value, from, to, amount, blockNumber, _timestamp, timestamp;
|
|
3839
|
+
|
|
3840
|
+
return runtime_1.wrap(function _callee2$(_context2) {
|
|
3841
|
+
while (1) {
|
|
3842
|
+
switch (_context2.prev = _context2.next) {
|
|
3843
|
+
case 0:
|
|
3844
|
+
_context2.next = 2;
|
|
3845
|
+
return AirdropSettings.getSettings(this._networkConnection.provider);
|
|
3846
|
+
|
|
3847
|
+
case 2:
|
|
3848
|
+
settings = _context2.sent;
|
|
3849
|
+
minDeposit = this._airdropAuTokenInfo.underlying.minDeposit;
|
|
3850
|
+
_context2.next = 6;
|
|
3851
|
+
return this._transferQuery.queryERC20BalanceAt(address, settings.airdropStartBlock - 1);
|
|
3852
|
+
|
|
3853
|
+
case 6:
|
|
3854
|
+
balance = _context2.sent;
|
|
3855
|
+
BELOW = false, ABOVE = true;
|
|
3856
|
+
flag = BELOW;
|
|
3857
|
+
lastEligibleBalanceTimestamp = 0;
|
|
3858
|
+
|
|
3859
|
+
if (this._toUnderlyingValue(balance).gte(minDeposit)) {
|
|
3860
|
+
lastEligibleBalanceTimestamp = settings.airdropStartTimestamp;
|
|
3861
|
+
flag = ABOVE;
|
|
3862
|
+
}
|
|
3863
|
+
|
|
3864
|
+
_context2.next = 13;
|
|
3865
|
+
return this._transferQuery.queryERC20TransfersOf(address, settings.airdropStartBlock, settings.airdropEndBlock);
|
|
3866
|
+
|
|
3867
|
+
case 13:
|
|
3868
|
+
events = _context2.sent;
|
|
3869
|
+
_iterator = _createForOfIteratorHelperLoose(events);
|
|
3870
|
+
|
|
3871
|
+
case 15:
|
|
3872
|
+
if ((_step = _iterator()).done) {
|
|
3873
|
+
_context2.next = 33;
|
|
3874
|
+
break;
|
|
3875
|
+
}
|
|
3876
|
+
|
|
3877
|
+
_step$value = _step.value, from = _step$value.from, to = _step$value.to, amount = _step$value.amount, blockNumber = _step$value.blockNumber;
|
|
3878
|
+
|
|
3879
|
+
if (from == address) {
|
|
3880
|
+
balance = balance.sub(amount);
|
|
3881
|
+
}
|
|
3882
|
+
|
|
3883
|
+
if (to == address) {
|
|
3884
|
+
balance = balance.add(amount);
|
|
3885
|
+
}
|
|
3886
|
+
|
|
3887
|
+
if (!(this._toUnderlyingValue(balance).gte(minDeposit) != flag)) {
|
|
3888
|
+
_context2.next = 31;
|
|
3889
|
+
break;
|
|
3890
|
+
}
|
|
3891
|
+
|
|
3892
|
+
flag = !flag;
|
|
3893
|
+
_context2.next = 23;
|
|
3894
|
+
return this._networkConnection.provider.getBlock(blockNumber);
|
|
3895
|
+
|
|
3896
|
+
case 23:
|
|
3897
|
+
_timestamp = _context2.sent.timestamp;
|
|
3898
|
+
|
|
3899
|
+
if (!(flag == BELOW)) {
|
|
3900
|
+
_context2.next = 30;
|
|
3901
|
+
break;
|
|
3902
|
+
}
|
|
3903
|
+
|
|
3904
|
+
if (!(_timestamp - lastEligibleBalanceTimestamp >= settings.airdropThreshold)) {
|
|
3905
|
+
_context2.next = 27;
|
|
3906
|
+
break;
|
|
3907
|
+
}
|
|
3908
|
+
|
|
3909
|
+
return _context2.abrupt("return", true);
|
|
3910
|
+
|
|
3911
|
+
case 27:
|
|
3912
|
+
lastEligibleBalanceTimestamp = 0;
|
|
3913
|
+
_context2.next = 31;
|
|
3914
|
+
break;
|
|
3915
|
+
|
|
3916
|
+
case 30:
|
|
3917
|
+
lastEligibleBalanceTimestamp = _timestamp;
|
|
3918
|
+
|
|
3919
|
+
case 31:
|
|
3920
|
+
_context2.next = 15;
|
|
3921
|
+
break;
|
|
3922
|
+
|
|
3923
|
+
case 33:
|
|
3924
|
+
if (!(flag == ABOVE)) {
|
|
3925
|
+
_context2.next = 36;
|
|
3926
|
+
break;
|
|
3927
|
+
}
|
|
3928
|
+
|
|
3929
|
+
timestamp = Math.min(settings.airdropEndTimestamp, getCurrentTimestamp());
|
|
3930
|
+
return _context2.abrupt("return", timestamp - lastEligibleBalanceTimestamp >= settings.airdropThreshold);
|
|
3931
|
+
|
|
3932
|
+
case 36:
|
|
3933
|
+
return _context2.abrupt("return", false);
|
|
3934
|
+
|
|
3935
|
+
case 37:
|
|
3936
|
+
case "end":
|
|
3937
|
+
return _context2.stop();
|
|
3938
|
+
}
|
|
3939
|
+
}
|
|
3940
|
+
}, _callee2, this);
|
|
3941
|
+
}));
|
|
3942
|
+
|
|
3943
|
+
function isEligible(_x2) {
|
|
3944
|
+
return _isEligible.apply(this, arguments);
|
|
3945
|
+
}
|
|
3946
|
+
|
|
3947
|
+
return isEligible;
|
|
3948
|
+
}();
|
|
3949
|
+
|
|
3950
|
+
return AirdropAuTokenKeepTracker;
|
|
3951
|
+
}(BlockchainEntityRead);
|
|
3952
|
+
|
|
3953
|
+
var AirdropRead = /*#__PURE__*/function (_BlockchainEntityRead2) {
|
|
3954
|
+
_inheritsLoose(AirdropRead, _BlockchainEntityRead2);
|
|
3955
|
+
|
|
3956
|
+
function AirdropRead(networkConnection) {
|
|
3957
|
+
var _this2;
|
|
3958
|
+
|
|
3959
|
+
_this2 = _BlockchainEntityRead2.call(this, networkConnection) || this;
|
|
3960
|
+
_this2.keepTrackers = [];
|
|
3961
|
+
_this2._whitelistedAddresses = new Set(readFileSync("airdrop_misc/whitelist.txt").toString().trim().split('\n'));
|
|
3962
|
+
var auTokens = JSON.parse(readFileSync("airdrop_misc/auTokensInfo.json").toString());
|
|
3963
|
+
|
|
3964
|
+
for (var auToken in auTokens) {
|
|
3965
|
+
var _auTokens$auToken = auTokens[auToken],
|
|
3966
|
+
address = _auTokens$auToken.address,
|
|
3967
|
+
exchangeRate = _auTokens$auToken.exchangeRate,
|
|
3968
|
+
deploymentBlock = _auTokens$auToken.deploymentBlock,
|
|
3969
|
+
underlying = _auTokens$auToken.underlying;
|
|
3970
|
+
var airdropInfo = {
|
|
3971
|
+
address: address,
|
|
3972
|
+
exchangeRate: BigNumber$1.from(exchangeRate),
|
|
3973
|
+
deploymentBlock: parseInt(deploymentBlock),
|
|
3974
|
+
underlying: {
|
|
3975
|
+
minDeposit: BigNumber$1.from(underlying.minDeposit)
|
|
3976
|
+
}
|
|
3977
|
+
};
|
|
3978
|
+
|
|
3979
|
+
_this2.keepTrackers.push(new AirdropAuTokenKeepTracker(networkConnection, airdropInfo));
|
|
3980
|
+
}
|
|
3981
|
+
|
|
3982
|
+
return _this2;
|
|
3983
|
+
}
|
|
3984
|
+
|
|
3985
|
+
var _proto2 = AirdropRead.prototype;
|
|
3986
|
+
|
|
3987
|
+
_proto2.countWhitelistedAddresses = function countWhitelistedAddresses() {
|
|
3988
|
+
return this._whitelistedAddresses.size;
|
|
3989
|
+
};
|
|
3990
|
+
|
|
3991
|
+
_proto2.isWhitelisted = function isWhitelisted(user) {
|
|
3992
|
+
return this._whitelistedAddresses.has(user);
|
|
3993
|
+
};
|
|
3994
|
+
|
|
3995
|
+
_proto2.hasCompletedChallenge = /*#__PURE__*/function () {
|
|
3996
|
+
var _hasCompletedChallenge = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee4(user) {
|
|
3997
|
+
var settings;
|
|
3998
|
+
return runtime_1.wrap(function _callee4$(_context4) {
|
|
3999
|
+
while (1) {
|
|
4000
|
+
switch (_context4.prev = _context4.next) {
|
|
4001
|
+
case 0:
|
|
4002
|
+
_context4.next = 2;
|
|
4003
|
+
return AirdropSettings.getSettings(this._networkConnection.provider);
|
|
4004
|
+
|
|
4005
|
+
case 2:
|
|
4006
|
+
settings = _context4.sent;
|
|
4007
|
+
|
|
4008
|
+
if (!(getCurrentTimestamp() < settings.airdropStartTimestamp)) {
|
|
4009
|
+
_context4.next = 5;
|
|
4010
|
+
break;
|
|
4011
|
+
}
|
|
4012
|
+
|
|
4013
|
+
return _context4.abrupt("return", false);
|
|
4014
|
+
|
|
4015
|
+
case 5:
|
|
4016
|
+
if (this.isWhitelisted(user)) {
|
|
4017
|
+
_context4.next = 7;
|
|
4018
|
+
break;
|
|
4019
|
+
}
|
|
4020
|
+
|
|
4021
|
+
return _context4.abrupt("return", false);
|
|
4022
|
+
|
|
4023
|
+
case 7:
|
|
4024
|
+
_context4.next = 9;
|
|
4025
|
+
return Promise.all(this.keepTrackers.map( /*#__PURE__*/function () {
|
|
4026
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee3(keepTracker) {
|
|
4027
|
+
return runtime_1.wrap(function _callee3$(_context3) {
|
|
4028
|
+
while (1) {
|
|
4029
|
+
switch (_context3.prev = _context3.next) {
|
|
4030
|
+
case 0:
|
|
4031
|
+
return _context3.abrupt("return", keepTracker.isEligible(user));
|
|
4032
|
+
|
|
4033
|
+
case 1:
|
|
4034
|
+
case "end":
|
|
4035
|
+
return _context3.stop();
|
|
4036
|
+
}
|
|
4037
|
+
}
|
|
4038
|
+
}, _callee3);
|
|
4039
|
+
}));
|
|
4040
|
+
|
|
4041
|
+
return function (_x4) {
|
|
4042
|
+
return _ref.apply(this, arguments);
|
|
4043
|
+
};
|
|
4044
|
+
}()));
|
|
4045
|
+
|
|
4046
|
+
case 9:
|
|
4047
|
+
return _context4.abrupt("return", _context4.sent.includes(true));
|
|
4048
|
+
|
|
4049
|
+
case 10:
|
|
4050
|
+
case "end":
|
|
4051
|
+
return _context4.stop();
|
|
4052
|
+
}
|
|
4053
|
+
}
|
|
4054
|
+
}, _callee4, this);
|
|
4055
|
+
}));
|
|
4056
|
+
|
|
4057
|
+
function hasCompletedChallenge(_x3) {
|
|
4058
|
+
return _hasCompletedChallenge.apply(this, arguments);
|
|
4059
|
+
}
|
|
4060
|
+
|
|
4061
|
+
return hasCompletedChallenge;
|
|
4062
|
+
}();
|
|
4063
|
+
|
|
4064
|
+
return AirdropRead;
|
|
4065
|
+
}(BlockchainEntityRead);
|
|
4066
|
+
var Airdrop = /*#__PURE__*/function (_BlockchainEntity) {
|
|
4067
|
+
_inheritsLoose(Airdrop, _BlockchainEntity);
|
|
4068
|
+
|
|
4069
|
+
function Airdrop() {
|
|
4070
|
+
return _BlockchainEntity.call(this) || this;
|
|
4071
|
+
}
|
|
4072
|
+
|
|
4073
|
+
var _proto3 = Airdrop.prototype;
|
|
4074
|
+
|
|
4075
|
+
_proto3.read = function read(networkConnection) {
|
|
4076
|
+
return new AirdropRead(networkConnection);
|
|
4077
|
+
};
|
|
4078
|
+
|
|
4079
|
+
return Airdrop;
|
|
4080
|
+
}(BlockchainEntity);
|
|
4081
|
+
|
|
3560
4082
|
ethers.utils.Logger.setLogLevel(Logger.levels.ERROR);
|
|
3561
4083
|
BigNumber.config({
|
|
3562
4084
|
DECIMAL_PLACES: 50
|
|
3563
4085
|
});
|
|
3564
4086
|
|
|
3565
|
-
export { AURORA_CHAINID, AURPLYToken, AurPlyPid, BORROW_LIMIT_BUFFER, BlockchainEntity, BlockchainEntityRead, BlockchainEntityReadWrite, ComptrollerRewardType, DECIMAL_PRECISION, ETHAddress, INF, MarketAction, MoneyMarket, MoneyMarketRead, MoneyMarketReadWrite, ONE_DAY, ONE_YEAR, PLYToken, REWARDCLAIMSTART, SDK, SdkRead, SdkReadWrite, Token, TokenAmount, calcLMRewardApr, calcValuation, decimalFactor, dummyAddress, dummyMarketAddress, dummyPly, dummyPlyAurora, dummyToken, dummyTokenAmount, dummyTokenAmount2, dummyTokenAmount3, dummyUserMarketDetails, dummyZeroTokenAmount, fetchLPPositions, fetchLPPrice, fetchPrice, fetchPriceFromCoingecko, fetchPriceFromCoingeckoAPI, fetchPriceFromOracle, fetchStNEARPrice, fetchUnderlyingTokensPrices, fetchValuation, formatObject, getCurrentTimestamp, getDecimal, isSameAddress, networkAddresses, validateAndParseAddress };
|
|
4087
|
+
export { AIRDROP_END_TIMESTAMP, AIRDROP_KEEP_THRESHOLD, AIRDROP_START_TIMESTAMP, AURORA_CHAINID, AURPLYToken, Airdrop, AirdropRead, AurPlyPid, BORROW_LIMIT_BUFFER, BlockchainEntity, BlockchainEntityRead, BlockchainEntityReadWrite, ComptrollerRewardType, DECIMAL_PRECISION, ETHAddress, INF, MarketAction, MoneyMarket, MoneyMarketRead, MoneyMarketReadWrite, ONE_DAY, ONE_YEAR, PLYToken, REWARDCLAIMSTART, SDK, SdkRead, SdkReadWrite, Token, TokenAmount, TransferEventQuery, calcLMRewardApr, calcValuation, decimalFactor, dummyAddress, dummyMarketAddress, dummyPly, dummyPlyAurora, dummyToken, dummyTokenAmount, dummyTokenAmount2, dummyTokenAmount3, dummyUserMarketDetails, dummyZeroTokenAmount, fetchLPPositions, fetchLPPrice, fetchPrice, fetchPriceFromCoingecko, fetchPriceFromCoingeckoAPI, fetchPriceFromOracle, fetchStNEARPrice, fetchUnderlyingTokensPrices, fetchValuation, formatObject, getBlockBeforeTimestamp, getBlockTimestamp, getCurrentTimestamp, getDecimal, isSameAddress, networkAddresses, validateAndParseAddress };
|
|
3566
4088
|
//# sourceMappingURL=sdk.esm.js.map
|