@aurigami/sdk 1.3.4 → 1.4.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 CHANGED
@@ -1 +1,7 @@
1
1
  # Aurigami SDK
2
+
3
+ # Testing
4
+
5
+ For test that does not require hardhat, run `yarn test test/path_to_test`.
6
+
7
+ For test that requires hardhat, run `yarn test-hardhat test-hardhat/path_to_test`.
@@ -1,14 +1,24 @@
1
+ import { TransactionResponse } from '@ethersproject/abstract-provider';
1
2
  import { BlockchainEntity, BlockchainEntityRead } from "./BlockchainEntity";
2
- import { NetworkConnection } from "./types";
3
+ import { Address, NetworkConnection } from "./types";
4
+ import { AuriAirdrop } from "@aurigami/contracts/typechain";
5
+ import { TokenAmount } from "./tokenAmount";
3
6
  export declare class AirdropRead extends BlockchainEntityRead {
7
+ protected _airDrop: AuriAirdrop;
4
8
  private _whitelistedAddresses;
5
9
  private keepTrackers;
6
10
  constructor(networkConnection: NetworkConnection);
7
11
  countWhitelistedAddresses(): number;
8
12
  isWhitelisted(user: string): boolean;
9
13
  hasCompletedChallenge(user: string): Promise<boolean>;
14
+ getRedeemableReward(campaign: string, token: Address, user: Address): Promise<TokenAmount>;
15
+ }
16
+ export declare class AirdropReadWrite extends AirdropRead {
17
+ redeemMultiple(campaigns: string[], tokens: Address[]): Promise<TransactionResponse>;
18
+ redeemSingle(campaign: string, token: Address): Promise<TransactionResponse>;
10
19
  }
11
20
  export declare class Airdrop extends BlockchainEntity {
12
21
  constructor();
13
22
  read(networkConnection: NetworkConnection): AirdropRead;
23
+ readWrite(networkConnection: NetworkConnection): AirdropReadWrite;
14
24
  }
@@ -23,3 +23,9 @@ export declare const INF: ethers.BigNumber;
23
23
  export declare const AIRDROP_START_TIMESTAMP = 1649858400;
24
24
  export declare const AIRDROP_END_TIMESTAMP = 1651068000;
25
25
  export declare const AIRDROP_KEEP_THRESHOLD: number;
26
+ export declare const DEPOSIT_NEAR_REWARDS_PER_WEEK: {
27
+ [k: string]: string;
28
+ };
29
+ export declare const BORROW_NEAR_REWARDS_PER_WEEK: {
30
+ [k: string]: string;
31
+ };
package/dist/helpers.d.ts CHANGED
@@ -7,6 +7,7 @@ export declare const isSameAddress: (address1: Address, address2: Address) => bo
7
7
  export declare const getCurrentTimestamp: () => number;
8
8
  export declare function validateAndParseAddress(address: Address): Address;
9
9
  export declare function getDecimal(address: Address): number;
10
+ export declare function getDecimalsViaContract(address: Address, provider: Provider): Promise<number>;
10
11
  export declare function calcLMRewardApr(rewardsValue: BigNumber, totalStakeValue: BigNumber, frequencyPerYear: number): BigNumber;
11
12
  export declare function getBlockTimestamp(provider: Provider, blockNumber: number): Promise<number>;
12
13
  export declare function getBlockBeforeTimestamp(provider: Provider, timestamp: number, startBlock?: number): Promise<number>;
@@ -8,6 +8,7 @@ var BigNumber = _interopDefault(require('bignumber.js'));
8
8
  var ethers = require('ethers');
9
9
  var utils = require('ethers/lib/utils');
10
10
  var abstractSigner = require('@ethersproject/abstract-signer');
11
+ var EIP20InterfaceABI = _interopDefault(require('@aurigami/contracts/artifacts/contracts/interfaces/EIP20Interface.sol/EIP20Interface.json'));
11
12
  var AuErc20ABI = _interopDefault(require('@aurigami/contracts/artifacts/contracts/AuErc20.sol/AuErc20.json'));
12
13
  var AuETHABI = _interopDefault(require('@aurigami/contracts/artifacts/contracts/AuETH.sol/AuETH.json'));
13
14
  var ComptrollerABI = _interopDefault(require('@aurigami/contracts/artifacts/contracts/Comptroller.sol/Comptroller.json'));
@@ -18,6 +19,8 @@ var TokenLockABI = _interopDefault(require('@aurigami/contracts/artifacts/contra
18
19
  var AuriFairLaunchABI = _interopDefault(require('@aurigami/contracts/artifacts/contracts/AuriFairLaunch.sol/AuriFairLaunch.json'));
19
20
  var FaucetABI = _interopDefault(require('@aurigami/contracts/artifacts/contracts/mock/Faucet.sol/Faucet.json'));
20
21
  var AuTokenABI = _interopDefault(require('@aurigami/contracts/artifacts/contracts/AuToken.sol/AuToken.json'));
22
+ var AuriAirdropABI = _interopDefault(require('@aurigami/contracts/artifacts/contracts/AuriAirdrop.sol/AuriAirdrop.json'));
23
+ var assert = _interopDefault(require('assert'));
21
24
 
22
25
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
23
26
  try {
@@ -963,7 +966,8 @@ var networkAddresses = {
963
966
  AURIFAIRLAUNCH: /*#__PURE__*/"0x9F9ceE911509abC6Af899c12ED625B0A6580D6e6".toLowerCase(),
964
967
  AURILENS: /*#__PURE__*/'0xC41a5C1625d492436600789469c1CE2eA20CEA6B'.toLowerCase(),
965
968
  TOKENLOCK: /*#__PURE__*/'0xDACC02a4Ff16Ea3c1515AdbfdCeb7B1F448B79c8'.toLowerCase(),
966
- ETHREPAYHELPER: /*#__PURE__*/"0xa308A5003fA1A25BFdD9418FcEE51d48Dbe441e6".toLowerCase()
969
+ ETHREPAYHELPER: /*#__PURE__*/"0xa308A5003fA1A25BFdD9418FcEE51d48Dbe441e6".toLowerCase(),
970
+ AURI_AIRDROP: /*#__PURE__*/"0x6C42aA5b128B62D6CCf357726D7d13F3888335EC".toLowerCase()
967
971
  },
968
972
  tokens: {
969
973
  AURORA: /*#__PURE__*/"0x8bec47865ade3b172a928df8f990bc7f2a3b9f79".toLowerCase(),
@@ -984,6 +988,18 @@ var INF = /*#__PURE__*/ethers.BigNumber.from(2).pow(256).sub(1);
984
988
  var AIRDROP_START_TIMESTAMP = 1649858400;
985
989
  var AIRDROP_END_TIMESTAMP = 1651068000;
986
990
  var AIRDROP_KEEP_THRESHOLD = 7 * 86400;
991
+ var DEPOSIT_NEAR_REWARDS_PER_WEEK = /*#__PURE__*/Object.fromEntries( /*#__PURE__*/Object.entries({
992
+ '0xb12bfca5a55806aaf64e99521918a4bf0fc40802': '36375',
993
+ '0x4988a896b1227218e4a686fde5eabdcabd91571f': '14550',
994
+ '0xf4eb217ba2454613b15dbdea6e5f22276410e89e': '3638',
995
+ '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE': '14550',
996
+ '0xc42c30ac6cc15fac9bd938618bcaa1a1fae8501d': '3638'
997
+ }).map(function (_ref) {
998
+ var k = _ref[0],
999
+ v = _ref[1];
1000
+ return [k.toLowerCase(), v];
1001
+ }));
1002
+ var BORROW_NEAR_REWARDS_PER_WEEK = {};
987
1003
 
988
1004
  var decimalRecords = {
989
1005
  '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee': 18,
@@ -1004,7 +1020,8 @@ var decimalRecords = {
1004
1020
  '0x8888682e24dd4df7b7ff2b91fccb575737e433bf': 8,
1005
1021
  '0xae4fac24dcdae0132c6d04f564dcf059616e9423': 8,
1006
1022
  '0xce4166363e3a584dac84a47bcd3414b43efcdd1c': 8,
1007
- '0xf4eb217ba2454613b15dbdea6e5f22276410e89e': 8
1023
+ '0xf4eb217ba2454613b15dbdea6e5f22276410e89e': 8,
1024
+ '0xc21ff01229e982d7c8b8691163b0a3cb8f357453': 24
1008
1025
  };
1009
1026
 
1010
1027
  function formatObject(object) {
@@ -1029,6 +1046,40 @@ function validateAndParseAddress(address) {
1029
1046
  function getDecimal(address) {
1030
1047
  return decimalRecords[address.toLowerCase()];
1031
1048
  }
1049
+ function getDecimalsViaContract(_x, _x2) {
1050
+ return _getDecimalsViaContract.apply(this, arguments);
1051
+ }
1052
+
1053
+ function _getDecimalsViaContract() {
1054
+ _getDecimalsViaContract = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(address, provider) {
1055
+ var result, token;
1056
+ return runtime_1.wrap(function _callee$(_context) {
1057
+ while (1) {
1058
+ switch (_context.prev = _context.next) {
1059
+ case 0:
1060
+ result = getDecimal(address);
1061
+
1062
+ if (!result) {
1063
+ _context.next = 3;
1064
+ break;
1065
+ }
1066
+
1067
+ return _context.abrupt("return", result);
1068
+
1069
+ case 3:
1070
+ token = new ethers.Contract(address, EIP20InterfaceABI.abi, provider);
1071
+ return _context.abrupt("return", token.decimals());
1072
+
1073
+ case 5:
1074
+ case "end":
1075
+ return _context.stop();
1076
+ }
1077
+ }
1078
+ }, _callee);
1079
+ }));
1080
+ return _getDecimalsViaContract.apply(this, arguments);
1081
+ }
1082
+
1032
1083
  function calcLMRewardApr(rewardsValue, totalStakeValue, frequencyPerYear) {
1033
1084
  if (totalStakeValue.lte(0)) {
1034
1085
  return new BigNumber('999999999');
@@ -1036,71 +1087,71 @@ function calcLMRewardApr(rewardsValue, totalStakeValue, frequencyPerYear) {
1036
1087
 
1037
1088
  return rewardsValue.multipliedBy(frequencyPerYear).dividedBy(totalStakeValue);
1038
1089
  }
1039
- function getBlockTimestamp(_x, _x2) {
1090
+ function getBlockTimestamp(_x3, _x4) {
1040
1091
  return _getBlockTimestamp.apply(this, arguments);
1041
1092
  }
1042
1093
 
1043
1094
  function _getBlockTimestamp() {
1044
- _getBlockTimestamp = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(provider, blockNumber) {
1095
+ _getBlockTimestamp = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(provider, blockNumber) {
1045
1096
  var block;
1046
- return runtime_1.wrap(function _callee$(_context) {
1097
+ return runtime_1.wrap(function _callee2$(_context2) {
1047
1098
  while (1) {
1048
- switch (_context.prev = _context.next) {
1099
+ switch (_context2.prev = _context2.next) {
1049
1100
  case 0:
1050
- _context.next = 2;
1101
+ _context2.next = 2;
1051
1102
  return provider.getBlock(blockNumber);
1052
1103
 
1053
1104
  case 2:
1054
- block = _context.sent;
1055
- return _context.abrupt("return", block.timestamp);
1105
+ block = _context2.sent;
1106
+ return _context2.abrupt("return", block.timestamp);
1056
1107
 
1057
1108
  case 4:
1058
1109
  case "end":
1059
- return _context.stop();
1110
+ return _context2.stop();
1060
1111
  }
1061
1112
  }
1062
- }, _callee);
1113
+ }, _callee2);
1063
1114
  }));
1064
1115
  return _getBlockTimestamp.apply(this, arguments);
1065
1116
  }
1066
1117
 
1067
- function getBlockBeforeTimestamp(_x3, _x4, _x5) {
1118
+ function getBlockBeforeTimestamp(_x5, _x6, _x7) {
1068
1119
  return _getBlockBeforeTimestamp.apply(this, arguments);
1069
1120
  }
1070
1121
 
1071
1122
  function _getBlockBeforeTimestamp() {
1072
- _getBlockBeforeTimestamp = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(provider, timestamp, startBlock) {
1123
+ _getBlockBeforeTimestamp = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee3(provider, timestamp, startBlock) {
1073
1124
  var blockThreshold, K, leftBlock, rightBlock, size, promises, i, blockTimestamps, nextLeftBlock, _i, _i2;
1074
1125
 
1075
- return runtime_1.wrap(function _callee2$(_context2) {
1126
+ return runtime_1.wrap(function _callee3$(_context3) {
1076
1127
  while (1) {
1077
- switch (_context2.prev = _context2.next) {
1128
+ switch (_context3.prev = _context3.next) {
1078
1129
  case 0:
1079
1130
  blockThreshold = 50 * 10;
1080
1131
  K = 8;
1081
1132
  leftBlock = startBlock || 1;
1082
- _context2.next = 5;
1133
+ _context3.next = 5;
1083
1134
  return provider.getBlockNumber();
1084
1135
 
1085
1136
  case 5:
1086
- rightBlock = _context2.sent;
1087
- _context2.next = 8;
1137
+ rightBlock = _context3.sent;
1138
+ _context3.next = 8;
1088
1139
  return getBlockTimestamp(provider, rightBlock);
1089
1140
 
1090
1141
  case 8:
1091
- _context2.t0 = _context2.sent;
1092
- _context2.t1 = timestamp;
1142
+ _context3.t0 = _context3.sent;
1143
+ _context3.t1 = timestamp;
1093
1144
 
1094
- if (!(_context2.t0 < _context2.t1)) {
1095
- _context2.next = 12;
1145
+ if (!(_context3.t0 < _context3.t1)) {
1146
+ _context3.next = 12;
1096
1147
  break;
1097
1148
  }
1098
1149
 
1099
- return _context2.abrupt("return", rightBlock);
1150
+ return _context3.abrupt("return", rightBlock);
1100
1151
 
1101
1152
  case 12:
1102
1153
  if (!(rightBlock - leftBlock >= blockThreshold)) {
1103
- _context2.next = 25;
1154
+ _context3.next = 25;
1104
1155
  break;
1105
1156
  }
1106
1157
 
@@ -1111,11 +1162,11 @@ function _getBlockBeforeTimestamp() {
1111
1162
  promises.push(getBlockTimestamp(provider, leftBlock + i * size));
1112
1163
  }
1113
1164
 
1114
- _context2.next = 18;
1165
+ _context3.next = 18;
1115
1166
  return Promise.all(promises);
1116
1167
 
1117
1168
  case 18:
1118
- blockTimestamps = _context2.sent;
1169
+ blockTimestamps = _context3.sent;
1119
1170
  nextLeftBlock = leftBlock;
1120
1171
 
1121
1172
  for (_i = 1; _i < K; _i++) {
@@ -1131,18 +1182,18 @@ function _getBlockBeforeTimestamp() {
1131
1182
  }
1132
1183
 
1133
1184
  leftBlock = nextLeftBlock;
1134
- _context2.next = 12;
1185
+ _context3.next = 12;
1135
1186
  break;
1136
1187
 
1137
1188
  case 25:
1138
- return _context2.abrupt("return", leftBlock);
1189
+ return _context3.abrupt("return", leftBlock);
1139
1190
 
1140
1191
  case 26:
1141
1192
  case "end":
1142
- return _context2.stop();
1193
+ return _context3.stop();
1143
1194
  }
1144
1195
  }
1145
- }, _callee2);
1196
+ }, _callee3);
1146
1197
  }));
1147
1198
  return _getBlockBeforeTimestamp.apply(this, arguments);
1148
1199
  }
@@ -2935,10 +2986,15 @@ var MoneyMarketRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2935
2986
 
2936
2987
  _proto.getDepositNEARRewardPerWeek = function getDepositNEARRewardPerWeek() {
2937
2988
  var NEARToken = new Token(networkAddresses.tokens.WNEAR, getDecimal(networkAddresses.tokens.WNEAR));
2938
- var rewardStopTime = 1650463200;
2989
+ var rewardStartTime = 1650636000;
2990
+ var rewardStopTime = 1651845600;
2991
+ var currentTime = getCurrentTimestamp();
2992
+
2993
+ if (currentTime <= rewardStopTime && currentTime > rewardStartTime) {
2994
+ var _DEPOSIT_NEAR_REWARDS;
2939
2995
 
2940
- if (isSameAddress(this.underlying.address, networkAddresses.tokens.USDC) && getCurrentTimestamp() <= rewardStopTime) {
2941
- return new TokenAmount(NEARToken, "1250", false);
2996
+ var reward = (_DEPOSIT_NEAR_REWARDS = DEPOSIT_NEAR_REWARDS_PER_WEEK[this.underlying.address.toLocaleLowerCase()]) != null ? _DEPOSIT_NEAR_REWARDS : "0";
2997
+ return new TokenAmount(NEARToken, reward, false);
2942
2998
  } else {
2943
2999
  return new TokenAmount(NEARToken, "0");
2944
3000
  }
@@ -2946,10 +3002,15 @@ var MoneyMarketRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2946
3002
 
2947
3003
  _proto.getBorrowNEARRewardPerWeek = function getBorrowNEARRewardPerWeek() {
2948
3004
  var NEARToken = new Token(networkAddresses.tokens.WNEAR, getDecimal(networkAddresses.tokens.WNEAR));
2949
- var rewardStopTime = 1650463200;
3005
+ var rewardStartTime = 1650636000;
3006
+ var rewardStopTime = 1651845600;
3007
+ var currentTime = getCurrentTimestamp();
2950
3008
 
2951
- if (isSameAddress(this.underlying.address, networkAddresses.tokens.USDC) && getCurrentTimestamp() <= rewardStopTime) {
2952
- return new TokenAmount(NEARToken, "3750", false);
3009
+ if (currentTime <= rewardStopTime && currentTime > rewardStartTime) {
3010
+ var _BORROW_NEAR_REWARDS_;
3011
+
3012
+ var reward = (_BORROW_NEAR_REWARDS_ = BORROW_NEAR_REWARDS_PER_WEEK[this.underlying.address.toLocaleLowerCase()]) != null ? _BORROW_NEAR_REWARDS_ : "0";
3013
+ return new TokenAmount(NEARToken, reward, false);
2953
3014
  } else {
2954
3015
  return new TokenAmount(NEARToken, "0");
2955
3016
  }
@@ -106621,6 +106682,7 @@ var AirdropRead = /*#__PURE__*/function (_BlockchainEntityRead2) {
106621
106682
 
106622
106683
  _this2 = _BlockchainEntityRead2.call(this, networkConnection) || this;
106623
106684
  _this2.keepTrackers = [];
106685
+ _this2._airDrop = new ethers.Contract(networkAddresses.misc.AURI_AIRDROP, AuriAirdropABI.abi, networkConnection.provider);
106624
106686
  _this2._whitelistedAddresses = new Set(AIRDROP_WHITELIST_ADDRESSES.map(function (e) {
106625
106687
  return e.toLocaleLowerCase();
106626
106688
  }));
@@ -106726,8 +106788,106 @@ var AirdropRead = /*#__PURE__*/function (_BlockchainEntityRead2) {
106726
106788
  return hasCompletedChallenge;
106727
106789
  }();
106728
106790
 
106791
+ _proto2.getRedeemableReward = /*#__PURE__*/function () {
106792
+ var _getRedeemableReward = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee5(campaign, token, user) {
106793
+ var tokenInstance, rewards;
106794
+ return runtime_1.wrap(function _callee5$(_context5) {
106795
+ while (1) {
106796
+ switch (_context5.prev = _context5.next) {
106797
+ case 0:
106798
+ tokenInstance = new Token(token, getDecimal(token));
106799
+ _context5.next = 3;
106800
+ return this._airDrop.getRedeemableReward(ethers.utils.formatBytes32String(campaign), token, user);
106801
+
106802
+ case 3:
106803
+ rewards = _context5.sent;
106804
+ return _context5.abrupt("return", new TokenAmount(tokenInstance, rewards.toString()));
106805
+
106806
+ case 5:
106807
+ case "end":
106808
+ return _context5.stop();
106809
+ }
106810
+ }
106811
+ }, _callee5, this);
106812
+ }));
106813
+
106814
+ function getRedeemableReward(_x5, _x6, _x7) {
106815
+ return _getRedeemableReward.apply(this, arguments);
106816
+ }
106817
+
106818
+ return getRedeemableReward;
106819
+ }();
106820
+
106729
106821
  return AirdropRead;
106730
106822
  }(BlockchainEntityRead);
106823
+ var AirdropReadWrite = /*#__PURE__*/function (_AirdropRead) {
106824
+ _inheritsLoose(AirdropReadWrite, _AirdropRead);
106825
+
106826
+ function AirdropReadWrite() {
106827
+ return _AirdropRead.apply(this, arguments) || this;
106828
+ }
106829
+
106830
+ var _proto3 = AirdropReadWrite.prototype;
106831
+
106832
+ _proto3.redeemMultiple = /*#__PURE__*/function () {
106833
+ var _redeemMultiple = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee6(campaigns, tokens) {
106834
+ return runtime_1.wrap(function _callee6$(_context6) {
106835
+ while (1) {
106836
+ switch (_context6.prev = _context6.next) {
106837
+ case 0:
106838
+ assert(campaigns.length == tokens.length, "campaigns and tokens must have the same length");
106839
+ _context6.t0 = this._airDrop.connect(this._networkConnection.signer);
106840
+ _context6.t1 = campaigns.map(function (e) {
106841
+ return ethers.utils.formatBytes32String(e);
106842
+ });
106843
+ _context6.t2 = tokens;
106844
+ _context6.next = 6;
106845
+ return this._networkConnection.signer.getAddress();
106846
+
106847
+ case 6:
106848
+ _context6.t3 = _context6.sent;
106849
+ return _context6.abrupt("return", _context6.t0.redeem.call(_context6.t0, _context6.t1, _context6.t2, _context6.t3));
106850
+
106851
+ case 8:
106852
+ case "end":
106853
+ return _context6.stop();
106854
+ }
106855
+ }
106856
+ }, _callee6, this);
106857
+ }));
106858
+
106859
+ function redeemMultiple(_x8, _x9) {
106860
+ return _redeemMultiple.apply(this, arguments);
106861
+ }
106862
+
106863
+ return redeemMultiple;
106864
+ }();
106865
+
106866
+ _proto3.redeemSingle = /*#__PURE__*/function () {
106867
+ var _redeemSingle = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee7(campaign, token) {
106868
+ return runtime_1.wrap(function _callee7$(_context7) {
106869
+ while (1) {
106870
+ switch (_context7.prev = _context7.next) {
106871
+ case 0:
106872
+ return _context7.abrupt("return", this.redeemMultiple([campaign], [token]));
106873
+
106874
+ case 1:
106875
+ case "end":
106876
+ return _context7.stop();
106877
+ }
106878
+ }
106879
+ }, _callee7, this);
106880
+ }));
106881
+
106882
+ function redeemSingle(_x10, _x11) {
106883
+ return _redeemSingle.apply(this, arguments);
106884
+ }
106885
+
106886
+ return redeemSingle;
106887
+ }();
106888
+
106889
+ return AirdropReadWrite;
106890
+ }(AirdropRead);
106731
106891
  var Airdrop = /*#__PURE__*/function (_BlockchainEntity) {
106732
106892
  _inheritsLoose(Airdrop, _BlockchainEntity);
106733
106893
 
@@ -106735,12 +106895,16 @@ var Airdrop = /*#__PURE__*/function (_BlockchainEntity) {
106735
106895
  return _BlockchainEntity.call(this) || this;
106736
106896
  }
106737
106897
 
106738
- var _proto3 = Airdrop.prototype;
106898
+ var _proto4 = Airdrop.prototype;
106739
106899
 
106740
- _proto3.read = function read(networkConnection) {
106900
+ _proto4.read = function read(networkConnection) {
106741
106901
  return new AirdropRead(networkConnection);
106742
106902
  };
106743
106903
 
106904
+ _proto4.readWrite = function readWrite(networkConnection) {
106905
+ return new AirdropReadWrite(networkConnection);
106906
+ };
106907
+
106744
106908
  return Airdrop;
106745
106909
  }(BlockchainEntity);
106746
106910
 
@@ -106756,12 +106920,15 @@ exports.AURORA_CHAINID = AURORA_CHAINID;
106756
106920
  exports.AURPLYToken = AURPLYToken;
106757
106921
  exports.Airdrop = Airdrop;
106758
106922
  exports.AirdropRead = AirdropRead;
106923
+ exports.AirdropReadWrite = AirdropReadWrite;
106759
106924
  exports.AurPlyPid = AurPlyPid;
106760
106925
  exports.BORROW_LIMIT_BUFFER = BORROW_LIMIT_BUFFER;
106926
+ exports.BORROW_NEAR_REWARDS_PER_WEEK = BORROW_NEAR_REWARDS_PER_WEEK;
106761
106927
  exports.BlockchainEntity = BlockchainEntity;
106762
106928
  exports.BlockchainEntityRead = BlockchainEntityRead;
106763
106929
  exports.BlockchainEntityReadWrite = BlockchainEntityReadWrite;
106764
106930
  exports.DECIMAL_PRECISION = DECIMAL_PRECISION;
106931
+ exports.DEPOSIT_NEAR_REWARDS_PER_WEEK = DEPOSIT_NEAR_REWARDS_PER_WEEK;
106765
106932
  exports.ETHAddress = ETHAddress;
106766
106933
  exports.INF = INF;
106767
106934
  exports.MoneyMarket = MoneyMarket;
@@ -106804,6 +106971,7 @@ exports.getBlockBeforeTimestamp = getBlockBeforeTimestamp;
106804
106971
  exports.getBlockTimestamp = getBlockTimestamp;
106805
106972
  exports.getCurrentTimestamp = getCurrentTimestamp;
106806
106973
  exports.getDecimal = getDecimal;
106974
+ exports.getDecimalsViaContract = getDecimalsViaContract;
106807
106975
  exports.isSameAddress = isSameAddress;
106808
106976
  exports.networkAddresses = networkAddresses;
106809
106977
  exports.validateAndParseAddress = validateAndParseAddress;