@aurigami/sdk 1.23.1 → 1.24.1

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 (123) hide show
  1. package/dist/SDK.d.ts +48 -65
  2. package/dist/SDK.js +165 -0
  3. package/dist/abis/index.d.ts +18 -18
  4. package/dist/abis/index.js +39 -0
  5. package/dist/consts/constants.d.ts +139 -139
  6. package/dist/consts/constants.js +185 -0
  7. package/dist/consts/decimals.d.ts +1 -1
  8. package/dist/consts/decimals.js +35 -0
  9. package/dist/consts/deployments.d.ts +3 -3
  10. package/dist/consts/deployments.js +9 -0
  11. package/dist/consts/dummy.d.ts +13 -13
  12. package/dist/consts/dummy.js +43 -0
  13. package/dist/consts/index.d.ts +5 -5
  14. package/dist/consts/index.js +9 -0
  15. package/dist/consts/symbols.d.ts +1 -1
  16. package/dist/consts/symbols.js +10 -0
  17. package/dist/entities/BlockchainEntity.d.ts +13 -13
  18. package/dist/entities/BlockchainEntity.js +36 -0
  19. package/dist/entities/auriEnv.d.ts +34 -40
  20. package/dist/entities/auriEnv.js +166 -0
  21. package/dist/entities/index.d.ts +4 -4
  22. package/dist/entities/index.js +8 -0
  23. package/dist/entities/token.d.ts +7 -7
  24. package/dist/entities/token.js +27 -0
  25. package/dist/entities/tokenAmount.d.ts +13 -13
  26. package/dist/entities/tokenAmount.js +52 -0
  27. package/dist/helpers/aurigami-api.d.ts +13 -13
  28. package/dist/helpers/aurigami-api.js +26 -0
  29. package/dist/helpers/aurora-api-helpers.d.ts +1 -1
  30. package/dist/helpers/aurora-api-helpers.js +15 -0
  31. package/dist/helpers/graphql-helpers.d.ts +1 -1
  32. package/dist/helpers/graphql-helpers.js +13 -0
  33. package/dist/helpers/helpers.d.ts +23 -40
  34. package/dist/helpers/helpers.js +148 -0
  35. package/dist/helpers/historicalPriceFetcher.d.ts +15 -15
  36. package/dist/helpers/historicalPriceFetcher.js +142 -0
  37. package/dist/helpers/index.d.ts +7 -7
  38. package/dist/helpers/index.js +11 -0
  39. package/dist/helpers/kyber-aggregator-api.d.ts +5 -5
  40. package/dist/helpers/kyber-aggregator-api.js +27 -0
  41. package/dist/helpers/multicall.d.ts +40 -0
  42. package/dist/helpers/multicall.js +203 -0
  43. package/dist/helpers/notification-api.d.ts +2 -2
  44. package/dist/helpers/notification-api.js +21 -0
  45. package/dist/helpers/one-inch-aggregator-api.d.ts +21 -21
  46. package/dist/helpers/one-inch-aggregator-api.js +19 -0
  47. package/dist/helpers/priceFetcher.d.ts +36 -36
  48. package/dist/helpers/priceFetcher.js +292 -0
  49. package/dist/helpers/subgraphQuery.d.ts +1 -1
  50. package/dist/helpers/subgraphQuery.js +22 -0
  51. package/dist/helpers/transfer-event-query.d.ts +17 -26
  52. package/dist/helpers/transfer-event-query.js +41 -0
  53. package/dist/index.d.ts +7 -7
  54. package/dist/index.js +17 -8
  55. package/dist/interactors/Airdrop.d.ts +17 -26
  56. package/dist/interactors/Airdrop.js +48 -0
  57. package/dist/interactors/MoneyMarket.d.ts +63 -63
  58. package/dist/interactors/MoneyMarket.js +392 -0
  59. package/dist/interactors/Multicall.d.ts +15 -18
  60. package/dist/interactors/Multicall.js +36 -0
  61. package/dist/interactors/Papermill.d.ts +27 -57
  62. package/dist/interactors/Papermill.js +125 -0
  63. package/dist/interactors/PlyGame.d.ts +30 -42
  64. package/dist/interactors/PlyGame.js +146 -0
  65. package/dist/interactors/PlyTokenLock.d.ts +16 -16
  66. package/dist/interactors/PlyTokenLock.js +44 -0
  67. package/dist/interactors/Pulp.d.ts +17 -17
  68. package/dist/interactors/Pulp.js +43 -0
  69. package/dist/interactors/Referral.d.ts +35 -78
  70. package/dist/interactors/Referral.js +158 -0
  71. package/dist/interactors/Staking.d.ts +20 -26
  72. package/dist/interactors/Staking.js +106 -0
  73. package/dist/interactors/index.d.ts +9 -9
  74. package/dist/interactors/index.js +13 -0
  75. package/dist/interactors/misc.d.ts +31 -39
  76. package/dist/interactors/misc.js +318 -0
  77. package/dist/types/index.d.ts +175 -197
  78. package/dist/types/index.js +18 -0
  79. package/package.json +4 -16
  80. package/dist/sdk.cjs.development.js +0 -6325
  81. package/dist/sdk.cjs.development.js.map +0 -1
  82. package/dist/sdk.cjs.production.min.js +0 -2
  83. package/dist/sdk.cjs.production.min.js.map +0 -1
  84. package/dist/sdk.esm.js +0 -6193
  85. package/dist/sdk.esm.js.map +0 -1
  86. package/src/SDK.ts +0 -223
  87. package/src/abis/index.ts +0 -38
  88. package/src/consts/constants.ts +0 -210
  89. package/src/consts/decimals.ts +0 -31
  90. package/src/consts/deployments.ts +0 -4
  91. package/src/consts/dummy.ts +0 -51
  92. package/src/consts/index.ts +0 -5
  93. package/src/consts/symbols.ts +0 -9
  94. package/src/entities/BlockchainEntity.ts +0 -29
  95. package/src/entities/auriEnv.ts +0 -178
  96. package/src/entities/index.ts +0 -4
  97. package/src/entities/token.ts +0 -21
  98. package/src/entities/tokenAmount.ts +0 -48
  99. package/src/helpers/aurigami-api.ts +0 -42
  100. package/src/helpers/aurora-api-helpers.ts +0 -17
  101. package/src/helpers/graphql-helpers.ts +0 -8
  102. package/src/helpers/helpers.ts +0 -212
  103. package/src/helpers/historicalPriceFetcher.ts +0 -203
  104. package/src/helpers/index.ts +0 -7
  105. package/src/helpers/kyber-aggregator-api.ts +0 -37
  106. package/src/helpers/notification-api.ts +0 -22
  107. package/src/helpers/one-inch-aggregator-api.ts +0 -45
  108. package/src/helpers/priceFetcher.ts +0 -389
  109. package/src/helpers/subgraphQuery.ts +0 -17
  110. package/src/helpers/transfer-event-query.ts +0 -68
  111. package/src/index.ts +0 -14
  112. package/src/interactors/Airdrop.ts +0 -72
  113. package/src/interactors/MoneyMarket.ts +0 -482
  114. package/src/interactors/Multicall.ts +0 -50
  115. package/src/interactors/Papermill.ts +0 -185
  116. package/src/interactors/PlyGame.ts +0 -172
  117. package/src/interactors/PlyTokenLock.ts +0 -47
  118. package/src/interactors/Pulp.ts +0 -39
  119. package/src/interactors/Referral.ts +0 -214
  120. package/src/interactors/Staking.ts +0 -152
  121. package/src/interactors/index.ts +0 -9
  122. package/src/interactors/misc.ts +0 -431
  123. package/src/types/index.ts +0 -222
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuriEnv = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const abis = tslib_1.__importStar(require("../abis"));
6
+ const constants_1 = require("../consts/constants");
7
+ const helpers_1 = require("../helpers/helpers");
8
+ const multicall_1 = require("../helpers/multicall");
9
+ const BlockchainEntity_1 = require("./BlockchainEntity");
10
+ class AuriEnv extends BlockchainEntity_1.BlockchainEntityRead {
11
+ constructor() {
12
+ super(...arguments);
13
+ Object.defineProperty(this, "_comptroller", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: null
18
+ });
19
+ Object.defineProperty(this, "_auriFairLaunch", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: null
24
+ });
25
+ Object.defineProperty(this, "_auriLens", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: null
30
+ });
31
+ Object.defineProperty(this, "_ply", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: null
36
+ });
37
+ Object.defineProperty(this, "_pulp", {
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true,
41
+ value: null
42
+ });
43
+ Object.defineProperty(this, "_auriInternalLens", {
44
+ enumerable: true,
45
+ configurable: true,
46
+ writable: true,
47
+ value: null
48
+ });
49
+ Object.defineProperty(this, "_auriAirdrop", {
50
+ enumerable: true,
51
+ configurable: true,
52
+ writable: true,
53
+ value: null
54
+ });
55
+ Object.defineProperty(this, "_referralDirectoryV2", {
56
+ enumerable: true,
57
+ configurable: true,
58
+ writable: true,
59
+ value: null
60
+ });
61
+ Object.defineProperty(this, "_oracle", {
62
+ enumerable: true,
63
+ configurable: true,
64
+ writable: true,
65
+ value: null
66
+ });
67
+ Object.defineProperty(this, "_plygame", {
68
+ enumerable: true,
69
+ configurable: true,
70
+ writable: true,
71
+ value: null
72
+ });
73
+ Object.defineProperty(this, "_plyTokenLock", {
74
+ enumerable: true,
75
+ configurable: true,
76
+ writable: true,
77
+ value: null
78
+ });
79
+ }
80
+ getContract(address, abi) {
81
+ return (0, multicall_1.createContract)(address, abi, this._networkConnection.provider);
82
+ }
83
+ getAuTokenContracts() {
84
+ return constants_1.networkAddresses.auTokens.map((auToken) => {
85
+ const contract = this.getContract(auToken.address, abis.AuTokenABI.abi);
86
+ contract.underlying = auToken.underlying;
87
+ return contract;
88
+ });
89
+ }
90
+ getAuErc20Contract({ address, underlyingName, }) {
91
+ (0, helpers_1.assert)(address !== undefined || underlyingName !== undefined, 'Either address or underlyingName must be provided');
92
+ if (underlyingName) {
93
+ address = constants_1.networkAddresses.auTokens.find((auToken) => auToken.name == 'au' + underlyingName)?.address;
94
+ (0, helpers_1.assert)(address !== undefined, `AuToken with underlying ${underlyingName} not found`);
95
+ }
96
+ return this.getContract(address, abis.AuErc20ABI.abi);
97
+ }
98
+ get comptroller() {
99
+ if (!this._comptroller) {
100
+ this._comptroller = this.getContract(constants_1.networkAddresses.misc.COMPTROLLER, abis.ComptrollerABI.abi);
101
+ }
102
+ return this._comptroller;
103
+ }
104
+ get auriFairLaunch() {
105
+ if (!this._auriFairLaunch) {
106
+ this._auriFairLaunch = this.getContract(constants_1.networkAddresses.misc.AURIFAIRLAUNCH, abis.AuriFairLaunchABI.abi);
107
+ }
108
+ return this._auriFairLaunch;
109
+ }
110
+ get auriLens() {
111
+ if (!this._auriLens) {
112
+ this._auriLens = this.getContract(constants_1.networkAddresses.misc.AURILENS, abis.AuriLensABI.abi);
113
+ }
114
+ return this._auriLens;
115
+ }
116
+ get ply() {
117
+ if (!this._ply) {
118
+ this._ply = this.getContract(constants_1.networkAddresses.tokens.PLY, abis.EIP20InterfaceABI.abi);
119
+ }
120
+ return this._ply;
121
+ }
122
+ get pulp() {
123
+ if (!this._pulp) {
124
+ this._pulp = this.getContract(constants_1.networkAddresses.tokens.PULP, abis.PulpABI.abi);
125
+ }
126
+ return this._pulp;
127
+ }
128
+ get auriInternalLens() {
129
+ if (!this._auriInternalLens) {
130
+ this._auriInternalLens = this.getContract(constants_1.networkAddresses.misc.AURI_INTERNAL_LENS, abis.AuriInternalLensABI.abi);
131
+ }
132
+ return this._auriInternalLens;
133
+ }
134
+ get auriAirdrop() {
135
+ if (!this._auriAirdrop) {
136
+ this._auriAirdrop = this.getContract(constants_1.networkAddresses.misc.AURI_AIRDROP, abis.AuriAirdropABI.abi);
137
+ }
138
+ return this._auriAirdrop;
139
+ }
140
+ get referralDirectoryV2() {
141
+ if (!this._referralDirectoryV2) {
142
+ this._referralDirectoryV2 = this.getContract(constants_1.networkAddresses.misc.REFERRAL_V2, abis.ReferralDirectoryV2ABI.abi);
143
+ }
144
+ return this._referralDirectoryV2;
145
+ }
146
+ get oracle() {
147
+ if (!this._oracle) {
148
+ this._oracle = this.getContract(constants_1.networkAddresses.misc.PYTH_ORACLE, abis.AuriOracleABI.abi);
149
+ }
150
+ return this._oracle;
151
+ }
152
+ get plygame() {
153
+ if (!this._plygame) {
154
+ this._plygame = this.getContract(constants_1.networkAddresses.misc.PLYGAME, abis.PlyGameABI.abi);
155
+ }
156
+ return this._plygame;
157
+ }
158
+ get plyTokenLock() {
159
+ if (!this._plyTokenLock) {
160
+ this._plyTokenLock = this.getContract(constants_1.networkAddresses.misc.PLY_TOKEN_LOCK, abis.PlyTokenLockABI.abi);
161
+ }
162
+ return this._plyTokenLock;
163
+ }
164
+ }
165
+ exports.AuriEnv = AuriEnv;
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVyaUVudi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbnRpdGllcy9hdXJpRW52LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFnQkEsc0RBQWdDO0FBQ2hDLG1EQUF1RDtBQUN2RCxnREFBNEM7QUFDNUMsb0RBQXNEO0FBRXRELHlEQUEwRDtBQUUxRCxNQUFhLE9BQVEsU0FBUSx1Q0FBb0I7SUFBakQ7O1FBQ1U7Ozs7bUJBQW9ELElBQUk7V0FBQztRQUN6RDs7OzttQkFBMEQsSUFBSTtXQUFDO1FBQy9EOzs7O21CQUE4QyxJQUFJO1dBQUM7UUFDbkQ7Ozs7bUJBQXVDLElBQUk7V0FBQztRQUM1Qzs7OzttQkFBc0MsSUFBSTtXQUFDO1FBQzNDOzs7O21CQUE4RCxJQUFJO1dBQUM7UUFDbkU7Ozs7bUJBQW9ELElBQUk7V0FBQztRQUN6RDs7OzttQkFBb0UsSUFBSTtXQUFDO1FBQ3pFOzs7O21CQUE4QyxJQUFJO1dBQUM7UUFDbkQ7Ozs7bUJBQTRDLElBQUk7V0FBQztRQUNqRDs7OzttQkFBc0QsSUFBSTtXQUFDO0lBaUpyRSxDQUFDO0lBL0lRLFdBQVcsQ0FBeUIsT0FBZSxFQUFFLEdBQVE7UUFDbEUsT0FBTyxJQUFBLDBCQUFjLEVBQVEsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixPQUFPLDRCQUFnQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUMvQixPQUFPLENBQUMsT0FBTyxFQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUNLLENBQUM7WUFDM0IsUUFBUSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ3pDLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxD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
@@ -1,4 +1,4 @@
1
- export * from './auriEnv';
2
- export * from './BlockchainEntity';
3
- export * from './token';
4
- export * from './tokenAmount';
1
+ export * from './auriEnv';
2
+ export * from './BlockchainEntity';
3
+ export * from './token';
4
+ export * from './tokenAmount';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./auriEnv"), exports);
5
+ tslib_1.__exportStar(require("./BlockchainEntity"), exports);
6
+ tslib_1.__exportStar(require("./token"), exports);
7
+ tslib_1.__exportStar(require("./tokenAmount"), exports);
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW50aXRpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0RBQTBCO0FBQzFCLDZEQUFtQztBQUNuQyxrREFBd0I7QUFDeEIsd0RBQThCIn0=
@@ -1,7 +1,7 @@
1
- export declare class Token {
2
- readonly address: string;
3
- readonly decimals: number;
4
- constructor(address: string, decimals: number);
5
- }
6
- export declare const PLYToken: Token;
7
- export declare const PLYWNEARToken: Token;
1
+ export declare class Token {
2
+ readonly address: string;
3
+ readonly decimals: number;
4
+ constructor(address: string, decimals: number);
5
+ }
6
+ export declare const PLYToken: Token;
7
+ export declare const PLYWNEARToken: Token;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PLYWNEARToken = exports.PLYToken = exports.Token = void 0;
4
+ const constants_1 = require("../consts/constants");
5
+ const helpers_1 = require("../helpers/helpers");
6
+ class Token {
7
+ constructor(address, decimals) {
8
+ Object.defineProperty(this, "address", {
9
+ enumerable: true,
10
+ configurable: true,
11
+ writable: true,
12
+ value: void 0
13
+ });
14
+ Object.defineProperty(this, "decimals", {
15
+ enumerable: true,
16
+ configurable: true,
17
+ writable: true,
18
+ value: void 0
19
+ });
20
+ this.address = address.toLowerCase();
21
+ this.decimals = decimals;
22
+ }
23
+ }
24
+ exports.Token = Token;
25
+ exports.PLYToken = new Token(constants_1.networkAddresses.tokens.PLY, (0, helpers_1.getDecimal)(constants_1.networkAddresses.tokens.PLY));
26
+ exports.PLYWNEARToken = new Token(constants_1.networkAddresses.tokens.PLYWNEAR, (0, helpers_1.getDecimal)(constants_1.networkAddresses.tokens.PLYWNEAR));
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW50aXRpZXMvdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQXVEO0FBQ3ZELGdEQUFnRDtBQUVoRCxNQUFhLEtBQUs7SUFHaEIsWUFBbUIsT0FBZSxFQUFFLFFBQWdCO1FBRnBDOzs7OztXQUFnQjtRQUNoQjs7Ozs7V0FBaUI7UUFFL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBUEQsc0JBT0M7QUFFWSxRQUFBLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FDL0IsNEJBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFDM0IsSUFBQSxvQkFBVSxFQUFDLDRCQUFnQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FDeEMsQ0FBQztBQUVXLFFBQUEsYUFBYSxHQUFHLElBQUksS0FBSyxDQUNwQyw0QkFBZ0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUNoQyxJQUFBLG9CQUFVLEVBQUMsNEJBQWdCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUM3QyxDQUFDIn0=
@@ -1,13 +1,13 @@
1
- import BigNumber from 'bignumber.js';
2
- import { Address } from '../types';
3
- import { Token } from './token';
4
- export declare class TokenAmount {
5
- readonly token: Token;
6
- private rawAmnt;
7
- constructor(token: Token, amount: string, isRaw?: boolean);
8
- formattedAmount(decimal?: number, fmt?: BigNumber.Format): string;
9
- formattedAmountWithSymbol(decimal?: number, fmt?: BigNumber.Format): string;
10
- rawAmount(): string;
11
- compare(other: TokenAmount): number;
12
- static fromAddressAndAmount(tokenAddress: Address, amount: string, isRaw?: boolean): TokenAmount;
13
- }
1
+ import BigNumber from 'bignumber.js';
2
+ import { Address } from '../types';
3
+ import { Token } from './token';
4
+ export declare class TokenAmount {
5
+ readonly token: Token;
6
+ private rawAmnt;
7
+ constructor(token: Token, amount: string, isRaw?: boolean);
8
+ formattedAmount(decimal?: number, fmt?: BigNumber.Format): string;
9
+ formattedAmountWithSymbol(decimal?: number, fmt?: BigNumber.Format): string;
10
+ rawAmount(): string;
11
+ compare(other: TokenAmount): number;
12
+ static fromAddressAndAmount(tokenAddress: Address, amount: string, isRaw?: boolean): TokenAmount;
13
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenAmount = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
6
+ const helpers_1 = require("../helpers/helpers");
7
+ const token_1 = require("./token");
8
+ class TokenAmount {
9
+ constructor(token, amount, isRaw = true) {
10
+ Object.defineProperty(this, "token", {
11
+ enumerable: true,
12
+ configurable: true,
13
+ writable: true,
14
+ value: void 0
15
+ });
16
+ Object.defineProperty(this, "rawAmnt", {
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true,
20
+ value: void 0
21
+ });
22
+ if (isRaw) {
23
+ this.rawAmnt = amount;
24
+ }
25
+ else {
26
+ this.rawAmnt = new bignumber_js_1.default(amount).times((0, helpers_1.decimalFactor)(token.decimals)).toFixed(0);
27
+ }
28
+ this.token = token;
29
+ }
30
+ formattedAmount(decimal, fmt) {
31
+ if (decimal !== undefined && fmt !== undefined) {
32
+ return new bignumber_js_1.default(this.rawAmnt)
33
+ .div((0, helpers_1.decimalFactor)(this.token.decimals))
34
+ .toFormat(decimal, fmt);
35
+ }
36
+ return new bignumber_js_1.default(this.rawAmnt).div((0, helpers_1.decimalFactor)(this.token.decimals)).toString();
37
+ }
38
+ formattedAmountWithSymbol(decimal, fmt) {
39
+ return `${this.formattedAmount(decimal, fmt)} ${(0, helpers_1.getSymbol)(this.token.address)}`;
40
+ }
41
+ rawAmount() {
42
+ return this.rawAmnt;
43
+ }
44
+ compare(other) {
45
+ return new bignumber_js_1.default(this.rawAmnt).comparedTo(new bignumber_js_1.default(other.rawAmnt));
46
+ }
47
+ static fromAddressAndAmount(tokenAddress, amount, isRaw = true) {
48
+ return new TokenAmount(new token_1.Token(tokenAddress, (0, helpers_1.getDecimal)(tokenAddress)), amount, isRaw);
49
+ }
50
+ }
51
+ exports.TokenAmount = TokenAmount;
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5BbW91bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW50aXRpZXMvdG9rZW5BbW91bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHdFQUFxQztBQUNyQyxnREFBMEU7QUFFMUUsbUNBQWdDO0FBRWhDLE1BQWEsV0FBVztJQUl0QixZQUFtQixLQUFZLEVBQUUsTUFBYyxFQUFFLFFBQWlCLElBQUk7UUFIdEQ7Ozs7O1dBQWE7UUFDckI7Ozs7O1dBQWdCO1FBR3RCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxzQkFBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFBLHVCQUFhLEVBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRU0sZUFBZSxDQUFDLE9BQWdCLEVBQUUsR0FBc0I7UUFDN0QsSUFBSSxPQUFPLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvQyxPQUFPLElBQUksc0JBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2lCQUMvQixHQUFHLENBQUMsSUFBQSx1QkFBYSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3ZDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE9BQU8sSUFBSSxzQkFBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBQSx1QkFBYSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4RixDQUFDO0lBRU0seUJBQXlCLENBQUMsT0FBZ0IsRUFBRSxHQUFzQjtRQUN2RSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBQSxtQkFBUyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUNsRixDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQWtCO1FBQy9CLE9BQU8sSUFBSSxzQkFBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxzQkFBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTSxNQUFNLENBQUMsb0JBQW9CLENBQ2hDLFlBQXFCLEVBQ3JCLE1BQWMsRUFDZCxRQUFpQixJQUFJO1FBRXJCLE9BQU8sSUFBSSxXQUFXLENBQUMsSUFBSSxhQUFLLENBQUMsWUFBWSxFQUFFLElBQUEsb0JBQVUsRUFBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMzRixDQUFDO0NBQ0Y7QUExQ0Qsa0NBMENDIn0=
@@ -1,13 +1,13 @@
1
- export declare function getApi(url: string, params?: Record<string, any>): Promise<any>;
2
- export declare type MetaApiResponse = {
3
- totalItems: number;
4
- itemCount: number;
5
- itemsPerPage: number;
6
- totalPages: number;
7
- currentPage: number;
8
- };
9
- export declare type PaginagedApiResponse<T> = {
10
- items: T[];
11
- meta: MetaApiResponse;
12
- };
13
- export declare function getPaginatedApi<T = any>(url: string, params?: Record<string, any>, page?: number, pageSize?: number): Promise<PaginagedApiResponse<T>>;
1
+ export declare function getApi(url: string, params?: Record<string, any>): Promise<any>;
2
+ export type MetaApiResponse = {
3
+ totalItems: number;
4
+ itemCount: number;
5
+ itemsPerPage: number;
6
+ totalPages: number;
7
+ currentPage: number;
8
+ };
9
+ export type PaginagedApiResponse<T> = {
10
+ items: T[];
11
+ meta: MetaApiResponse;
12
+ };
13
+ export declare function getPaginatedApi<T = any>(url: string, params?: Record<string, any>, page?: number, pageSize?: number): Promise<PaginagedApiResponse<T>>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPaginatedApi = exports.getApi = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const axios_1 = tslib_1.__importDefault(require("axios"));
6
+ const AURIGAMI_API_END_POINT = 'https://api.aurigami.finance/app/';
7
+ async function getApi(url, params = {}) {
8
+ const resp = await axios_1.default.get(AURIGAMI_API_END_POINT + url + '?' + new URLSearchParams(params), {
9
+ headers: { 'Content-Type': 'application/json' },
10
+ });
11
+ return resp.data;
12
+ }
13
+ exports.getApi = getApi;
14
+ async function getPaginatedApi(url, params = {}, page = 1, pageSize = 50) {
15
+ params = {
16
+ ...params,
17
+ page,
18
+ limit: pageSize,
19
+ };
20
+ const resp = await axios_1.default.get(AURIGAMI_API_END_POINT + url + '?' + new URLSearchParams(params), {
21
+ headers: { 'Content-Type': 'application/json' },
22
+ });
23
+ return resp.data;
24
+ }
25
+ exports.getPaginatedApi = getPaginatedApi;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVyaWdhbWktYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvYXVyaWdhbWktYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwwREFBMEI7QUFFMUIsTUFBTSxzQkFBc0IsR0FBRyxtQ0FBbUMsQ0FBQztBQUU1RCxLQUFLLFVBQVUsTUFBTSxDQUFDLEdBQVcsRUFBRSxTQUE4QixFQUFFO0lBQ3hFLE1BQU0sSUFBSSxHQUFHLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQzdGLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRTtLQUNoRCxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDbkIsQ0FBQztBQU5ELHdCQU1DO0FBZU0sS0FBSyxVQUFVLGVBQWUsQ0FDbkMsR0FBVyxFQUNYLFNBQThCLEVBQUUsRUFDaEMsT0FBZSxDQUFDLEVBQ2hCLFdBQW1CLEVBQUU7SUFFckIsTUFBTSxHQUFHO1FBQ1AsR0FBRyxNQUFNO1FBQ1QsSUFBSTtRQUNKLEtBQUssRUFBRSxRQUFRO0tBQ2hCLENBQUM7SUFDRixNQUFNLElBQUksR0FBRyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUM3RixPQUFPLEVBQUUsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUU7S0FDaEQsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ25CLENBQUM7QUFoQkQsMENBZ0JDIn0=
@@ -1 +1 @@
1
- export declare function getQuery(module: string, action: string, params?: Record<string, any>): Promise<any>;
1
+ export declare function getQuery(module: string, action: string, params?: Record<string, any>): Promise<any>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getQuery = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const axios_1 = tslib_1.__importDefault(require("axios"));
6
+ const AURORA_API_BASE_URL = 'https://explorer.mainnet.aurora.dev/api';
7
+ async function getQuery(module, action, params = {}) {
8
+ params = { ...params, module: module, action: action };
9
+ let resp = await axios_1.default.get(AURORA_API_BASE_URL + '?' + new URLSearchParams(params), {
10
+ headers: { 'Content-Type': 'application/json' },
11
+ });
12
+ return resp.data.result;
13
+ }
14
+ exports.getQuery = getQuery;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVyb3JhLWFwaS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvYXVyb3JhLWFwaS1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwwREFBMEI7QUFFMUIsTUFBTSxtQkFBbUIsR0FBRyx5Q0FBeUMsQ0FBQztBQUUvRCxLQUFLLFVBQVUsUUFBUSxDQUM1QixNQUFjLEVBQ2QsTUFBYyxFQUNkLFNBQThCLEVBQUU7SUFFaEMsTUFBTSxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFFdkQsSUFBSSxJQUFJLEdBQUcsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLG1CQUFtQixHQUFHLEdBQUcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNsRixPQUFPLEVBQUUsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUU7S0FDaEQsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU8sQ0FBQztBQUMzQixDQUFDO0FBWkQsNEJBWUMifQ==
@@ -1 +1 @@
1
- export declare function queryGraphQL(query: string, graphqlUrl: string): Promise<any>;
1
+ export declare function queryGraphQL(query: string, graphqlUrl: string): Promise<any>;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.queryGraphQL = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const axios_1 = tslib_1.__importDefault(require("axios"));
6
+ async function queryGraphQL(query, graphqlUrl) {
7
+ let resp = await axios_1.default.post(graphqlUrl, {
8
+ query: query,
9
+ });
10
+ return resp.data.data;
11
+ }
12
+ exports.queryGraphQL = queryGraphQL;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZ3JhcGhxbC1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwwREFBMEI7QUFFbkIsS0FBSyxVQUFVLFlBQVksQ0FBQyxLQUFhLEVBQUUsVUFBa0I7SUFDbEUsSUFBSSxJQUFJLEdBQUcsTUFBTSxlQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUN0QyxLQUFLLEVBQUUsS0FBSztLQUNiLENBQUMsQ0FBQztJQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFLLENBQUM7QUFDekIsQ0FBQztBQUxELG9DQUtDIn0=
@@ -1,40 +1,23 @@
1
- import { TypedEvent } from '@aurigami/contracts/typechain/common';
2
- import { Provider } from '@ethersproject/abstract-provider';
3
- import BigNumber from 'bignumber.js';
4
- import { Result } from 'ethers/lib/utils';
5
- import { Address } from '../types';
6
- export declare function assert(condition: boolean, message?: string): void;
7
- export declare function formatObject(object: Object): string;
8
- export declare function decimalFactor(decimal: number): string;
9
- export declare const isSameAddress: (address1: Address, address2: Address) => boolean;
10
- export declare const getCurrentTimestamp: () => number;
11
- export declare function sleep(duration: number): Promise<void>;
12
- export declare function validateAndParseAddress(address: Address): Address;
13
- export declare function getDecimal(address: Address): number;
14
- export declare function getSymbol(address: Address): string;
15
- export declare function getUnderlying(address: Address): Address;
16
- export declare function calcLMRewardApr(rewardsValue: BigNumber, totalStakeValue: BigNumber, frequencyPerYear: number): BigNumber;
17
- export declare function calcNetApy(suppliedValue: BigNumber, supplyApy: BigNumber, borrowedValue: BigNumber, borrowApy: BigNumber): BigNumber;
18
- export declare function getBlockTimestamp(provider: Provider, blockNumber: number): Promise<number>;
19
- export declare function getBlocksTimestampViaRPC(provider: Provider, blocksNumber: number[]): Promise<number[]>;
20
- /**
21
- * Get timestamp of multiple blocks.
22
- * @note the getBlockTimestamp function is too slow because of the RPC call, even with Promise.all.
23
- * So I use the GraphQL endpoint of Aurora instead. You can check it here: https://explorer.mainnet.aurora.dev/graphiql
24
- */
25
- export declare function getBlocksTimestamp(provider: Provider, blockNumbers: number[]): Promise<number[]>;
26
- /**
27
- * Get the block number of the last block that has a timestamp before the given timestamp
28
- * @param timestamp input timestamp
29
- * @returns return the last block that its timestamp <= the give timestamp
30
- * @note Check this API for more information: https://aurorascan.dev/apis#blocks
31
- *
32
- * This function is much faster than using binary search.
33
- */
34
- export declare function getBlockBeforeTimestamp(provider: Provider, timestamp: number): Promise<number>;
35
- export declare function devLog(message?: any, ...optionalParams: any[]): void;
36
- /**
37
- * Sorts (in place) an array of Events by blocknumber.
38
- * This method mutates the array and returns a reference to the same array.
39
- **/
40
- export declare function sortEvents<T extends Result>(events: TypedEvent<T>[]): TypedEvent<T>[];
1
+ import { TypedEvent } from '@aurigami/contracts/typechain/common';
2
+ import { Provider } from '@ethersproject/abstract-provider';
3
+ import BigNumber from 'bignumber.js';
4
+ import { Result } from 'ethers/lib/utils';
5
+ import { Address } from '../types';
6
+ export declare function assert(condition: boolean, message?: string): void;
7
+ export declare function formatObject(object: Object): string;
8
+ export declare function decimalFactor(decimal: number): string;
9
+ export declare const isSameAddress: (address1: Address, address2: Address) => boolean;
10
+ export declare const getCurrentTimestamp: () => number;
11
+ export declare function sleep(duration: number): Promise<void>;
12
+ export declare function validateAndParseAddress(address: Address): Address;
13
+ export declare function getDecimal(address: Address): number;
14
+ export declare function getSymbol(address: Address): string;
15
+ export declare function getUnderlying(address: Address): Address;
16
+ export declare function calcLMRewardApr(rewardsValue: BigNumber, totalStakeValue: BigNumber, frequencyPerYear: number): BigNumber;
17
+ export declare function calcNetApy(suppliedValue: BigNumber, supplyApy: BigNumber, borrowedValue: BigNumber, borrowApy: BigNumber): BigNumber;
18
+ export declare function getBlockTimestamp(provider: Provider, blockNumber: number): Promise<number>;
19
+ export declare function getBlocksTimestampViaRPC(provider: Provider, blocksNumber: number[]): Promise<number[]>;
20
+ export declare function getBlocksTimestamp(provider: Provider, blockNumbers: number[]): Promise<number[]>;
21
+ export declare function getBlockBeforeTimestamp(provider: Provider, timestamp: number): Promise<number>;
22
+ export declare function devLog(message?: any, ...optionalParams: any[]): void;
23
+ export declare function sortEvents<T extends Result>(events: TypedEvent<T>[]): TypedEvent<T>[];
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sortEvents = exports.devLog = exports.getBlockBeforeTimestamp = exports.getBlocksTimestamp = exports.getBlocksTimestampViaRPC = exports.getBlockTimestamp = exports.calcNetApy = exports.calcLMRewardApr = exports.getUnderlying = exports.getSymbol = exports.getDecimal = exports.validateAndParseAddress = exports.sleep = exports.getCurrentTimestamp = exports.isSameAddress = exports.decimalFactor = exports.formatObject = exports.assert = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
6
+ const ethers_1 = require("ethers");
7
+ const constants_1 = require("../consts/constants");
8
+ const decimals_1 = require("../consts/decimals");
9
+ const symbols_1 = require("../consts/symbols");
10
+ const aurora_api_helpers_1 = require("./aurora-api-helpers");
11
+ const graphql_helpers_1 = require("./graphql-helpers");
12
+ function assert(condition, message = '') {
13
+ if (!condition) {
14
+ message = 'Assertion failed' + (message ? ': ' + message : '');
15
+ throw new Error(message);
16
+ }
17
+ }
18
+ exports.assert = assert;
19
+ function formatObject(object) {
20
+ return JSON.stringify(object, null, ' ');
21
+ }
22
+ exports.formatObject = formatObject;
23
+ function decimalFactor(decimal) {
24
+ return ethers_1.BigNumber.from(10).pow(decimal).toString();
25
+ }
26
+ exports.decimalFactor = decimalFactor;
27
+ const isSameAddress = (address1, address2) => {
28
+ return address1.toLowerCase() == address2.toLowerCase();
29
+ };
30
+ exports.isSameAddress = isSameAddress;
31
+ const getCurrentTimestamp = () => {
32
+ return Math.trunc(Date.now() / 1000);
33
+ };
34
+ exports.getCurrentTimestamp = getCurrentTimestamp;
35
+ async function sleep(duration) {
36
+ return new Promise((resolve) => {
37
+ setTimeout(resolve, duration);
38
+ });
39
+ }
40
+ exports.sleep = sleep;
41
+ function validateAndParseAddress(address) {
42
+ try {
43
+ return ethers_1.utils.getAddress(address);
44
+ }
45
+ catch (error) {
46
+ throw new Error('Invalid address: ' + address);
47
+ }
48
+ }
49
+ exports.validateAndParseAddress = validateAndParseAddress;
50
+ function getDecimal(address) {
51
+ let addressLowercase = address.toLowerCase();
52
+ assert(decimals_1.decimalRecords[addressLowercase] != undefined, 'Decimal not found for ' + address);
53
+ return decimals_1.decimalRecords[addressLowercase];
54
+ }
55
+ exports.getDecimal = getDecimal;
56
+ function getSymbol(address) {
57
+ let addressLowercase = address.toLowerCase();
58
+ assert(symbols_1.symbolRecords[addressLowercase] != undefined, 'Symbol not found for ' + address);
59
+ return symbols_1.symbolRecords[addressLowercase];
60
+ }
61
+ exports.getSymbol = getSymbol;
62
+ function getUnderlying(address) {
63
+ let addressLowercase = address.toLowerCase();
64
+ let matching = constants_1.networkAddresses.auTokens.filter((e) => e.address == addressLowercase);
65
+ if (matching.length == 0) {
66
+ throw new Error('Underlying not found for ' + address);
67
+ }
68
+ return matching[0].underlying;
69
+ }
70
+ exports.getUnderlying = getUnderlying;
71
+ function calcLMRewardApr(rewardsValue, totalStakeValue, frequencyPerYear) {
72
+ if (rewardsValue.isZero()) {
73
+ return new bignumber_js_1.default(0);
74
+ }
75
+ if (totalStakeValue.lte(0)) {
76
+ return rewardsValue;
77
+ }
78
+ return rewardsValue.multipliedBy(frequencyPerYear).dividedBy(totalStakeValue);
79
+ }
80
+ exports.calcLMRewardApr = calcLMRewardApr;
81
+ function calcNetApy(suppliedValue, supplyApy, borrowedValue, borrowApy) {
82
+ return suppliedValue.multipliedBy(supplyApy).minus(borrowedValue.multipliedBy(borrowApy));
83
+ }
84
+ exports.calcNetApy = calcNetApy;
85
+ async function getBlockTimestamp(provider, blockNumber) {
86
+ const block = await provider.getBlock(blockNumber);
87
+ return block.timestamp;
88
+ }
89
+ exports.getBlockTimestamp = getBlockTimestamp;
90
+ async function getBlocksTimestampViaRPC(provider, blocksNumber) {
91
+ const CHUNK_SIZE = 200;
92
+ let results = [];
93
+ for (let i = 0; i < blocksNumber.length; i += CHUNK_SIZE) {
94
+ let slice = blocksNumber.slice(i, i + CHUNK_SIZE);
95
+ let promises = slice.map(async (blockNumber) => getBlockTimestamp(provider, blockNumber));
96
+ results = results.concat(await Promise.all(promises));
97
+ }
98
+ return results;
99
+ }
100
+ exports.getBlocksTimestampViaRPC = getBlocksTimestampViaRPC;
101
+ async function getBlocksTimestamp(provider, blockNumbers) {
102
+ if (blockNumbers.length == 0)
103
+ return [];
104
+ const CHUNK_SIZE = 100;
105
+ let promises = [];
106
+ let lines = blockNumbers.map((x) => `b${x}: block(number: ${x}) { timestamp }`);
107
+ for (let i = 0; i < lines.length; i += CHUNK_SIZE) {
108
+ let query = `{ ${lines.slice(i, i + CHUNK_SIZE).join('\n')} }`;
109
+ promises.push((0, graphql_helpers_1.queryGraphQL)(query, constants_1.GRAPHQL_URL));
110
+ }
111
+ let results = (await Promise.all(promises)).reduce((acc, cur) => {
112
+ return { ...acc, ...cur };
113
+ }, {});
114
+ let missingBlocks = blockNumbers.filter((blockNumber) => !results[`b${blockNumber}`]);
115
+ if (missingBlocks.length > 0) {
116
+ devLog(`These blocks are missing from Aurora GraphQL endpoint: ${missingBlocks.join(', ')}`);
117
+ }
118
+ let missingBlocksTimestamps = await getBlocksTimestampViaRPC(provider, missingBlocks);
119
+ missingBlocksTimestamps.forEach((timestamp, index) => {
120
+ results[`b${missingBlocks[index]}`] = { timestamp: new Date(timestamp * 1000).toISOString() };
121
+ });
122
+ return blockNumbers.map((blockNumber) => Math.trunc(new Date(results[`b${blockNumber}`].timestamp).getTime() / 1000));
123
+ }
124
+ exports.getBlocksTimestamp = getBlocksTimestamp;
125
+ async function getBlockBeforeTimestamp(provider, timestamp) {
126
+ let result = await (0, aurora_api_helpers_1.getQuery)('block', 'getblocknobytime', {
127
+ timestamp: timestamp,
128
+ closest: 'before',
129
+ });
130
+ return parseInt(result.blockNumber) || (await provider.getBlockNumber());
131
+ }
132
+ exports.getBlockBeforeTimestamp = getBlockBeforeTimestamp;
133
+ function devLog(message, ...optionalParams) {
134
+ if ('production' !== process.env.NODE_ENV) {
135
+ console.log('[DEV LOG]', message, ...optionalParams);
136
+ }
137
+ }
138
+ exports.devLog = devLog;
139
+ function sortEvents(events) {
140
+ return events.sort((a, b) => {
141
+ if (a.blockNumber == b.blockNumber) {
142
+ return a.logIndex - b.logIndex;
143
+ }
144
+ return a.blockNumber - b.blockNumber;
145
+ });
146
+ }
147
+ exports.sortEvents = sortEvents;
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLHdFQUFxQztBQUNyQyxtQ0FBZ0Q7QUFFaEQsbURBQW9FO0FBQ3BFLGlEQUFvRDtBQUNwRCwrQ0FBa0Q7QUFFbEQsNkRBQXFFO0FBQ3JFLHVEQUFpRDtBQUVqRCxTQUFnQixNQUFNLENBQUMsU0FBa0IsRUFBRSxVQUFrQixFQUFFO0lBQzdELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE9BQU8sR0FBRyxrQkFBa0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0FBQ0gsQ0FBQztBQUxELHdCQUtDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLE1BQWM7SUFDekMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUZELG9DQUVDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLE9BQWU7SUFDM0MsT0FBTyxrQkFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDN0MsQ0FBQztBQUZELHNDQUVDO0FBRU0sTUFBTSxhQUFhLEdBQUcsQ0FBQyxRQUFpQixFQUFFLFFBQWlCLEVBQVcsRUFBRTtJQUM3RSxPQUFPLFFBQVEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDMUQsQ0FBQyxDQUFDO0FBRlcsUUFBQSxhQUFhLGlCQUV4QjtBQUVLLE1BQU0sbUJBQW1CLEdBQUcsR0FBVyxFQUFFO0lBQzlDLE9BQU8sSUFB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