@gainsnetwork/sdk 0.0.0-me-rc1

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 (236) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/lib/backend/globalTrades/index.d.ts +11 -0
  4. package/lib/backend/globalTrades/index.js +69 -0
  5. package/lib/backend/index.d.ts +3 -0
  6. package/lib/backend/index.js +28 -0
  7. package/lib/backend/tradingVariables/backend.types.d.ts +337 -0
  8. package/lib/backend/tradingVariables/backend.types.js +2 -0
  9. package/lib/backend/tradingVariables/converter.d.ts +38 -0
  10. package/lib/backend/tradingVariables/converter.js +359 -0
  11. package/lib/backend/tradingVariables/index.d.ts +5 -0
  12. package/lib/backend/tradingVariables/index.js +98 -0
  13. package/lib/backend/tradingVariables/types.d.ts +115 -0
  14. package/lib/backend/tradingVariables/types.js +14 -0
  15. package/lib/constants.d.ts +483 -0
  16. package/lib/constants.js +516 -0
  17. package/lib/contracts/addresses.d.ts +3 -0
  18. package/lib/contracts/addresses.js +35 -0
  19. package/lib/contracts/addresses.json +266 -0
  20. package/lib/contracts/index.d.ts +14 -0
  21. package/lib/contracts/index.js +92 -0
  22. package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +9327 -0
  23. package/lib/contracts/types/generated/GNSMultiCollatDiamond.js +2 -0
  24. package/lib/contracts/types/generated/GToken.d.ts +1917 -0
  25. package/lib/contracts/types/generated/GToken.js +2 -0
  26. package/lib/contracts/types/generated/GTokenOpenPnlFeed.d.ts +557 -0
  27. package/lib/contracts/types/generated/GTokenOpenPnlFeed.js +2 -0
  28. package/lib/contracts/types/generated/common.d.ts +22 -0
  29. package/lib/contracts/types/generated/common.js +2 -0
  30. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.d.ts +276 -0
  31. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +21557 -0
  32. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.d.ts +59 -0
  33. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.js +765 -0
  34. package/lib/contracts/types/generated/factories/GToken__factory.d.ts +121 -0
  35. package/lib/contracts/types/generated/factories/GToken__factory.js +2867 -0
  36. package/lib/contracts/types/generated/factories/index.d.ts +3 -0
  37. package/lib/contracts/types/generated/factories/index.js +12 -0
  38. package/lib/contracts/types/generated/index.d.ts +7 -0
  39. package/lib/contracts/types/generated/index.js +33 -0
  40. package/lib/contracts/types/index.d.ts +37 -0
  41. package/lib/contracts/types/index.js +30 -0
  42. package/lib/contracts/utils/borrowingFees.d.ts +9 -0
  43. package/lib/contracts/utils/borrowingFees.js +43 -0
  44. package/lib/contracts/utils/index.d.ts +3 -0
  45. package/lib/contracts/utils/index.js +19 -0
  46. package/lib/contracts/utils/openTrades.d.ts +12 -0
  47. package/lib/contracts/utils/openTrades.js +172 -0
  48. package/lib/contracts/utils/pairs.d.ts +18 -0
  49. package/lib/contracts/utils/pairs.js +602 -0
  50. package/lib/index.d.ts +10 -0
  51. package/lib/index.js +30 -0
  52. package/lib/markets/collateral/converter.d.ts +5 -0
  53. package/lib/markets/collateral/converter.js +11 -0
  54. package/lib/markets/collateral/index.d.ts +1 -0
  55. package/lib/markets/collateral/index.js +17 -0
  56. package/lib/markets/collateral/types.d.ts +7 -0
  57. package/lib/markets/collateral/types.js +2 -0
  58. package/lib/markets/commodities.d.ts +1 -0
  59. package/lib/markets/commodities.js +7 -0
  60. package/lib/markets/crypto.d.ts +1 -0
  61. package/lib/markets/crypto.js +6 -0
  62. package/lib/markets/forex.d.ts +3 -0
  63. package/lib/markets/forex.js +8 -0
  64. package/lib/markets/holdingFees/index.d.ts +46 -0
  65. package/lib/markets/holdingFees/index.js +104 -0
  66. package/lib/markets/holdingFees/types.d.ts +23 -0
  67. package/lib/markets/holdingFees/types.js +5 -0
  68. package/lib/markets/index.d.ts +11 -0
  69. package/lib/markets/index.js +27 -0
  70. package/lib/markets/indices.d.ts +1 -0
  71. package/lib/markets/indices.js +6 -0
  72. package/lib/markets/leverage/builder.d.ts +12 -0
  73. package/lib/markets/leverage/builder.js +25 -0
  74. package/lib/markets/leverage/getMarketLeverageRestrictions.d.ts +7 -0
  75. package/lib/markets/leverage/getMarketLeverageRestrictions.js +38 -0
  76. package/lib/markets/leverage/index.d.ts +3 -0
  77. package/lib/markets/leverage/index.js +19 -0
  78. package/lib/markets/leverage/types.d.ts +15 -0
  79. package/lib/markets/leverage/types.js +2 -0
  80. package/lib/markets/oi/converter.d.ts +62 -0
  81. package/lib/markets/oi/converter.js +111 -0
  82. package/lib/markets/oi/index.d.ts +49 -0
  83. package/lib/markets/oi/index.js +77 -0
  84. package/lib/markets/oi/types.d.ts +89 -0
  85. package/lib/markets/oi/types.js +6 -0
  86. package/lib/markets/price/builder.d.ts +25 -0
  87. package/lib/markets/price/builder.js +69 -0
  88. package/lib/markets/price/index.d.ts +7 -0
  89. package/lib/markets/price/index.js +23 -0
  90. package/lib/markets/price/marketPrice.d.ts +13 -0
  91. package/lib/markets/price/marketPrice.js +35 -0
  92. package/lib/markets/price/signedPrices.d.ts +36 -0
  93. package/lib/markets/price/signedPrices.js +181 -0
  94. package/lib/markets/price/types.d.ts +50 -0
  95. package/lib/markets/price/types.js +5 -0
  96. package/lib/markets/schedules/builders.d.ts +7 -0
  97. package/lib/markets/schedules/builders.js +81 -0
  98. package/lib/markets/schedules/checkers.d.ts +7 -0
  99. package/lib/markets/schedules/checkers.js +36 -0
  100. package/lib/markets/schedules/holidays.d.ts +4 -0
  101. package/lib/markets/schedules/holidays.js +77 -0
  102. package/lib/markets/schedules/index.d.ts +9 -0
  103. package/lib/markets/schedules/index.js +45 -0
  104. package/lib/markets/schedules/types.d.ts +43 -0
  105. package/lib/markets/schedules/types.js +37 -0
  106. package/lib/markets/stocks.d.ts +3 -0
  107. package/lib/markets/stocks.js +15 -0
  108. package/lib/pricing/depthBands.d.ts +39 -0
  109. package/lib/pricing/depthBands.js +94 -0
  110. package/lib/pricing/index.d.ts +4 -0
  111. package/lib/pricing/index.js +20 -0
  112. package/lib/trade/counterTrade/index.d.ts +2 -0
  113. package/lib/trade/counterTrade/index.js +18 -0
  114. package/lib/trade/counterTrade/types.d.ts +7 -0
  115. package/lib/trade/counterTrade/types.js +2 -0
  116. package/lib/trade/counterTrade/validateCounterTrade.d.ts +10 -0
  117. package/lib/trade/counterTrade/validateCounterTrade.js +29 -0
  118. package/lib/trade/effectiveLeverage/getTradeNewEffectiveLeverage.d.ts +20 -0
  119. package/lib/trade/effectiveLeverage/getTradeNewEffectiveLeverage.js +42 -0
  120. package/lib/trade/effectiveLeverage/index.d.ts +2 -0
  121. package/lib/trade/effectiveLeverage/index.js +21 -0
  122. package/lib/trade/effectiveLeverage/types.d.ts +30 -0
  123. package/lib/trade/effectiveLeverage/types.js +2 -0
  124. package/lib/trade/fees/borrowing/builder.d.ts +14 -0
  125. package/lib/trade/fees/borrowing/builder.js +33 -0
  126. package/lib/trade/fees/borrowing/converter.d.ts +17 -0
  127. package/lib/trade/fees/borrowing/converter.js +46 -0
  128. package/lib/trade/fees/borrowing/index.d.ts +81 -0
  129. package/lib/trade/fees/borrowing/index.js +259 -0
  130. package/lib/trade/fees/borrowing/types.d.ts +36 -0
  131. package/lib/trade/fees/borrowing/types.js +2 -0
  132. package/lib/trade/fees/borrowingV2/builder.d.ts +6 -0
  133. package/lib/trade/fees/borrowingV2/builder.js +23 -0
  134. package/lib/trade/fees/borrowingV2/converter.d.ts +75 -0
  135. package/lib/trade/fees/borrowingV2/converter.js +132 -0
  136. package/lib/trade/fees/borrowingV2/fetcher.d.ts +76 -0
  137. package/lib/trade/fees/borrowingV2/fetcher.js +179 -0
  138. package/lib/trade/fees/borrowingV2/index.d.ts +48 -0
  139. package/lib/trade/fees/borrowingV2/index.js +112 -0
  140. package/lib/trade/fees/borrowingV2/types.d.ts +95 -0
  141. package/lib/trade/fees/borrowingV2/types.js +5 -0
  142. package/lib/trade/fees/converter.d.ts +48 -0
  143. package/lib/trade/fees/converter.js +114 -0
  144. package/lib/trade/fees/fundingFees/builder.d.ts +9 -0
  145. package/lib/trade/fees/fundingFees/builder.js +38 -0
  146. package/lib/trade/fees/fundingFees/converter.d.ts +102 -0
  147. package/lib/trade/fees/fundingFees/converter.js +196 -0
  148. package/lib/trade/fees/fundingFees/fetcher.d.ts +66 -0
  149. package/lib/trade/fees/fundingFees/fetcher.js +141 -0
  150. package/lib/trade/fees/fundingFees/index.d.ts +124 -0
  151. package/lib/trade/fees/fundingFees/index.js +309 -0
  152. package/lib/trade/fees/fundingFees/pairContext.d.ts +33 -0
  153. package/lib/trade/fees/fundingFees/pairContext.js +17 -0
  154. package/lib/trade/fees/fundingFees/types.d.ts +77 -0
  155. package/lib/trade/fees/fundingFees/types.js +5 -0
  156. package/lib/trade/fees/index.d.ts +11 -0
  157. package/lib/trade/fees/index.js +87 -0
  158. package/lib/trade/fees/tiers/converter.d.ts +64 -0
  159. package/lib/trade/fees/tiers/converter.js +100 -0
  160. package/lib/trade/fees/tiers/index.d.ts +46 -0
  161. package/lib/trade/fees/tiers/index.js +135 -0
  162. package/lib/trade/fees/tiers/types.d.ts +22 -0
  163. package/lib/trade/fees/tiers/types.js +8 -0
  164. package/lib/trade/fees/trading/builder.d.ts +19 -0
  165. package/lib/trade/fees/trading/builder.js +21 -0
  166. package/lib/trade/fees/trading/converter.d.ts +32 -0
  167. package/lib/trade/fees/trading/converter.js +47 -0
  168. package/lib/trade/fees/trading/index.d.ts +62 -0
  169. package/lib/trade/fees/trading/index.js +157 -0
  170. package/lib/trade/fees/trading/types.d.ts +46 -0
  171. package/lib/trade/fees/trading/types.js +5 -0
  172. package/lib/trade/index.d.ts +10 -0
  173. package/lib/trade/index.js +26 -0
  174. package/lib/trade/liquidation/builder.d.ts +25 -0
  175. package/lib/trade/liquidation/builder.js +58 -0
  176. package/lib/trade/liquidation/converter.d.ts +23 -0
  177. package/lib/trade/liquidation/converter.js +46 -0
  178. package/lib/trade/liquidation/index.d.ts +29 -0
  179. package/lib/trade/liquidation/index.js +216 -0
  180. package/lib/trade/liquidation/types.d.ts +38 -0
  181. package/lib/trade/liquidation/types.js +2 -0
  182. package/lib/trade/oiWindows.d.ts +3 -0
  183. package/lib/trade/oiWindows.js +19 -0
  184. package/lib/trade/pnl/builder.d.ts +16 -0
  185. package/lib/trade/pnl/builder.js +43 -0
  186. package/lib/trade/pnl/converter.d.ts +47 -0
  187. package/lib/trade/pnl/converter.js +72 -0
  188. package/lib/trade/pnl/index.d.ts +91 -0
  189. package/lib/trade/pnl/index.js +301 -0
  190. package/lib/trade/pnl/types.d.ts +79 -0
  191. package/lib/trade/pnl/types.js +5 -0
  192. package/lib/trade/priceImpact/close/builder.d.ts +23 -0
  193. package/lib/trade/priceImpact/close/builder.js +44 -0
  194. package/lib/trade/priceImpact/close/index.d.ts +22 -0
  195. package/lib/trade/priceImpact/close/index.js +137 -0
  196. package/lib/trade/priceImpact/close/types.d.ts +47 -0
  197. package/lib/trade/priceImpact/close/types.js +5 -0
  198. package/lib/trade/priceImpact/cumulVol/builder.d.ts +22 -0
  199. package/lib/trade/priceImpact/cumulVol/builder.js +53 -0
  200. package/lib/trade/priceImpact/cumulVol/converter.d.ts +94 -0
  201. package/lib/trade/priceImpact/cumulVol/converter.js +155 -0
  202. package/lib/trade/priceImpact/cumulVol/index.d.ts +109 -0
  203. package/lib/trade/priceImpact/cumulVol/index.js +316 -0
  204. package/lib/trade/priceImpact/cumulVol/types.d.ts +11 -0
  205. package/lib/trade/priceImpact/cumulVol/types.js +2 -0
  206. package/lib/trade/priceImpact/index.d.ts +21 -0
  207. package/lib/trade/priceImpact/index.js +79 -0
  208. package/lib/trade/priceImpact/open/builder.d.ts +21 -0
  209. package/lib/trade/priceImpact/open/builder.js +42 -0
  210. package/lib/trade/priceImpact/open/index.d.ts +23 -0
  211. package/lib/trade/priceImpact/open/index.js +82 -0
  212. package/lib/trade/priceImpact/open/types.d.ts +45 -0
  213. package/lib/trade/priceImpact/open/types.js +5 -0
  214. package/lib/trade/priceImpact/skew/builder.d.ts +12 -0
  215. package/lib/trade/priceImpact/skew/builder.js +27 -0
  216. package/lib/trade/priceImpact/skew/converter.d.ts +46 -0
  217. package/lib/trade/priceImpact/skew/converter.js +81 -0
  218. package/lib/trade/priceImpact/skew/fetcher.d.ts +60 -0
  219. package/lib/trade/priceImpact/skew/fetcher.js +160 -0
  220. package/lib/trade/priceImpact/skew/index.d.ts +53 -0
  221. package/lib/trade/priceImpact/skew/index.js +148 -0
  222. package/lib/trade/priceImpact/skew/types.d.ts +44 -0
  223. package/lib/trade/priceImpact/skew/types.js +5 -0
  224. package/lib/trade/spread.d.ts +5 -0
  225. package/lib/trade/spread.js +19 -0
  226. package/lib/trade/types.d.ts +777 -0
  227. package/lib/trade/types.js +478 -0
  228. package/lib/trade/utils.d.ts +18 -0
  229. package/lib/trade/utils.js +30 -0
  230. package/lib/utils/index.d.ts +1 -0
  231. package/lib/utils/index.js +17 -0
  232. package/lib/utils/packing.d.ts +2 -0
  233. package/lib/utils/packing.js +39 -0
  234. package/lib/vault/index.d.ts +10 -0
  235. package/lib/vault/index.js +10 -0
  236. package/package.json +106 -0
@@ -0,0 +1,2867 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GToken__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
7
+ const ethers_1 = require("ethers");
8
+ const _abi = [
9
+ {
10
+ inputs: [],
11
+ name: "AboveInflationLimit",
12
+ type: "error",
13
+ },
14
+ {
15
+ inputs: [],
16
+ name: "AboveMax",
17
+ type: "error",
18
+ },
19
+ {
20
+ inputs: [],
21
+ name: "AddressZero",
22
+ type: "error",
23
+ },
24
+ {
25
+ inputs: [],
26
+ name: "BelowMin",
27
+ type: "error",
28
+ },
29
+ {
30
+ inputs: [],
31
+ name: "BytesZero",
32
+ type: "error",
33
+ },
34
+ {
35
+ inputs: [],
36
+ name: "ERC4626ExceededMaxDeposit",
37
+ type: "error",
38
+ },
39
+ {
40
+ inputs: [],
41
+ name: "ERC4626ExceededMaxMint",
42
+ type: "error",
43
+ },
44
+ {
45
+ inputs: [],
46
+ name: "ERC4626ExceededMaxRedeem",
47
+ type: "error",
48
+ },
49
+ {
50
+ inputs: [],
51
+ name: "ERC4626ExceededMaxWithdraw",
52
+ type: "error",
53
+ },
54
+ {
55
+ inputs: [],
56
+ name: "EndOfEpoch",
57
+ type: "error",
58
+ },
59
+ {
60
+ inputs: [],
61
+ name: "GnsPriceCallFailed",
62
+ type: "error",
63
+ },
64
+ {
65
+ inputs: [],
66
+ name: "GnsTokenPriceZero",
67
+ type: "error",
68
+ },
69
+ {
70
+ inputs: [],
71
+ name: "MaxDailyPnl",
72
+ type: "error",
73
+ },
74
+ {
75
+ inputs: [],
76
+ name: "NoActiveDiscount",
77
+ type: "error",
78
+ },
79
+ {
80
+ inputs: [],
81
+ name: "NoDiscount",
82
+ type: "error",
83
+ },
84
+ {
85
+ inputs: [],
86
+ name: "NotAllowed",
87
+ type: "error",
88
+ },
89
+ {
90
+ inputs: [],
91
+ name: "NotEnoughAssets",
92
+ type: "error",
93
+ },
94
+ {
95
+ inputs: [],
96
+ name: "NotUnderCollateralized",
97
+ type: "error",
98
+ },
99
+ {
100
+ inputs: [],
101
+ name: "NotUnlocked",
102
+ type: "error",
103
+ },
104
+ {
105
+ inputs: [],
106
+ name: "OnlyManager",
107
+ type: "error",
108
+ },
109
+ {
110
+ inputs: [],
111
+ name: "OnlyPnlFeed",
112
+ type: "error",
113
+ },
114
+ {
115
+ inputs: [],
116
+ name: "OnlyTradingPnlHandler",
117
+ type: "error",
118
+ },
119
+ {
120
+ inputs: [
121
+ {
122
+ internalType: "address",
123
+ name: "owner",
124
+ type: "address",
125
+ },
126
+ ],
127
+ name: "OwnableInvalidOwner",
128
+ type: "error",
129
+ },
130
+ {
131
+ inputs: [],
132
+ name: "PendingWithdrawal",
133
+ type: "error",
134
+ },
135
+ {
136
+ inputs: [],
137
+ name: "PriceZero",
138
+ type: "error",
139
+ },
140
+ {
141
+ inputs: [],
142
+ name: "ValueZero",
143
+ type: "error",
144
+ },
145
+ {
146
+ inputs: [],
147
+ name: "WrongValue",
148
+ type: "error",
149
+ },
150
+ {
151
+ inputs: [],
152
+ name: "WrongValues",
153
+ type: "error",
154
+ },
155
+ {
156
+ anonymous: false,
157
+ inputs: [
158
+ {
159
+ indexed: true,
160
+ internalType: "address",
161
+ name: "sender",
162
+ type: "address",
163
+ },
164
+ {
165
+ indexed: true,
166
+ internalType: "uint256",
167
+ name: "newEpoch",
168
+ type: "uint256",
169
+ },
170
+ {
171
+ indexed: false,
172
+ internalType: "uint256",
173
+ name: "prevPositiveOpenPnl",
174
+ type: "uint256",
175
+ },
176
+ {
177
+ indexed: false,
178
+ internalType: "uint256",
179
+ name: "newPositiveOpenPnl",
180
+ type: "uint256",
181
+ },
182
+ {
183
+ indexed: false,
184
+ internalType: "uint256",
185
+ name: "newEpochPositiveOpenPnl",
186
+ type: "uint256",
187
+ },
188
+ {
189
+ indexed: false,
190
+ internalType: "int256",
191
+ name: "newAccPnlPerTokenUsed",
192
+ type: "int256",
193
+ },
194
+ ],
195
+ name: "AccPnlPerTokenUsedUpdated",
196
+ type: "event",
197
+ },
198
+ {
199
+ anonymous: false,
200
+ inputs: [
201
+ {
202
+ indexed: false,
203
+ internalType: "address",
204
+ name: "newValue",
205
+ type: "address",
206
+ },
207
+ ],
208
+ name: "AdminUpdated",
209
+ type: "event",
210
+ },
211
+ {
212
+ anonymous: false,
213
+ inputs: [
214
+ {
215
+ indexed: true,
216
+ internalType: "address",
217
+ name: "owner",
218
+ type: "address",
219
+ },
220
+ {
221
+ indexed: true,
222
+ internalType: "address",
223
+ name: "spender",
224
+ type: "address",
225
+ },
226
+ {
227
+ indexed: false,
228
+ internalType: "uint256",
229
+ name: "value",
230
+ type: "uint256",
231
+ },
232
+ ],
233
+ name: "Approval",
234
+ type: "event",
235
+ },
236
+ {
237
+ anonymous: false,
238
+ inputs: [
239
+ {
240
+ indexed: true,
241
+ internalType: "address",
242
+ name: "sender",
243
+ type: "address",
244
+ },
245
+ {
246
+ indexed: true,
247
+ internalType: "address",
248
+ name: "user",
249
+ type: "address",
250
+ },
251
+ {
252
+ indexed: false,
253
+ internalType: "uint256",
254
+ name: "assets",
255
+ type: "uint256",
256
+ },
257
+ {
258
+ indexed: false,
259
+ internalType: "uint256",
260
+ name: "assetsLessDeplete",
261
+ type: "uint256",
262
+ },
263
+ {
264
+ indexed: false,
265
+ internalType: "bool",
266
+ name: "burn",
267
+ type: "bool",
268
+ },
269
+ ],
270
+ name: "AssetsReceived",
271
+ type: "event",
272
+ },
273
+ {
274
+ anonymous: false,
275
+ inputs: [
276
+ {
277
+ indexed: true,
278
+ internalType: "address",
279
+ name: "sender",
280
+ type: "address",
281
+ },
282
+ {
283
+ indexed: true,
284
+ internalType: "address",
285
+ name: "receiver",
286
+ type: "address",
287
+ },
288
+ {
289
+ indexed: false,
290
+ internalType: "uint256",
291
+ name: "assets",
292
+ type: "uint256",
293
+ },
294
+ ],
295
+ name: "AssetsSent",
296
+ type: "event",
297
+ },
298
+ {
299
+ anonymous: false,
300
+ inputs: [
301
+ {
302
+ indexed: false,
303
+ internalType: "uint256",
304
+ name: "newValue",
305
+ type: "uint256",
306
+ },
307
+ ],
308
+ name: "CurrentMaxSupplyUpdated",
309
+ type: "event",
310
+ },
311
+ {
312
+ anonymous: false,
313
+ inputs: [],
314
+ name: "DailyAccPnlDeltaReset",
315
+ type: "event",
316
+ },
317
+ {
318
+ anonymous: false,
319
+ inputs: [
320
+ {
321
+ indexed: true,
322
+ internalType: "address",
323
+ name: "sender",
324
+ type: "address",
325
+ },
326
+ {
327
+ indexed: false,
328
+ internalType: "uint256",
329
+ name: "assets",
330
+ type: "uint256",
331
+ },
332
+ {
333
+ indexed: false,
334
+ internalType: "uint256",
335
+ name: "amountGns",
336
+ type: "uint256",
337
+ },
338
+ ],
339
+ name: "Depleted",
340
+ type: "event",
341
+ },
342
+ {
343
+ anonymous: false,
344
+ inputs: [
345
+ {
346
+ indexed: true,
347
+ internalType: "address",
348
+ name: "sender",
349
+ type: "address",
350
+ },
351
+ {
352
+ indexed: true,
353
+ internalType: "address",
354
+ name: "owner",
355
+ type: "address",
356
+ },
357
+ {
358
+ indexed: false,
359
+ internalType: "uint256",
360
+ name: "assets",
361
+ type: "uint256",
362
+ },
363
+ {
364
+ indexed: false,
365
+ internalType: "uint256",
366
+ name: "shares",
367
+ type: "uint256",
368
+ },
369
+ ],
370
+ name: "Deposit",
371
+ type: "event",
372
+ },
373
+ {
374
+ anonymous: false,
375
+ inputs: [
376
+ {
377
+ indexed: true,
378
+ internalType: "address",
379
+ name: "sender",
380
+ type: "address",
381
+ },
382
+ {
383
+ indexed: true,
384
+ internalType: "address",
385
+ name: "owner",
386
+ type: "address",
387
+ },
388
+ {
389
+ indexed: false,
390
+ internalType: "uint256",
391
+ name: "depositId",
392
+ type: "uint256",
393
+ },
394
+ {
395
+ components: [
396
+ {
397
+ internalType: "address",
398
+ name: "owner",
399
+ type: "address",
400
+ },
401
+ {
402
+ internalType: "uint256",
403
+ name: "shares",
404
+ type: "uint256",
405
+ },
406
+ {
407
+ internalType: "uint256",
408
+ name: "assetsDeposited",
409
+ type: "uint256",
410
+ },
411
+ {
412
+ internalType: "uint256",
413
+ name: "assetsDiscount",
414
+ type: "uint256",
415
+ },
416
+ {
417
+ internalType: "uint256",
418
+ name: "atTimestamp",
419
+ type: "uint256",
420
+ },
421
+ {
422
+ internalType: "uint256",
423
+ name: "lockDuration",
424
+ type: "uint256",
425
+ },
426
+ ],
427
+ indexed: false,
428
+ internalType: "struct IGToken.LockedDeposit",
429
+ name: "d",
430
+ type: "tuple",
431
+ },
432
+ ],
433
+ name: "DepositLocked",
434
+ type: "event",
435
+ },
436
+ {
437
+ anonymous: false,
438
+ inputs: [
439
+ {
440
+ indexed: true,
441
+ internalType: "address",
442
+ name: "sender",
443
+ type: "address",
444
+ },
445
+ {
446
+ indexed: true,
447
+ internalType: "address",
448
+ name: "receiver",
449
+ type: "address",
450
+ },
451
+ {
452
+ indexed: true,
453
+ internalType: "address",
454
+ name: "owner",
455
+ type: "address",
456
+ },
457
+ {
458
+ indexed: false,
459
+ internalType: "uint256",
460
+ name: "depositId",
461
+ type: "uint256",
462
+ },
463
+ {
464
+ components: [
465
+ {
466
+ internalType: "address",
467
+ name: "owner",
468
+ type: "address",
469
+ },
470
+ {
471
+ internalType: "uint256",
472
+ name: "shares",
473
+ type: "uint256",
474
+ },
475
+ {
476
+ internalType: "uint256",
477
+ name: "assetsDeposited",
478
+ type: "uint256",
479
+ },
480
+ {
481
+ internalType: "uint256",
482
+ name: "assetsDiscount",
483
+ type: "uint256",
484
+ },
485
+ {
486
+ internalType: "uint256",
487
+ name: "atTimestamp",
488
+ type: "uint256",
489
+ },
490
+ {
491
+ internalType: "uint256",
492
+ name: "lockDuration",
493
+ type: "uint256",
494
+ },
495
+ ],
496
+ indexed: false,
497
+ internalType: "struct IGToken.LockedDeposit",
498
+ name: "d",
499
+ type: "tuple",
500
+ },
501
+ ],
502
+ name: "DepositUnlocked",
503
+ type: "event",
504
+ },
505
+ {
506
+ anonymous: false,
507
+ inputs: [
508
+ {
509
+ components: [
510
+ {
511
+ internalType: "address",
512
+ name: "addr",
513
+ type: "address",
514
+ },
515
+ {
516
+ internalType: "bytes",
517
+ name: "signature",
518
+ type: "bytes",
519
+ },
520
+ ],
521
+ indexed: false,
522
+ internalType: "struct IGToken.GnsPriceProvider",
523
+ name: "newValue",
524
+ type: "tuple",
525
+ },
526
+ ],
527
+ name: "GnsPriceProviderUpdated",
528
+ type: "event",
529
+ },
530
+ {
531
+ anonymous: false,
532
+ inputs: [
533
+ {
534
+ indexed: false,
535
+ internalType: "uint8",
536
+ name: "version",
537
+ type: "uint8",
538
+ },
539
+ ],
540
+ name: "Initialized",
541
+ type: "event",
542
+ },
543
+ {
544
+ anonymous: false,
545
+ inputs: [
546
+ {
547
+ indexed: false,
548
+ internalType: "uint256",
549
+ name: "newValue",
550
+ type: "uint256",
551
+ },
552
+ ],
553
+ name: "LossesBurnPUpdated",
554
+ type: "event",
555
+ },
556
+ {
557
+ anonymous: false,
558
+ inputs: [
559
+ {
560
+ indexed: false,
561
+ internalType: "address",
562
+ name: "newValue",
563
+ type: "address",
564
+ },
565
+ ],
566
+ name: "ManagerUpdated",
567
+ type: "event",
568
+ },
569
+ {
570
+ anonymous: false,
571
+ inputs: [
572
+ {
573
+ indexed: false,
574
+ internalType: "uint256",
575
+ name: "newValue",
576
+ type: "uint256",
577
+ },
578
+ ],
579
+ name: "MaxAccOpenPnlDeltaUpdated",
580
+ type: "event",
581
+ },
582
+ {
583
+ anonymous: false,
584
+ inputs: [
585
+ {
586
+ indexed: false,
587
+ internalType: "uint256",
588
+ name: "newValue",
589
+ type: "uint256",
590
+ },
591
+ ],
592
+ name: "MaxDailyAccPnlDeltaUpdated",
593
+ type: "event",
594
+ },
595
+ {
596
+ anonymous: false,
597
+ inputs: [
598
+ {
599
+ indexed: false,
600
+ internalType: "uint256",
601
+ name: "newValue",
602
+ type: "uint256",
603
+ },
604
+ ],
605
+ name: "MaxDiscountPUpdated",
606
+ type: "event",
607
+ },
608
+ {
609
+ anonymous: false,
610
+ inputs: [
611
+ {
612
+ indexed: false,
613
+ internalType: "uint256",
614
+ name: "newValue",
615
+ type: "uint256",
616
+ },
617
+ ],
618
+ name: "MaxDiscountThresholdPUpdated",
619
+ type: "event",
620
+ },
621
+ {
622
+ anonymous: false,
623
+ inputs: [
624
+ {
625
+ indexed: false,
626
+ internalType: "uint256",
627
+ name: "newValue",
628
+ type: "uint256",
629
+ },
630
+ ],
631
+ name: "MaxGnsSupplyMintDailyPUpdated",
632
+ type: "event",
633
+ },
634
+ {
635
+ anonymous: false,
636
+ inputs: [
637
+ {
638
+ indexed: false,
639
+ internalType: "uint256",
640
+ name: "newValue",
641
+ type: "uint256",
642
+ },
643
+ ],
644
+ name: "MaxSupplyIncreaseDailyPUpdated",
645
+ type: "event",
646
+ },
647
+ {
648
+ anonymous: false,
649
+ inputs: [],
650
+ name: "OpenTradesPnlFeedCallFailed",
651
+ type: "event",
652
+ },
653
+ {
654
+ anonymous: false,
655
+ inputs: [
656
+ {
657
+ indexed: false,
658
+ internalType: "address",
659
+ name: "newValue",
660
+ type: "address",
661
+ },
662
+ ],
663
+ name: "OpenTradesPnlFeedUpdated",
664
+ type: "event",
665
+ },
666
+ {
667
+ anonymous: false,
668
+ inputs: [
669
+ {
670
+ indexed: true,
671
+ internalType: "address",
672
+ name: "previousOwner",
673
+ type: "address",
674
+ },
675
+ {
676
+ indexed: true,
677
+ internalType: "address",
678
+ name: "newOwner",
679
+ type: "address",
680
+ },
681
+ ],
682
+ name: "OwnershipTransferred",
683
+ type: "event",
684
+ },
685
+ {
686
+ anonymous: false,
687
+ inputs: [
688
+ {
689
+ indexed: false,
690
+ internalType: "address",
691
+ name: "newValue",
692
+ type: "address",
693
+ },
694
+ ],
695
+ name: "PnlHandlerUpdated",
696
+ type: "event",
697
+ },
698
+ {
699
+ anonymous: false,
700
+ inputs: [
701
+ {
702
+ indexed: true,
703
+ internalType: "address",
704
+ name: "sender",
705
+ type: "address",
706
+ },
707
+ {
708
+ indexed: false,
709
+ internalType: "uint256",
710
+ name: "assets",
711
+ type: "uint256",
712
+ },
713
+ {
714
+ indexed: false,
715
+ internalType: "uint256",
716
+ name: "amountGns",
717
+ type: "uint256",
718
+ },
719
+ ],
720
+ name: "Refilled",
721
+ type: "event",
722
+ },
723
+ {
724
+ anonymous: false,
725
+ inputs: [
726
+ {
727
+ indexed: true,
728
+ internalType: "address",
729
+ name: "sender",
730
+ type: "address",
731
+ },
732
+ {
733
+ indexed: false,
734
+ internalType: "uint256",
735
+ name: "assets",
736
+ type: "uint256",
737
+ },
738
+ ],
739
+ name: "RewardDistributed",
740
+ type: "event",
741
+ },
742
+ {
743
+ anonymous: false,
744
+ inputs: [
745
+ {
746
+ indexed: false,
747
+ internalType: "uint256",
748
+ name: "newValue",
749
+ type: "uint256",
750
+ },
751
+ ],
752
+ name: "ShareToAssetsPriceUpdated",
753
+ type: "event",
754
+ },
755
+ {
756
+ anonymous: false,
757
+ inputs: [
758
+ {
759
+ indexed: true,
760
+ internalType: "address",
761
+ name: "from",
762
+ type: "address",
763
+ },
764
+ {
765
+ indexed: true,
766
+ internalType: "address",
767
+ name: "to",
768
+ type: "address",
769
+ },
770
+ {
771
+ indexed: false,
772
+ internalType: "uint256",
773
+ name: "value",
774
+ type: "uint256",
775
+ },
776
+ ],
777
+ name: "Transfer",
778
+ type: "event",
779
+ },
780
+ {
781
+ anonymous: false,
782
+ inputs: [
783
+ {
784
+ indexed: true,
785
+ internalType: "address",
786
+ name: "sender",
787
+ type: "address",
788
+ },
789
+ {
790
+ indexed: true,
791
+ internalType: "address",
792
+ name: "receiver",
793
+ type: "address",
794
+ },
795
+ {
796
+ indexed: true,
797
+ internalType: "address",
798
+ name: "owner",
799
+ type: "address",
800
+ },
801
+ {
802
+ indexed: false,
803
+ internalType: "uint256",
804
+ name: "assets",
805
+ type: "uint256",
806
+ },
807
+ {
808
+ indexed: false,
809
+ internalType: "uint256",
810
+ name: "shares",
811
+ type: "uint256",
812
+ },
813
+ ],
814
+ name: "Withdraw",
815
+ type: "event",
816
+ },
817
+ {
818
+ anonymous: false,
819
+ inputs: [
820
+ {
821
+ indexed: true,
822
+ internalType: "address",
823
+ name: "sender",
824
+ type: "address",
825
+ },
826
+ {
827
+ indexed: true,
828
+ internalType: "address",
829
+ name: "owner",
830
+ type: "address",
831
+ },
832
+ {
833
+ indexed: false,
834
+ internalType: "uint256",
835
+ name: "shares",
836
+ type: "uint256",
837
+ },
838
+ {
839
+ indexed: false,
840
+ internalType: "uint256",
841
+ name: "currEpoch",
842
+ type: "uint256",
843
+ },
844
+ {
845
+ indexed: true,
846
+ internalType: "uint256",
847
+ name: "unlockEpoch",
848
+ type: "uint256",
849
+ },
850
+ ],
851
+ name: "WithdrawCanceled",
852
+ type: "event",
853
+ },
854
+ {
855
+ anonymous: false,
856
+ inputs: [
857
+ {
858
+ indexed: false,
859
+ internalType: "uint256[2]",
860
+ name: "newValue",
861
+ type: "uint256[2]",
862
+ },
863
+ ],
864
+ name: "WithdrawLockThresholdsPUpdated",
865
+ type: "event",
866
+ },
867
+ {
868
+ anonymous: false,
869
+ inputs: [
870
+ {
871
+ indexed: true,
872
+ internalType: "address",
873
+ name: "sender",
874
+ type: "address",
875
+ },
876
+ {
877
+ indexed: true,
878
+ internalType: "address",
879
+ name: "owner",
880
+ type: "address",
881
+ },
882
+ {
883
+ indexed: false,
884
+ internalType: "uint256",
885
+ name: "shares",
886
+ type: "uint256",
887
+ },
888
+ {
889
+ indexed: false,
890
+ internalType: "uint256",
891
+ name: "currEpoch",
892
+ type: "uint256",
893
+ },
894
+ {
895
+ indexed: true,
896
+ internalType: "uint256",
897
+ name: "unlockEpoch",
898
+ type: "uint256",
899
+ },
900
+ ],
901
+ name: "WithdrawRequested",
902
+ type: "event",
903
+ },
904
+ {
905
+ inputs: [],
906
+ name: "MIN_LOCK_DURATION",
907
+ outputs: [
908
+ {
909
+ internalType: "uint256",
910
+ name: "",
911
+ type: "uint256",
912
+ },
913
+ ],
914
+ stateMutability: "view",
915
+ type: "function",
916
+ },
917
+ {
918
+ inputs: [],
919
+ name: "accPnlPerToken",
920
+ outputs: [
921
+ {
922
+ internalType: "int256",
923
+ name: "",
924
+ type: "int256",
925
+ },
926
+ ],
927
+ stateMutability: "view",
928
+ type: "function",
929
+ },
930
+ {
931
+ inputs: [],
932
+ name: "accPnlPerTokenUsed",
933
+ outputs: [
934
+ {
935
+ internalType: "int256",
936
+ name: "",
937
+ type: "int256",
938
+ },
939
+ ],
940
+ stateMutability: "view",
941
+ type: "function",
942
+ },
943
+ {
944
+ inputs: [],
945
+ name: "accRewardsPerToken",
946
+ outputs: [
947
+ {
948
+ internalType: "uint256",
949
+ name: "",
950
+ type: "uint256",
951
+ },
952
+ ],
953
+ stateMutability: "view",
954
+ type: "function",
955
+ },
956
+ {
957
+ inputs: [],
958
+ name: "admin",
959
+ outputs: [
960
+ {
961
+ internalType: "address",
962
+ name: "",
963
+ type: "address",
964
+ },
965
+ ],
966
+ stateMutability: "view",
967
+ type: "function",
968
+ },
969
+ {
970
+ inputs: [
971
+ {
972
+ internalType: "address",
973
+ name: "owner",
974
+ type: "address",
975
+ },
976
+ {
977
+ internalType: "address",
978
+ name: "spender",
979
+ type: "address",
980
+ },
981
+ ],
982
+ name: "allowance",
983
+ outputs: [
984
+ {
985
+ internalType: "uint256",
986
+ name: "",
987
+ type: "uint256",
988
+ },
989
+ ],
990
+ stateMutability: "view",
991
+ type: "function",
992
+ },
993
+ {
994
+ inputs: [
995
+ {
996
+ internalType: "address",
997
+ name: "spender",
998
+ type: "address",
999
+ },
1000
+ {
1001
+ internalType: "uint256",
1002
+ name: "amount",
1003
+ type: "uint256",
1004
+ },
1005
+ ],
1006
+ name: "approve",
1007
+ outputs: [
1008
+ {
1009
+ internalType: "bool",
1010
+ name: "",
1011
+ type: "bool",
1012
+ },
1013
+ ],
1014
+ stateMutability: "nonpayable",
1015
+ type: "function",
1016
+ },
1017
+ {
1018
+ inputs: [],
1019
+ name: "asset",
1020
+ outputs: [
1021
+ {
1022
+ internalType: "address",
1023
+ name: "",
1024
+ type: "address",
1025
+ },
1026
+ ],
1027
+ stateMutability: "view",
1028
+ type: "function",
1029
+ },
1030
+ {
1031
+ inputs: [],
1032
+ name: "assetsToDeplete",
1033
+ outputs: [
1034
+ {
1035
+ internalType: "uint256",
1036
+ name: "",
1037
+ type: "uint256",
1038
+ },
1039
+ ],
1040
+ stateMutability: "view",
1041
+ type: "function",
1042
+ },
1043
+ {
1044
+ inputs: [],
1045
+ name: "availableAssets",
1046
+ outputs: [
1047
+ {
1048
+ internalType: "uint256",
1049
+ name: "",
1050
+ type: "uint256",
1051
+ },
1052
+ ],
1053
+ stateMutability: "view",
1054
+ type: "function",
1055
+ },
1056
+ {
1057
+ inputs: [
1058
+ {
1059
+ internalType: "address",
1060
+ name: "account",
1061
+ type: "address",
1062
+ },
1063
+ ],
1064
+ name: "balanceOf",
1065
+ outputs: [
1066
+ {
1067
+ internalType: "uint256",
1068
+ name: "",
1069
+ type: "uint256",
1070
+ },
1071
+ ],
1072
+ stateMutability: "view",
1073
+ type: "function",
1074
+ },
1075
+ {
1076
+ inputs: [
1077
+ {
1078
+ internalType: "uint256",
1079
+ name: "shares",
1080
+ type: "uint256",
1081
+ },
1082
+ {
1083
+ internalType: "address",
1084
+ name: "owner",
1085
+ type: "address",
1086
+ },
1087
+ {
1088
+ internalType: "uint256",
1089
+ name: "unlockEpoch",
1090
+ type: "uint256",
1091
+ },
1092
+ ],
1093
+ name: "cancelWithdrawRequest",
1094
+ outputs: [],
1095
+ stateMutability: "nonpayable",
1096
+ type: "function",
1097
+ },
1098
+ {
1099
+ inputs: [],
1100
+ name: "collateralConfig",
1101
+ outputs: [
1102
+ {
1103
+ internalType: "uint128",
1104
+ name: "precision",
1105
+ type: "uint128",
1106
+ },
1107
+ {
1108
+ internalType: "uint128",
1109
+ name: "precisionDelta",
1110
+ type: "uint128",
1111
+ },
1112
+ ],
1113
+ stateMutability: "view",
1114
+ type: "function",
1115
+ },
1116
+ {
1117
+ inputs: [],
1118
+ name: "collateralizationP",
1119
+ outputs: [
1120
+ {
1121
+ internalType: "uint256",
1122
+ name: "",
1123
+ type: "uint256",
1124
+ },
1125
+ ],
1126
+ stateMutability: "view",
1127
+ type: "function",
1128
+ },
1129
+ {
1130
+ inputs: [
1131
+ {
1132
+ internalType: "uint256",
1133
+ name: "shares",
1134
+ type: "uint256",
1135
+ },
1136
+ ],
1137
+ name: "convertToAssets",
1138
+ outputs: [
1139
+ {
1140
+ internalType: "uint256",
1141
+ name: "",
1142
+ type: "uint256",
1143
+ },
1144
+ ],
1145
+ stateMutability: "view",
1146
+ type: "function",
1147
+ },
1148
+ {
1149
+ inputs: [
1150
+ {
1151
+ internalType: "uint256",
1152
+ name: "assets",
1153
+ type: "uint256",
1154
+ },
1155
+ ],
1156
+ name: "convertToShares",
1157
+ outputs: [
1158
+ {
1159
+ internalType: "uint256",
1160
+ name: "",
1161
+ type: "uint256",
1162
+ },
1163
+ ],
1164
+ stateMutability: "view",
1165
+ type: "function",
1166
+ },
1167
+ {
1168
+ inputs: [],
1169
+ name: "currentEpoch",
1170
+ outputs: [
1171
+ {
1172
+ internalType: "uint256",
1173
+ name: "",
1174
+ type: "uint256",
1175
+ },
1176
+ ],
1177
+ stateMutability: "view",
1178
+ type: "function",
1179
+ },
1180
+ {
1181
+ inputs: [],
1182
+ name: "currentEpochPositiveOpenPnl",
1183
+ outputs: [
1184
+ {
1185
+ internalType: "uint256",
1186
+ name: "",
1187
+ type: "uint256",
1188
+ },
1189
+ ],
1190
+ stateMutability: "view",
1191
+ type: "function",
1192
+ },
1193
+ {
1194
+ inputs: [],
1195
+ name: "currentEpochStart",
1196
+ outputs: [
1197
+ {
1198
+ internalType: "uint256",
1199
+ name: "",
1200
+ type: "uint256",
1201
+ },
1202
+ ],
1203
+ stateMutability: "view",
1204
+ type: "function",
1205
+ },
1206
+ {
1207
+ inputs: [],
1208
+ name: "currentMaxSupply",
1209
+ outputs: [
1210
+ {
1211
+ internalType: "uint256",
1212
+ name: "",
1213
+ type: "uint256",
1214
+ },
1215
+ ],
1216
+ stateMutability: "view",
1217
+ type: "function",
1218
+ },
1219
+ {
1220
+ inputs: [],
1221
+ name: "dailyAccPnlDelta",
1222
+ outputs: [
1223
+ {
1224
+ internalType: "int256",
1225
+ name: "",
1226
+ type: "int256",
1227
+ },
1228
+ ],
1229
+ stateMutability: "view",
1230
+ type: "function",
1231
+ },
1232
+ {
1233
+ inputs: [],
1234
+ name: "dailyMintedGns",
1235
+ outputs: [
1236
+ {
1237
+ internalType: "uint256",
1238
+ name: "",
1239
+ type: "uint256",
1240
+ },
1241
+ ],
1242
+ stateMutability: "view",
1243
+ type: "function",
1244
+ },
1245
+ {
1246
+ inputs: [],
1247
+ name: "decimals",
1248
+ outputs: [
1249
+ {
1250
+ internalType: "uint8",
1251
+ name: "",
1252
+ type: "uint8",
1253
+ },
1254
+ ],
1255
+ stateMutability: "view",
1256
+ type: "function",
1257
+ },
1258
+ {
1259
+ inputs: [
1260
+ {
1261
+ internalType: "address",
1262
+ name: "spender",
1263
+ type: "address",
1264
+ },
1265
+ {
1266
+ internalType: "uint256",
1267
+ name: "subtractedValue",
1268
+ type: "uint256",
1269
+ },
1270
+ ],
1271
+ name: "decreaseAllowance",
1272
+ outputs: [
1273
+ {
1274
+ internalType: "bool",
1275
+ name: "",
1276
+ type: "bool",
1277
+ },
1278
+ ],
1279
+ stateMutability: "nonpayable",
1280
+ type: "function",
1281
+ },
1282
+ {
1283
+ inputs: [
1284
+ {
1285
+ internalType: "uint256",
1286
+ name: "assets",
1287
+ type: "uint256",
1288
+ },
1289
+ ],
1290
+ name: "deplete",
1291
+ outputs: [],
1292
+ stateMutability: "nonpayable",
1293
+ type: "function",
1294
+ },
1295
+ {
1296
+ inputs: [
1297
+ {
1298
+ internalType: "uint256",
1299
+ name: "assets",
1300
+ type: "uint256",
1301
+ },
1302
+ {
1303
+ internalType: "address",
1304
+ name: "receiver",
1305
+ type: "address",
1306
+ },
1307
+ ],
1308
+ name: "deposit",
1309
+ outputs: [
1310
+ {
1311
+ internalType: "uint256",
1312
+ name: "",
1313
+ type: "uint256",
1314
+ },
1315
+ ],
1316
+ stateMutability: "nonpayable",
1317
+ type: "function",
1318
+ },
1319
+ {
1320
+ inputs: [
1321
+ {
1322
+ internalType: "uint256",
1323
+ name: "assets",
1324
+ type: "uint256",
1325
+ },
1326
+ {
1327
+ internalType: "uint256",
1328
+ name: "lockDuration",
1329
+ type: "uint256",
1330
+ },
1331
+ {
1332
+ internalType: "address",
1333
+ name: "receiver",
1334
+ type: "address",
1335
+ },
1336
+ ],
1337
+ name: "depositWithDiscountAndLock",
1338
+ outputs: [
1339
+ {
1340
+ internalType: "uint256",
1341
+ name: "",
1342
+ type: "uint256",
1343
+ },
1344
+ ],
1345
+ stateMutability: "nonpayable",
1346
+ type: "function",
1347
+ },
1348
+ {
1349
+ inputs: [
1350
+ {
1351
+ internalType: "uint256",
1352
+ name: "assets",
1353
+ type: "uint256",
1354
+ },
1355
+ ],
1356
+ name: "distributeReward",
1357
+ outputs: [],
1358
+ stateMutability: "nonpayable",
1359
+ type: "function",
1360
+ },
1361
+ {
1362
+ inputs: [
1363
+ {
1364
+ internalType: "uint256",
1365
+ name: "depositId",
1366
+ type: "uint256",
1367
+ },
1368
+ ],
1369
+ name: "getLockedDeposit",
1370
+ outputs: [
1371
+ {
1372
+ components: [
1373
+ {
1374
+ internalType: "address",
1375
+ name: "owner",
1376
+ type: "address",
1377
+ },
1378
+ {
1379
+ internalType: "uint256",
1380
+ name: "shares",
1381
+ type: "uint256",
1382
+ },
1383
+ {
1384
+ internalType: "uint256",
1385
+ name: "assetsDeposited",
1386
+ type: "uint256",
1387
+ },
1388
+ {
1389
+ internalType: "uint256",
1390
+ name: "assetsDiscount",
1391
+ type: "uint256",
1392
+ },
1393
+ {
1394
+ internalType: "uint256",
1395
+ name: "atTimestamp",
1396
+ type: "uint256",
1397
+ },
1398
+ {
1399
+ internalType: "uint256",
1400
+ name: "lockDuration",
1401
+ type: "uint256",
1402
+ },
1403
+ ],
1404
+ internalType: "struct IGToken.LockedDeposit",
1405
+ name: "",
1406
+ type: "tuple",
1407
+ },
1408
+ ],
1409
+ stateMutability: "view",
1410
+ type: "function",
1411
+ },
1412
+ {
1413
+ inputs: [],
1414
+ name: "getTotalDepleted",
1415
+ outputs: [
1416
+ {
1417
+ internalType: "uint256",
1418
+ name: "assets",
1419
+ type: "uint256",
1420
+ },
1421
+ {
1422
+ internalType: "uint256",
1423
+ name: "gns",
1424
+ type: "uint256",
1425
+ },
1426
+ ],
1427
+ stateMutability: "view",
1428
+ type: "function",
1429
+ },
1430
+ {
1431
+ inputs: [],
1432
+ name: "getTotalDiscounts",
1433
+ outputs: [
1434
+ {
1435
+ internalType: "uint256",
1436
+ name: "unlocked",
1437
+ type: "uint256",
1438
+ },
1439
+ {
1440
+ internalType: "uint256",
1441
+ name: "locked",
1442
+ type: "uint256",
1443
+ },
1444
+ ],
1445
+ stateMutability: "view",
1446
+ type: "function",
1447
+ },
1448
+ {
1449
+ inputs: [],
1450
+ name: "getTotalRefilled",
1451
+ outputs: [
1452
+ {
1453
+ internalType: "uint256",
1454
+ name: "assets",
1455
+ type: "uint256",
1456
+ },
1457
+ {
1458
+ internalType: "uint256",
1459
+ name: "gns",
1460
+ type: "uint256",
1461
+ },
1462
+ ],
1463
+ stateMutability: "view",
1464
+ type: "function",
1465
+ },
1466
+ {
1467
+ inputs: [],
1468
+ name: "gnsPriceProvider",
1469
+ outputs: [
1470
+ {
1471
+ internalType: "address",
1472
+ name: "addr",
1473
+ type: "address",
1474
+ },
1475
+ {
1476
+ internalType: "bytes",
1477
+ name: "signature",
1478
+ type: "bytes",
1479
+ },
1480
+ ],
1481
+ stateMutability: "view",
1482
+ type: "function",
1483
+ },
1484
+ {
1485
+ inputs: [],
1486
+ name: "gnsToken",
1487
+ outputs: [
1488
+ {
1489
+ internalType: "address",
1490
+ name: "",
1491
+ type: "address",
1492
+ },
1493
+ ],
1494
+ stateMutability: "view",
1495
+ type: "function",
1496
+ },
1497
+ {
1498
+ inputs: [],
1499
+ name: "gnsTokenToAssetsPrice",
1500
+ outputs: [
1501
+ {
1502
+ internalType: "uint256",
1503
+ name: "price",
1504
+ type: "uint256",
1505
+ },
1506
+ ],
1507
+ stateMutability: "view",
1508
+ type: "function",
1509
+ },
1510
+ {
1511
+ inputs: [
1512
+ {
1513
+ internalType: "address",
1514
+ name: "spender",
1515
+ type: "address",
1516
+ },
1517
+ {
1518
+ internalType: "uint256",
1519
+ name: "addedValue",
1520
+ type: "uint256",
1521
+ },
1522
+ ],
1523
+ name: "increaseAllowance",
1524
+ outputs: [
1525
+ {
1526
+ internalType: "bool",
1527
+ name: "",
1528
+ type: "bool",
1529
+ },
1530
+ ],
1531
+ stateMutability: "nonpayable",
1532
+ type: "function",
1533
+ },
1534
+ {
1535
+ inputs: [
1536
+ {
1537
+ components: [
1538
+ {
1539
+ internalType: "string",
1540
+ name: "name",
1541
+ type: "string",
1542
+ },
1543
+ {
1544
+ internalType: "string",
1545
+ name: "symbol",
1546
+ type: "string",
1547
+ },
1548
+ ],
1549
+ internalType: "struct IGToken.Meta",
1550
+ name: "_meta",
1551
+ type: "tuple",
1552
+ },
1553
+ {
1554
+ components: [
1555
+ {
1556
+ internalType: "address",
1557
+ name: "asset",
1558
+ type: "address",
1559
+ },
1560
+ {
1561
+ internalType: "address",
1562
+ name: "owner",
1563
+ type: "address",
1564
+ },
1565
+ {
1566
+ internalType: "address",
1567
+ name: "manager",
1568
+ type: "address",
1569
+ },
1570
+ {
1571
+ internalType: "address",
1572
+ name: "admin",
1573
+ type: "address",
1574
+ },
1575
+ {
1576
+ internalType: "address",
1577
+ name: "gnsToken",
1578
+ type: "address",
1579
+ },
1580
+ {
1581
+ internalType: "address",
1582
+ name: "lockedDepositNft",
1583
+ type: "address",
1584
+ },
1585
+ {
1586
+ internalType: "address",
1587
+ name: "pnlHandler",
1588
+ type: "address",
1589
+ },
1590
+ {
1591
+ internalType: "address",
1592
+ name: "openTradesPnlFeed",
1593
+ type: "address",
1594
+ },
1595
+ {
1596
+ components: [
1597
+ {
1598
+ internalType: "address",
1599
+ name: "addr",
1600
+ type: "address",
1601
+ },
1602
+ {
1603
+ internalType: "bytes",
1604
+ name: "signature",
1605
+ type: "bytes",
1606
+ },
1607
+ ],
1608
+ internalType: "struct IGToken.GnsPriceProvider",
1609
+ name: "gnsPriceProvider",
1610
+ type: "tuple",
1611
+ },
1612
+ ],
1613
+ internalType: "struct IGToken.ContractAddresses",
1614
+ name: "_contractAddresses",
1615
+ type: "tuple",
1616
+ },
1617
+ {
1618
+ internalType: "uint256",
1619
+ name: "_MIN_LOCK_DURATION",
1620
+ type: "uint256",
1621
+ },
1622
+ {
1623
+ internalType: "uint256",
1624
+ name: "_maxAccOpenPnlDelta",
1625
+ type: "uint256",
1626
+ },
1627
+ {
1628
+ internalType: "uint256",
1629
+ name: "_maxDailyAccPnlDelta",
1630
+ type: "uint256",
1631
+ },
1632
+ {
1633
+ internalType: "uint256[2]",
1634
+ name: "_withdrawLockThresholdsP",
1635
+ type: "uint256[2]",
1636
+ },
1637
+ {
1638
+ internalType: "uint256",
1639
+ name: "_maxSupplyIncreaseDailyP",
1640
+ type: "uint256",
1641
+ },
1642
+ {
1643
+ internalType: "uint256",
1644
+ name: "_lossesBurnP",
1645
+ type: "uint256",
1646
+ },
1647
+ {
1648
+ internalType: "uint256",
1649
+ name: "_maxGnsSupplyMintDailyP",
1650
+ type: "uint256",
1651
+ },
1652
+ {
1653
+ internalType: "uint256",
1654
+ name: "_maxDiscountP",
1655
+ type: "uint256",
1656
+ },
1657
+ {
1658
+ internalType: "uint256",
1659
+ name: "_maxDiscountThresholdP",
1660
+ type: "uint256",
1661
+ },
1662
+ ],
1663
+ name: "initialize",
1664
+ outputs: [],
1665
+ stateMutability: "nonpayable",
1666
+ type: "function",
1667
+ },
1668
+ {
1669
+ inputs: [],
1670
+ name: "initializeV3",
1671
+ outputs: [],
1672
+ stateMutability: "nonpayable",
1673
+ type: "function",
1674
+ },
1675
+ {
1676
+ inputs: [],
1677
+ name: "lastDailyAccPnlDeltaReset",
1678
+ outputs: [
1679
+ {
1680
+ internalType: "uint256",
1681
+ name: "",
1682
+ type: "uint256",
1683
+ },
1684
+ ],
1685
+ stateMutability: "view",
1686
+ type: "function",
1687
+ },
1688
+ {
1689
+ inputs: [],
1690
+ name: "lastDailyMintedGnsReset",
1691
+ outputs: [
1692
+ {
1693
+ internalType: "uint256",
1694
+ name: "",
1695
+ type: "uint256",
1696
+ },
1697
+ ],
1698
+ stateMutability: "view",
1699
+ type: "function",
1700
+ },
1701
+ {
1702
+ inputs: [],
1703
+ name: "lastMaxSupplyUpdate",
1704
+ outputs: [
1705
+ {
1706
+ internalType: "uint256",
1707
+ name: "",
1708
+ type: "uint256",
1709
+ },
1710
+ ],
1711
+ stateMutability: "view",
1712
+ type: "function",
1713
+ },
1714
+ {
1715
+ inputs: [
1716
+ {
1717
+ internalType: "uint256",
1718
+ name: "collatP",
1719
+ type: "uint256",
1720
+ },
1721
+ {
1722
+ internalType: "uint256",
1723
+ name: "lockDuration",
1724
+ type: "uint256",
1725
+ },
1726
+ ],
1727
+ name: "lockDiscountP",
1728
+ outputs: [
1729
+ {
1730
+ internalType: "uint256",
1731
+ name: "",
1732
+ type: "uint256",
1733
+ },
1734
+ ],
1735
+ stateMutability: "view",
1736
+ type: "function",
1737
+ },
1738
+ {
1739
+ inputs: [],
1740
+ name: "lockedDepositNft",
1741
+ outputs: [
1742
+ {
1743
+ internalType: "contract IGTokenLockedDepositNft",
1744
+ name: "",
1745
+ type: "address",
1746
+ },
1747
+ ],
1748
+ stateMutability: "view",
1749
+ type: "function",
1750
+ },
1751
+ {
1752
+ inputs: [
1753
+ {
1754
+ internalType: "uint256",
1755
+ name: "",
1756
+ type: "uint256",
1757
+ },
1758
+ ],
1759
+ name: "lockedDeposits",
1760
+ outputs: [
1761
+ {
1762
+ internalType: "address",
1763
+ name: "owner",
1764
+ type: "address",
1765
+ },
1766
+ {
1767
+ internalType: "uint256",
1768
+ name: "shares",
1769
+ type: "uint256",
1770
+ },
1771
+ {
1772
+ internalType: "uint256",
1773
+ name: "assetsDeposited",
1774
+ type: "uint256",
1775
+ },
1776
+ {
1777
+ internalType: "uint256",
1778
+ name: "assetsDiscount",
1779
+ type: "uint256",
1780
+ },
1781
+ {
1782
+ internalType: "uint256",
1783
+ name: "atTimestamp",
1784
+ type: "uint256",
1785
+ },
1786
+ {
1787
+ internalType: "uint256",
1788
+ name: "lockDuration",
1789
+ type: "uint256",
1790
+ },
1791
+ ],
1792
+ stateMutability: "view",
1793
+ type: "function",
1794
+ },
1795
+ {
1796
+ inputs: [],
1797
+ name: "lockedDepositsCount",
1798
+ outputs: [
1799
+ {
1800
+ internalType: "uint256",
1801
+ name: "",
1802
+ type: "uint256",
1803
+ },
1804
+ ],
1805
+ stateMutability: "view",
1806
+ type: "function",
1807
+ },
1808
+ {
1809
+ inputs: [],
1810
+ name: "lossesBurnP",
1811
+ outputs: [
1812
+ {
1813
+ internalType: "uint256",
1814
+ name: "",
1815
+ type: "uint256",
1816
+ },
1817
+ ],
1818
+ stateMutability: "view",
1819
+ type: "function",
1820
+ },
1821
+ {
1822
+ inputs: [
1823
+ {
1824
+ internalType: "uint256",
1825
+ name: "shares",
1826
+ type: "uint256",
1827
+ },
1828
+ {
1829
+ internalType: "address",
1830
+ name: "owner",
1831
+ type: "address",
1832
+ },
1833
+ ],
1834
+ name: "makeWithdrawRequest",
1835
+ outputs: [],
1836
+ stateMutability: "nonpayable",
1837
+ type: "function",
1838
+ },
1839
+ {
1840
+ inputs: [],
1841
+ name: "manager",
1842
+ outputs: [
1843
+ {
1844
+ internalType: "address",
1845
+ name: "",
1846
+ type: "address",
1847
+ },
1848
+ ],
1849
+ stateMutability: "view",
1850
+ type: "function",
1851
+ },
1852
+ {
1853
+ inputs: [],
1854
+ name: "marketCap",
1855
+ outputs: [
1856
+ {
1857
+ internalType: "uint256",
1858
+ name: "",
1859
+ type: "uint256",
1860
+ },
1861
+ ],
1862
+ stateMutability: "view",
1863
+ type: "function",
1864
+ },
1865
+ {
1866
+ inputs: [],
1867
+ name: "maxAccOpenPnlDelta",
1868
+ outputs: [
1869
+ {
1870
+ internalType: "uint256",
1871
+ name: "",
1872
+ type: "uint256",
1873
+ },
1874
+ ],
1875
+ stateMutability: "view",
1876
+ type: "function",
1877
+ },
1878
+ {
1879
+ inputs: [],
1880
+ name: "maxAccPnlPerToken",
1881
+ outputs: [
1882
+ {
1883
+ internalType: "uint256",
1884
+ name: "",
1885
+ type: "uint256",
1886
+ },
1887
+ ],
1888
+ stateMutability: "view",
1889
+ type: "function",
1890
+ },
1891
+ {
1892
+ inputs: [],
1893
+ name: "maxDailyAccPnlDelta",
1894
+ outputs: [
1895
+ {
1896
+ internalType: "uint256",
1897
+ name: "",
1898
+ type: "uint256",
1899
+ },
1900
+ ],
1901
+ stateMutability: "view",
1902
+ type: "function",
1903
+ },
1904
+ {
1905
+ inputs: [
1906
+ {
1907
+ internalType: "address",
1908
+ name: "owner",
1909
+ type: "address",
1910
+ },
1911
+ ],
1912
+ name: "maxDeposit",
1913
+ outputs: [
1914
+ {
1915
+ internalType: "uint256",
1916
+ name: "",
1917
+ type: "uint256",
1918
+ },
1919
+ ],
1920
+ stateMutability: "view",
1921
+ type: "function",
1922
+ },
1923
+ {
1924
+ inputs: [],
1925
+ name: "maxDiscountP",
1926
+ outputs: [
1927
+ {
1928
+ internalType: "uint256",
1929
+ name: "",
1930
+ type: "uint256",
1931
+ },
1932
+ ],
1933
+ stateMutability: "view",
1934
+ type: "function",
1935
+ },
1936
+ {
1937
+ inputs: [],
1938
+ name: "maxDiscountThresholdP",
1939
+ outputs: [
1940
+ {
1941
+ internalType: "uint256",
1942
+ name: "",
1943
+ type: "uint256",
1944
+ },
1945
+ ],
1946
+ stateMutability: "view",
1947
+ type: "function",
1948
+ },
1949
+ {
1950
+ inputs: [],
1951
+ name: "maxGnsSupplyMintDailyP",
1952
+ outputs: [
1953
+ {
1954
+ internalType: "uint256",
1955
+ name: "",
1956
+ type: "uint256",
1957
+ },
1958
+ ],
1959
+ stateMutability: "view",
1960
+ type: "function",
1961
+ },
1962
+ {
1963
+ inputs: [
1964
+ {
1965
+ internalType: "address",
1966
+ name: "",
1967
+ type: "address",
1968
+ },
1969
+ ],
1970
+ name: "maxMint",
1971
+ outputs: [
1972
+ {
1973
+ internalType: "uint256",
1974
+ name: "",
1975
+ type: "uint256",
1976
+ },
1977
+ ],
1978
+ stateMutability: "view",
1979
+ type: "function",
1980
+ },
1981
+ {
1982
+ inputs: [
1983
+ {
1984
+ internalType: "address",
1985
+ name: "owner",
1986
+ type: "address",
1987
+ },
1988
+ ],
1989
+ name: "maxRedeem",
1990
+ outputs: [
1991
+ {
1992
+ internalType: "uint256",
1993
+ name: "",
1994
+ type: "uint256",
1995
+ },
1996
+ ],
1997
+ stateMutability: "view",
1998
+ type: "function",
1999
+ },
2000
+ {
2001
+ inputs: [],
2002
+ name: "maxSupplyIncreaseDailyP",
2003
+ outputs: [
2004
+ {
2005
+ internalType: "uint256",
2006
+ name: "",
2007
+ type: "uint256",
2008
+ },
2009
+ ],
2010
+ stateMutability: "view",
2011
+ type: "function",
2012
+ },
2013
+ {
2014
+ inputs: [
2015
+ {
2016
+ internalType: "address",
2017
+ name: "owner",
2018
+ type: "address",
2019
+ },
2020
+ ],
2021
+ name: "maxWithdraw",
2022
+ outputs: [
2023
+ {
2024
+ internalType: "uint256",
2025
+ name: "",
2026
+ type: "uint256",
2027
+ },
2028
+ ],
2029
+ stateMutability: "view",
2030
+ type: "function",
2031
+ },
2032
+ {
2033
+ inputs: [
2034
+ {
2035
+ internalType: "uint256",
2036
+ name: "shares",
2037
+ type: "uint256",
2038
+ },
2039
+ {
2040
+ internalType: "address",
2041
+ name: "receiver",
2042
+ type: "address",
2043
+ },
2044
+ ],
2045
+ name: "mint",
2046
+ outputs: [
2047
+ {
2048
+ internalType: "uint256",
2049
+ name: "",
2050
+ type: "uint256",
2051
+ },
2052
+ ],
2053
+ stateMutability: "nonpayable",
2054
+ type: "function",
2055
+ },
2056
+ {
2057
+ inputs: [
2058
+ {
2059
+ internalType: "uint256",
2060
+ name: "shares",
2061
+ type: "uint256",
2062
+ },
2063
+ {
2064
+ internalType: "uint256",
2065
+ name: "lockDuration",
2066
+ type: "uint256",
2067
+ },
2068
+ {
2069
+ internalType: "address",
2070
+ name: "receiver",
2071
+ type: "address",
2072
+ },
2073
+ ],
2074
+ name: "mintWithDiscountAndLock",
2075
+ outputs: [
2076
+ {
2077
+ internalType: "uint256",
2078
+ name: "",
2079
+ type: "uint256",
2080
+ },
2081
+ ],
2082
+ stateMutability: "nonpayable",
2083
+ type: "function",
2084
+ },
2085
+ {
2086
+ inputs: [],
2087
+ name: "name",
2088
+ outputs: [
2089
+ {
2090
+ internalType: "string",
2091
+ name: "",
2092
+ type: "string",
2093
+ },
2094
+ ],
2095
+ stateMutability: "view",
2096
+ type: "function",
2097
+ },
2098
+ {
2099
+ inputs: [],
2100
+ name: "openTradesPnlFeed",
2101
+ outputs: [
2102
+ {
2103
+ internalType: "contract IGTokenOpenPnlFeed",
2104
+ name: "",
2105
+ type: "address",
2106
+ },
2107
+ ],
2108
+ stateMutability: "view",
2109
+ type: "function",
2110
+ },
2111
+ {
2112
+ inputs: [],
2113
+ name: "owner",
2114
+ outputs: [
2115
+ {
2116
+ internalType: "address",
2117
+ name: "",
2118
+ type: "address",
2119
+ },
2120
+ ],
2121
+ stateMutability: "view",
2122
+ type: "function",
2123
+ },
2124
+ {
2125
+ inputs: [],
2126
+ name: "pnlHandler",
2127
+ outputs: [
2128
+ {
2129
+ internalType: "address",
2130
+ name: "",
2131
+ type: "address",
2132
+ },
2133
+ ],
2134
+ stateMutability: "view",
2135
+ type: "function",
2136
+ },
2137
+ {
2138
+ inputs: [
2139
+ {
2140
+ internalType: "uint256",
2141
+ name: "assets",
2142
+ type: "uint256",
2143
+ },
2144
+ ],
2145
+ name: "previewDeposit",
2146
+ outputs: [
2147
+ {
2148
+ internalType: "uint256",
2149
+ name: "",
2150
+ type: "uint256",
2151
+ },
2152
+ ],
2153
+ stateMutability: "view",
2154
+ type: "function",
2155
+ },
2156
+ {
2157
+ inputs: [
2158
+ {
2159
+ internalType: "uint256",
2160
+ name: "shares",
2161
+ type: "uint256",
2162
+ },
2163
+ ],
2164
+ name: "previewMint",
2165
+ outputs: [
2166
+ {
2167
+ internalType: "uint256",
2168
+ name: "",
2169
+ type: "uint256",
2170
+ },
2171
+ ],
2172
+ stateMutability: "view",
2173
+ type: "function",
2174
+ },
2175
+ {
2176
+ inputs: [
2177
+ {
2178
+ internalType: "uint256",
2179
+ name: "shares",
2180
+ type: "uint256",
2181
+ },
2182
+ ],
2183
+ name: "previewRedeem",
2184
+ outputs: [
2185
+ {
2186
+ internalType: "uint256",
2187
+ name: "",
2188
+ type: "uint256",
2189
+ },
2190
+ ],
2191
+ stateMutability: "view",
2192
+ type: "function",
2193
+ },
2194
+ {
2195
+ inputs: [
2196
+ {
2197
+ internalType: "uint256",
2198
+ name: "assets",
2199
+ type: "uint256",
2200
+ },
2201
+ ],
2202
+ name: "previewWithdraw",
2203
+ outputs: [
2204
+ {
2205
+ internalType: "uint256",
2206
+ name: "",
2207
+ type: "uint256",
2208
+ },
2209
+ ],
2210
+ stateMutability: "view",
2211
+ type: "function",
2212
+ },
2213
+ {
2214
+ inputs: [
2215
+ {
2216
+ internalType: "uint256",
2217
+ name: "assets",
2218
+ type: "uint256",
2219
+ },
2220
+ {
2221
+ internalType: "address",
2222
+ name: "user",
2223
+ type: "address",
2224
+ },
2225
+ {
2226
+ internalType: "bool",
2227
+ name: "_burn",
2228
+ type: "bool",
2229
+ },
2230
+ ],
2231
+ name: "receiveAssets",
2232
+ outputs: [],
2233
+ stateMutability: "nonpayable",
2234
+ type: "function",
2235
+ },
2236
+ {
2237
+ inputs: [
2238
+ {
2239
+ internalType: "uint256",
2240
+ name: "shares",
2241
+ type: "uint256",
2242
+ },
2243
+ {
2244
+ internalType: "address",
2245
+ name: "receiver",
2246
+ type: "address",
2247
+ },
2248
+ {
2249
+ internalType: "address",
2250
+ name: "owner",
2251
+ type: "address",
2252
+ },
2253
+ ],
2254
+ name: "redeem",
2255
+ outputs: [
2256
+ {
2257
+ internalType: "uint256",
2258
+ name: "",
2259
+ type: "uint256",
2260
+ },
2261
+ ],
2262
+ stateMutability: "nonpayable",
2263
+ type: "function",
2264
+ },
2265
+ {
2266
+ inputs: [
2267
+ {
2268
+ internalType: "uint256",
2269
+ name: "assets",
2270
+ type: "uint256",
2271
+ },
2272
+ ],
2273
+ name: "refill",
2274
+ outputs: [],
2275
+ stateMutability: "nonpayable",
2276
+ type: "function",
2277
+ },
2278
+ {
2279
+ inputs: [],
2280
+ name: "renounceOwnership",
2281
+ outputs: [],
2282
+ stateMutability: "nonpayable",
2283
+ type: "function",
2284
+ },
2285
+ {
2286
+ inputs: [
2287
+ {
2288
+ internalType: "uint256",
2289
+ name: "assets",
2290
+ type: "uint256",
2291
+ },
2292
+ {
2293
+ internalType: "address",
2294
+ name: "receiver",
2295
+ type: "address",
2296
+ },
2297
+ ],
2298
+ name: "sendAssets",
2299
+ outputs: [],
2300
+ stateMutability: "nonpayable",
2301
+ type: "function",
2302
+ },
2303
+ {
2304
+ inputs: [],
2305
+ name: "shareToAssetsPrice",
2306
+ outputs: [
2307
+ {
2308
+ internalType: "uint256",
2309
+ name: "",
2310
+ type: "uint256",
2311
+ },
2312
+ ],
2313
+ stateMutability: "view",
2314
+ type: "function",
2315
+ },
2316
+ {
2317
+ inputs: [],
2318
+ name: "symbol",
2319
+ outputs: [
2320
+ {
2321
+ internalType: "string",
2322
+ name: "",
2323
+ type: "string",
2324
+ },
2325
+ ],
2326
+ stateMutability: "view",
2327
+ type: "function",
2328
+ },
2329
+ {
2330
+ inputs: [],
2331
+ name: "totalAssets",
2332
+ outputs: [
2333
+ {
2334
+ internalType: "uint256",
2335
+ name: "",
2336
+ type: "uint256",
2337
+ },
2338
+ ],
2339
+ stateMutability: "view",
2340
+ type: "function",
2341
+ },
2342
+ {
2343
+ inputs: [],
2344
+ name: "totalClosedPnl",
2345
+ outputs: [
2346
+ {
2347
+ internalType: "int256",
2348
+ name: "",
2349
+ type: "int256",
2350
+ },
2351
+ ],
2352
+ stateMutability: "view",
2353
+ type: "function",
2354
+ },
2355
+ {
2356
+ inputs: [],
2357
+ name: "totalDeposited",
2358
+ outputs: [
2359
+ {
2360
+ internalType: "uint256",
2361
+ name: "",
2362
+ type: "uint256",
2363
+ },
2364
+ ],
2365
+ stateMutability: "view",
2366
+ type: "function",
2367
+ },
2368
+ {
2369
+ inputs: [],
2370
+ name: "totalLiability",
2371
+ outputs: [
2372
+ {
2373
+ internalType: "int256",
2374
+ name: "",
2375
+ type: "int256",
2376
+ },
2377
+ ],
2378
+ stateMutability: "view",
2379
+ type: "function",
2380
+ },
2381
+ {
2382
+ inputs: [],
2383
+ name: "totalRewards",
2384
+ outputs: [
2385
+ {
2386
+ internalType: "uint256",
2387
+ name: "",
2388
+ type: "uint256",
2389
+ },
2390
+ ],
2391
+ stateMutability: "view",
2392
+ type: "function",
2393
+ },
2394
+ {
2395
+ inputs: [
2396
+ {
2397
+ internalType: "address",
2398
+ name: "owner",
2399
+ type: "address",
2400
+ },
2401
+ ],
2402
+ name: "totalSharesBeingWithdrawn",
2403
+ outputs: [
2404
+ {
2405
+ internalType: "uint256",
2406
+ name: "shares",
2407
+ type: "uint256",
2408
+ },
2409
+ ],
2410
+ stateMutability: "view",
2411
+ type: "function",
2412
+ },
2413
+ {
2414
+ inputs: [],
2415
+ name: "totalSupply",
2416
+ outputs: [
2417
+ {
2418
+ internalType: "uint256",
2419
+ name: "",
2420
+ type: "uint256",
2421
+ },
2422
+ ],
2423
+ stateMutability: "view",
2424
+ type: "function",
2425
+ },
2426
+ {
2427
+ inputs: [
2428
+ {
2429
+ internalType: "address",
2430
+ name: "to",
2431
+ type: "address",
2432
+ },
2433
+ {
2434
+ internalType: "uint256",
2435
+ name: "amount",
2436
+ type: "uint256",
2437
+ },
2438
+ ],
2439
+ name: "transfer",
2440
+ outputs: [
2441
+ {
2442
+ internalType: "bool",
2443
+ name: "",
2444
+ type: "bool",
2445
+ },
2446
+ ],
2447
+ stateMutability: "nonpayable",
2448
+ type: "function",
2449
+ },
2450
+ {
2451
+ inputs: [
2452
+ {
2453
+ internalType: "address",
2454
+ name: "from",
2455
+ type: "address",
2456
+ },
2457
+ {
2458
+ internalType: "address",
2459
+ name: "to",
2460
+ type: "address",
2461
+ },
2462
+ {
2463
+ internalType: "uint256",
2464
+ name: "amount",
2465
+ type: "uint256",
2466
+ },
2467
+ ],
2468
+ name: "transferFrom",
2469
+ outputs: [
2470
+ {
2471
+ internalType: "bool",
2472
+ name: "",
2473
+ type: "bool",
2474
+ },
2475
+ ],
2476
+ stateMutability: "nonpayable",
2477
+ type: "function",
2478
+ },
2479
+ {
2480
+ inputs: [
2481
+ {
2482
+ internalType: "address",
2483
+ name: "newOwner",
2484
+ type: "address",
2485
+ },
2486
+ ],
2487
+ name: "transferOwnership",
2488
+ outputs: [],
2489
+ stateMutability: "nonpayable",
2490
+ type: "function",
2491
+ },
2492
+ {
2493
+ inputs: [],
2494
+ name: "tryNewOpenPnlRequestOrEpoch",
2495
+ outputs: [],
2496
+ stateMutability: "nonpayable",
2497
+ type: "function",
2498
+ },
2499
+ {
2500
+ inputs: [],
2501
+ name: "tryResetDailyAccPnlDelta",
2502
+ outputs: [],
2503
+ stateMutability: "nonpayable",
2504
+ type: "function",
2505
+ },
2506
+ {
2507
+ inputs: [],
2508
+ name: "tryUpdateCurrentMaxSupply",
2509
+ outputs: [],
2510
+ stateMutability: "nonpayable",
2511
+ type: "function",
2512
+ },
2513
+ {
2514
+ inputs: [],
2515
+ name: "tvl",
2516
+ outputs: [
2517
+ {
2518
+ internalType: "uint256",
2519
+ name: "",
2520
+ type: "uint256",
2521
+ },
2522
+ ],
2523
+ stateMutability: "view",
2524
+ type: "function",
2525
+ },
2526
+ {
2527
+ inputs: [
2528
+ {
2529
+ internalType: "uint256",
2530
+ name: "depositId",
2531
+ type: "uint256",
2532
+ },
2533
+ {
2534
+ internalType: "address",
2535
+ name: "receiver",
2536
+ type: "address",
2537
+ },
2538
+ ],
2539
+ name: "unlockDeposit",
2540
+ outputs: [],
2541
+ stateMutability: "nonpayable",
2542
+ type: "function",
2543
+ },
2544
+ {
2545
+ inputs: [
2546
+ {
2547
+ internalType: "uint256",
2548
+ name: "prevPositiveOpenPnl",
2549
+ type: "uint256",
2550
+ },
2551
+ {
2552
+ internalType: "uint256",
2553
+ name: "newPositiveOpenPnl",
2554
+ type: "uint256",
2555
+ },
2556
+ ],
2557
+ name: "updateAccPnlPerTokenUsed",
2558
+ outputs: [
2559
+ {
2560
+ internalType: "uint256",
2561
+ name: "",
2562
+ type: "uint256",
2563
+ },
2564
+ ],
2565
+ stateMutability: "nonpayable",
2566
+ type: "function",
2567
+ },
2568
+ {
2569
+ inputs: [
2570
+ {
2571
+ internalType: "address",
2572
+ name: "newValue",
2573
+ type: "address",
2574
+ },
2575
+ ],
2576
+ name: "updateAdmin",
2577
+ outputs: [],
2578
+ stateMutability: "nonpayable",
2579
+ type: "function",
2580
+ },
2581
+ {
2582
+ inputs: [
2583
+ {
2584
+ components: [
2585
+ {
2586
+ internalType: "address",
2587
+ name: "addr",
2588
+ type: "address",
2589
+ },
2590
+ {
2591
+ internalType: "bytes",
2592
+ name: "signature",
2593
+ type: "bytes",
2594
+ },
2595
+ ],
2596
+ internalType: "struct IGToken.GnsPriceProvider",
2597
+ name: "newValue",
2598
+ type: "tuple",
2599
+ },
2600
+ ],
2601
+ name: "updateGnsPriceProvider",
2602
+ outputs: [],
2603
+ stateMutability: "nonpayable",
2604
+ type: "function",
2605
+ },
2606
+ {
2607
+ inputs: [
2608
+ {
2609
+ internalType: "uint256",
2610
+ name: "newValue",
2611
+ type: "uint256",
2612
+ },
2613
+ ],
2614
+ name: "updateLossesBurnP",
2615
+ outputs: [],
2616
+ stateMutability: "nonpayable",
2617
+ type: "function",
2618
+ },
2619
+ {
2620
+ inputs: [
2621
+ {
2622
+ internalType: "address",
2623
+ name: "newValue",
2624
+ type: "address",
2625
+ },
2626
+ ],
2627
+ name: "updateManager",
2628
+ outputs: [],
2629
+ stateMutability: "nonpayable",
2630
+ type: "function",
2631
+ },
2632
+ {
2633
+ inputs: [
2634
+ {
2635
+ internalType: "uint256",
2636
+ name: "newValue",
2637
+ type: "uint256",
2638
+ },
2639
+ ],
2640
+ name: "updateMaxAccOpenPnlDelta",
2641
+ outputs: [],
2642
+ stateMutability: "nonpayable",
2643
+ type: "function",
2644
+ },
2645
+ {
2646
+ inputs: [
2647
+ {
2648
+ internalType: "uint256",
2649
+ name: "newValue",
2650
+ type: "uint256",
2651
+ },
2652
+ ],
2653
+ name: "updateMaxDailyAccPnlDelta",
2654
+ outputs: [],
2655
+ stateMutability: "nonpayable",
2656
+ type: "function",
2657
+ },
2658
+ {
2659
+ inputs: [
2660
+ {
2661
+ internalType: "uint256",
2662
+ name: "newValue",
2663
+ type: "uint256",
2664
+ },
2665
+ ],
2666
+ name: "updateMaxDiscountP",
2667
+ outputs: [],
2668
+ stateMutability: "nonpayable",
2669
+ type: "function",
2670
+ },
2671
+ {
2672
+ inputs: [
2673
+ {
2674
+ internalType: "uint256",
2675
+ name: "newValue",
2676
+ type: "uint256",
2677
+ },
2678
+ ],
2679
+ name: "updateMaxDiscountThresholdP",
2680
+ outputs: [],
2681
+ stateMutability: "nonpayable",
2682
+ type: "function",
2683
+ },
2684
+ {
2685
+ inputs: [
2686
+ {
2687
+ internalType: "uint256",
2688
+ name: "newValue",
2689
+ type: "uint256",
2690
+ },
2691
+ ],
2692
+ name: "updateMaxGnsSupplyMintDailyP",
2693
+ outputs: [],
2694
+ stateMutability: "nonpayable",
2695
+ type: "function",
2696
+ },
2697
+ {
2698
+ inputs: [
2699
+ {
2700
+ internalType: "uint256",
2701
+ name: "newValue",
2702
+ type: "uint256",
2703
+ },
2704
+ ],
2705
+ name: "updateMaxSupplyIncreaseDailyP",
2706
+ outputs: [],
2707
+ stateMutability: "nonpayable",
2708
+ type: "function",
2709
+ },
2710
+ {
2711
+ inputs: [
2712
+ {
2713
+ internalType: "address",
2714
+ name: "newValue",
2715
+ type: "address",
2716
+ },
2717
+ ],
2718
+ name: "updateOpenTradesPnlFeed",
2719
+ outputs: [],
2720
+ stateMutability: "nonpayable",
2721
+ type: "function",
2722
+ },
2723
+ {
2724
+ inputs: [
2725
+ {
2726
+ internalType: "address",
2727
+ name: "newValue",
2728
+ type: "address",
2729
+ },
2730
+ ],
2731
+ name: "updatePnlHandler",
2732
+ outputs: [],
2733
+ stateMutability: "nonpayable",
2734
+ type: "function",
2735
+ },
2736
+ {
2737
+ inputs: [
2738
+ {
2739
+ internalType: "uint256[2]",
2740
+ name: "newValue",
2741
+ type: "uint256[2]",
2742
+ },
2743
+ ],
2744
+ name: "updateWithdrawLockThresholdsP",
2745
+ outputs: [],
2746
+ stateMutability: "nonpayable",
2747
+ type: "function",
2748
+ },
2749
+ {
2750
+ inputs: [
2751
+ {
2752
+ internalType: "uint256",
2753
+ name: "assets",
2754
+ type: "uint256",
2755
+ },
2756
+ {
2757
+ internalType: "address",
2758
+ name: "receiver",
2759
+ type: "address",
2760
+ },
2761
+ {
2762
+ internalType: "address",
2763
+ name: "owner",
2764
+ type: "address",
2765
+ },
2766
+ ],
2767
+ name: "withdraw",
2768
+ outputs: [
2769
+ {
2770
+ internalType: "uint256",
2771
+ name: "",
2772
+ type: "uint256",
2773
+ },
2774
+ ],
2775
+ stateMutability: "nonpayable",
2776
+ type: "function",
2777
+ },
2778
+ {
2779
+ inputs: [],
2780
+ name: "withdrawEpochsTimelock",
2781
+ outputs: [
2782
+ {
2783
+ internalType: "uint256",
2784
+ name: "",
2785
+ type: "uint256",
2786
+ },
2787
+ ],
2788
+ stateMutability: "view",
2789
+ type: "function",
2790
+ },
2791
+ {
2792
+ inputs: [
2793
+ {
2794
+ internalType: "uint256",
2795
+ name: "",
2796
+ type: "uint256",
2797
+ },
2798
+ ],
2799
+ name: "withdrawLockThresholdsP",
2800
+ outputs: [
2801
+ {
2802
+ internalType: "uint256",
2803
+ name: "",
2804
+ type: "uint256",
2805
+ },
2806
+ ],
2807
+ stateMutability: "view",
2808
+ type: "function",
2809
+ },
2810
+ {
2811
+ inputs: [
2812
+ {
2813
+ internalType: "address",
2814
+ name: "",
2815
+ type: "address",
2816
+ },
2817
+ {
2818
+ internalType: "uint256",
2819
+ name: "",
2820
+ type: "uint256",
2821
+ },
2822
+ ],
2823
+ name: "withdrawRequests",
2824
+ outputs: [
2825
+ {
2826
+ internalType: "uint256",
2827
+ name: "",
2828
+ type: "uint256",
2829
+ },
2830
+ ],
2831
+ stateMutability: "view",
2832
+ type: "function",
2833
+ },
2834
+ ];
2835
+ const _bytecode = "0x608060405234801561001057600080fd5b506159a180620000216000396000f3fe608060405234801561001057600080fd5b506004361061060c5760003560e01c80638da5cb5b1161031d578063ce9e1b21116101a9578063e7839676116100fa578063f2fde38b116100a8578063f2fde38b14610d52578063f31bd8f714610d65578063f5521eaa14610d6e578063f851a44014610d81578063f8fb10f714610d94578063faf33f2914610d9d578063fe0b6d9014610da6578063ff50abdc14610db957600080fd5b8063e783967614610cb9578063e7899c0614610d1c578063e8e4311014610d24578063ea5f2bba14610d37578063ef01ed9314610d40578063ef8b30f714610b97578063f0a7744614610d4957600080fd5b8063db0447d511610157578063db0447d514610c5d578063dd62ed3e14610c66578063ddd65e3114610c79578063e065600514610c82578063e2f273bd14610c8b578063e5328e0614610c9e578063e66a6e3b14610ca657600080fd5b8063ce9e1b2114610be3578063cf39c2db14610bf6578063d1e08c2014610c09578063d229b2dd14610c1c578063d272df1014610c2f578063d8bdfd4814610c42578063d905777e14610c4a57600080fd5b8063b3c4850a1161026e578063c117ef3d1161021c578063c117ef3d14610b60578063c4c1416914610b69578063c63384ab14610b7c578063c63d75b614610b84578063c6e6f59214610b97578063ca9d07ba14610baa578063cb7f2c3914610bbd578063ce96cb7714610bd057600080fd5b8063b3c4850a14610a75578063b3d7f6b914610a88578063b460af9414610a9b578063b54bf9c914610aae578063b82c589914610ac1578063ba08765214610b45578063be216e8314610b5857600080fd5b8063a481c14b116102cb578063a481c14b146109fa578063a50043a014610a0d578063a8abe90514610a20578063a8de021d14610a33578063a9059cbb14610a46578063ad00a5a414610a59578063b224e73514610a6c57600080fd5b80638da5cb5b1461098c578063940a4e451461099d57806394bf804d146109b057806395d89b41146109c3578063979abb25146109cb5780639aca06dc146109de578063a457c2d7146109e757600080fd5b8063481c6a751161049c5780636ce7dcc9116103ed57806375cd9da91161039b57806375cd9da91461093a578063766718081461094357806378b4330f1461094c57806379431d9c146109555780637dfc6922146109685780637fcff2af146109715780638c4656291461097a5780638d6cb2881461098357600080fd5b80636ce7dcc9146108a85780636d6ca319146108bb5780636e553f65146108e65780636ee432f2146108f957806370a082311461090c578063715018a61461091f5780637361a5441461092757600080fd5b80635a6953d31161044a5780635a6953d31461082b5780635c0ab4de1461083e5780635e93f8601461087c5780635f4ae7411461088557806361a8c8c41461088e5780636445ec001461089757806366d8ecf11461089f57600080fd5b8063481c6a75146107ca5780634cdad506146106725780634ea0ddf7146107dd57806353409be2146107e657806354508847146107ef57806358aba00f14610802578063596f0bc51461081557600080fd5b80631f91f287116105615780632c135b931161050f5780632c135b9314610757578063313ce5671461075f57806338d52e0f1461077957806338e454b11461078a57806339509351146107925780633b418c1e146107a55780633cc77527146107ae578063402d267d146107b757600080fd5b80631f91f287146106ef5780631fc8d0991461070f57806320124bce1461071757806320e70a561461071f578063215e2fae1461073257806322b2ef851461073b57806323b872dd1461074457600080fd5b80630a28a477116105be5780630a28a477146106a85780630dfb5287146106bb5780630e15561a146106c35780630fc29349146106cc5780630fcc6f31146106d5578063104aeef8146106de57806318160ddd146106e757600080fd5b806301e1d114146106115780630307604f1461062c5780630344e8a31461063557806306fdde031461064a57806307484a681461065f57806307a2d13a14610672578063095ea7b314610685575b600080fd5b610619610dc2565b6040519081526020015b60405180910390f35b61061960f75481565b610648610643366004614c9e565b610e39565b005b6106526111d7565b6040516106239190614d1e565b61064861066d366004614d31565b611269565b610619610680366004614d4e565b6112b6565b610698610693366004614d67565b6112c9565b6040519015158152602001610623565b6106196106b6366004614d4e565b6112e1565b6106486112ee565b61061960ef5481565b61061960f05481565b61061960ee5481565b61061960e55481565b603554610619565b60ce54610702906001600160a01b031681565b6040516106239190614d93565b6106196113a8565b61061961146a565b61064861072d366004614d31565b6114a7565b61061960e85481565b61061960e65481565b610698610752366004614da7565b61152c565b610619611587565b61076761159e565b60405160ff9091168152602001610623565b6065546001600160a01b0316610702565b6106486115a8565b6106986107a0366004614d67565b611678565b61061960d45481565b61061960d95481565b6106196107c5366004614d31565b61169a565b60cb54610702906001600160a01b031681565b61061960de5481565b61061960f15481565b6106486107fd366004614d4e565b6116af565b610648610810366004614d31565b61171f565b61081d6117e0565b604051610623929190614de8565b60cd54610702906001600160a01b031681565b60f95461085c906001600160801b0380821691600160801b90041682565b604080516001600160801b03938416815292909116602083015201610623565b61061960e05481565b61061960f55481565b61061960e35481565b610648611881565b61061960ea5481565b6106486108b6366004614d4e565b611922565b6106196108c9366004614d67565b60e760209081526000928352604080842090915290825290205481565b6106196108f4366004614c9e565b611a8e565b610619610907366004614d4e565b611af2565b61061961091a366004614d31565b611b09565b610648611b24565b610619610935366004614e0c565b611b36565b61061960d85481565b61061960e25481565b61061960d15481565b60ca54610702906001600160a01b031681565b61061960db5481565b61061960df5481565b61061960eb5481565b61061960f85481565b6097546001600160a01b0316610702565b6106486109ab366004614d4e565b611d11565b6106196109be366004614c9e565b611def565b610652611e49565b6106486109d9366004614d4e565b611e58565b61061960f25481565b6106986109f5366004614d67565b611ec8565b610648610a08366004614c9e565b611f4e565b610648610a1b366004614e2e565b6120ee565b610648610a2e366004614c9e565b612222565b610648610a4136600461515c565b6123e8565b610698610a54366004614d67565b61281c565b610619610a67366004614d31565b612866565b61061960e15481565b610619610a83366004615221565b6128e5565b610619610a96366004614d4e565b61299d565b610619610aa936600461525a565b6129aa565b610648610abc366004615291565b612a4c565b610b0e610acf366004614d4e565b60e9602052600090815260409020805460018201546002830154600384015460048501546005909501546001600160a01b039094169492939192909186565b604080516001600160a01b0390971687526020870195909552938501929092526060840152608083015260a082015260c001610623565b610619610b5336600461525a565b612b0b565b610619612ba1565b61061960f45481565b610648610b77366004614d4e565b612bb9565b610619612c29565b610619610b92366004614d31565b612c9a565b610619610ba5366004614d4e565b612cc9565b610648610bb8366004614d4e565b612cd6565b60c954610702906001600160a01b031681565b610619610bde366004614d31565b612fd7565b610648610bf1366004614d4e565b612fe5565b610648610c04366004614d4e565b613055565b610619610c17366004614e0c565b6130c5565b610648610c2a366004614d31565b61315a565b610648610c3d366004614d4e565b6131d4565b610619613211565b610619610c58366004614d31565b6132b5565b61061960d75481565b610619610c743660046152c5565b61336e565b61061960dd5481565b61061960ec5481565b610648610c99366004614d31565b613399565b61061961345a565b610648610cb4366004614c9e565b613476565b610ccc610cc7366004614d4e565b613614565b604051610623919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0918201519181019190915260c00190565b6106486136b8565b610619610d32366004615221565b613703565b61061960dc5481565b61061960f65481565b61061960d35481565b610648610d60366004614d31565b6137b0565b61061960f35481565b610648610d7c3660046152f3565b613832565b60cc54610702906001600160a01b031681565b61061960da5481565b61061960e45481565b610648610db4366004614d4e565b61389c565b61061960ed5481565b6065546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610df3903090600401614d93565b602060405180830381865afa158015610e10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e34919061530f565b905090565b600082815260e960205260408120903360ca546040516331a9108f60e11b8152600481018790529192506000916001600160a01b0390911690636352211e90602401602060405180830381865afa158015610e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190615328565b9050816001600160a01b0316816001600160a01b031614158015610f56575060ca5460405163020604bf60e21b8152600481018790526001600160a01b0384811692169063081812fc90602401602060405180830381865afa158015610f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4a9190615328565b6001600160a01b031614155b8015610fd5575060ca5460405163e985e9c560e01b81526001600160a01b03838116600483015284811660248301529091169063e985e9c590604401602060405180830381865afa158015610faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd39190615345565b155b15610ff357604051631eb49d6d60e11b815260040160405180910390fd5b82600501548360040154611007919061537d565b4210156110275760405163fa68006560e01b815260040160405180910390fd5b60f95460009061106e9061104e906001600160801b0380821691600160801b900416615390565b6001600160801b031661106060355490565b60038701549190600161390c565b90508060de600082825461108291906153bb565b909155506110909050612ba1565b60de5413156110b257604051630de1bf7560e21b815260040160405180910390fd5b60ca54604051630852cd8d60e31b8152600481018890526001600160a01b03909116906342966c6890602401600060405180830381600087803b1580156110f857600080fd5b505af115801561110c573d6000803e3d6000fd5b505050508060dd600082825461112291906153bb565b90915550611130905061396b565b836003015460f0600082825461114691906153bb565b9091555050600384015460f180546000906111629084906153db565b92505081905550611178308686600101546139c7565b816001600160a01b0316856001600160a01b0316846001600160a01b03167fe37405a4f414fe3119839681cc26ea3462fc575fd2f81734417e52144d3f34b989886040516111c79291906153ee565b60405180910390a4505050505050565b6060603680546111e690615438565b80601f016020809104026020016040519081016040528092919081815260200182805461121290615438565b801561125f5780601f106112345761010080835404028352916020019161125f565b820191906000526020600020905b81548152906001019060200180831161124257829003601f168201915b5050505050905090565b611271613b59565b6001600160a01b03811661129857604051639fabe1c160e01b815260040160405180910390fd5b6112b36112ad6065546001600160a01b031690565b82613b8d565b50565b60006112c3826000613c79565b92915050565b6000336112d7818585613cba565b5060019392505050565b60006112c3826001613dd6565b60ce5460408051600481526024810182526020810180516001600160e01b031663bef35b7960e01b17905290516000926001600160a01b0316916113319161546c565b6000604051808303816000865af19150503d806000811461136e576040519150601f19603f3d011682016040523d82523d6000602084013e611373565b606091505b50509050806112b3576040517f46f2d6138acb3be39ad6ae5c9279b648c2a2c68743d0ddc18cc3a81cedecebd590600090a150565b60cf54604051600091829182916001600160a01b0316906113cb9060d090615488565b600060405180830381855afa9150503d8060008114611406576040519150601f19603f3d011682016040523d82523d6000602084013e61140b565b606091505b50915091508161142e57604051636f083c9360e11b815260040160405180910390fd5b80806020019051810190611442919061530f565b92508260000361146557604051633411242960e01b815260040160405180910390fd5b505090565b6000670de0b6b3a764000061147e60355490565b60dd54611489612ba1565b61149391906154fe565b61149d919061551e565b610e34919061554b565b6114af613df2565b6001600160a01b0381166114d657604051639fabe1c160e01b815260040160405180910390fd5b60ce80546001600160a01b0319166001600160a01b0383161790556040517f01776d11c598ace30615fd841ba9a298e4c2e05117ffe017350f6c82f90ec65b90611521908390614d93565b60405180910390a150565b60008161153885611b09565b61154291906153db565b61154b85612866565b111561156a5760405163423023f160e01b815260040160405180910390fd5b611575843384613e4c565b6112d78484846139c7565b9392505050565b6000670de0b6b3a764000060dc5461149360355490565b6000610e34613ec0565b600054600390610100900460ff161580156115ca575060005460ff8083169116105b6115ef5760405162461bcd60e51b81526004016115e69061555f565b60405180910390fd5b6000805461ffff191660ff83161761010017905561161d6116186065546001600160a01b031690565b613eda565b80516020918201516001600160801b03908116600160801b0291161760f9556000805461ff001916905560405160ff831681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989101611521565b6000336112d781858561168b838361336e565b611695919061537d565b613cba565b60006112c36116a883612c9a565b6000613c79565b6116b7613b59565b6116ca600a670de0b6b3a764000061554b565b8110156116ea576040516310906acb60e01b815260040160405180910390fd5b60d48190556040518181527f3f492ea436011f4e8f9e72a79808bac0d090849accb8de654f74ab6d30d825cb90602001611521565b611727613df2565b6001600160a01b03811661174e57604051639fabe1c160e01b815260040160405180910390fd5b6097546001600160a01b0382811691161480611777575060cc546001600160a01b038281169116145b1561179557604051632635240760e21b815260040160405180910390fd5b60cb80546001600160a01b0319166001600160a01b0383161790556040517f2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d90611521908390614d93565b60cf805460d080546001600160a01b0390921692916117fe90615438565b80601f016020809104026020016040519081016040528092919081815260200182805461182a90615438565b80156118775780601f1061184c57610100808354040283529160200191611877565b820191906000526020600020905b81548152906001019060200180831161185a57829003601f168201915b5050505050905082565b6201518060e6544261189391906153db565b10611920576118ab670de0b6b3a7640000606461551e565b60d7546118c1670de0b6b3a7640000606461551e565b6118cb919061537d565b6035546118d8919061551e565b6118e2919061554b565b60e58190554260e6556040519081527fd103db6eec024592fa6d47db028ec6408076ac4762eb021a6e52b525828bab9b906020015b60405180910390a15b565b60ea5481111561194557604051630ad1e31b60e01b815260040160405180910390fd5b8060ea600082825461195791906153db565b909155505060f95460009061199890611986906402540be40090600160801b90046001600160801b031661551e565b61198e6113a8565b849190600161390c565b905060003360c954604051632770a7eb60e21b81529192506001600160a01b031690639dc29fac906119d090849086906004016155ad565b600060405180830381600087803b1580156119ea57600080fd5b505af11580156119fe573d6000803e3d6000fd5b505050508260f36000828254611a14919061537d565b925050819055508160f46000828254611a2d919061537d565b90915550611a459050611a3e613f97565b8285613fab565b60408051848152602081018490526001600160a01b038316917f1fb4f167278bb29c47ac4fd58ca1586b0626b52807f2991ef78abdbb97bb4333910160405180910390a2505050565b600082611a9a81614006565b611aa38361169a565b841115611ac35760405163577e19eb60e11b815260040160405180910390fd5b6000611ace85612cc9565b9050611adc8186600161404a565b611ae833858784614124565b91505b5092915050565b60d58160028110611b0257600080fd5b0154905081565b6001600160a01b031660009081526033602052604090205490565b611b2c613df2565b6119206000614194565b60ce5460009033906001600160a01b03168114611b665760405163231f644160e11b815260040160405180910390fd5b6000611b7285856154fe565b90506000611b7f60355490565b60f95460de54919250600091611bed916001600160801b0316908490611ba3612ba1565b611bad91906154fe565b611bb7919061551e565b611bc1919061554b565b60f95460d3546001600160801b0390911690611bde90869061551e565b611be8919061554b565b6141e6565b9050808313611bfc5782611bfe565b805b60f9549093508290611c19906001600160801b0316856155c6565b611c2391906155f6565b60de6000828254611c3491906153bb565b909155505060f954611c5690600160801b90046001600160801b0316846155f6565b60f06000828254611c6791906153bb565b909155505060de5460dd55611c7a61396b565b60e28054906000611c8a83615624565b90915550504260e355611c9d83886153bb565b60e455611ca8611881565b60e25460e45460dd54604080518b8152602081018b90529081019290925260608201526001600160a01b038616907f115621a72d6f59323a1d752b116219634bc004cadb85d6bdc8e7eb254905722d9060800160405180910390a3505060e45495945050505050565b33611d25611d1d613f97565b8230856141fc565b60355460f9546001600160801b0380821691611d4a91600160801b909104168561551e565b611d54919061551e565b611d5e919061554b565b60df6000828254611d6f919061537d565b90915550611d7d905061396b565b8160ef6000828254611d8f919061537d565b925050819055508160ed6000828254611da8919061537d565b90915550506040518281526001600160a01b038216907fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea69060200160405180910390a25050565b600082611dfb81614006565b611e0483612c9a565b841115611e24576040516334f87ee160e11b815260040160405180910390fd5b6000611e2f8561299d565b9050611e3d8582600161404a565b611ae833858388614124565b6060603780546111e690615438565b611e60613b59565b611e73670de0b6b3a7640000600a61551e565b811115611e9357604051630ad1e31b60e01b815260040160405180910390fd5b60da8190556040518181527f62412ddbb9ad43638b3b9f4506160bc417a547fd57bfacef427820562bcc156090602001611521565b60003381611ed6828661336e565b905083811015611f365760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016115e6565b611f438286868403613cba565b506001949350505050565b33611f62611f5a613f97565b8230866141fc565b60dd5483906000138015611f785750600060de54125b15611fd45760006064670de0b6b3a764000060d85487611f98919061551e565b611fa2919061554b565b611fac919061554b565b90508060ea6000828254611fc0919061537d565b90915550611fd0905081836153db565b9150505b6000611fdf60355490565b60f9546001600160801b038082169161200191600160801b909104168561551e565b61200b919061551e565b612015919061554b565b90508060de600082825461202991906154fe565b9091555061203790506136b8565b8060e0600082825461204991906154fe565b925050819055508160f0600082825461206291906154fe565b925050819055508160ee600082825461207b91906154fe565b9091555061208990506112ee565b612091611881565b836001600160a01b0316836001600160a01b03167f2083893e39f8ae736fed502f7e149cc5bfe6159878615fae685a9a98bc452d5a87856040516120df929190918252602082015260400190565b60405180910390a35050505050565b6001600160a01b038216600090815260e76020908152604080832084845290915290205483111561213257604051630ad1e31b60e01b815260040160405180910390fd5b33600061213f848361336e565b9050836001600160a01b0316826001600160a01b03161415801561216a575080158061216a57508481105b1561218857604051631eb49d6d60e11b815260040160405180910390fd5b6001600160a01b038416600090815260e760209081526040808320868452909152812080548792906121bb9084906153db565b9250508190555082846001600160a01b0316836001600160a01b03167f443ccdbbbde35bd48740a9ea14c47318b735db4631ed1ebcdaaaa9f4636c84ea8860e254604051612213929190918252602082015260400190565b60405180910390a45050505050565b60ce5460408051632e3fbb9960e21b815290516000926001600160a01b03169163b8feee649160048083019260209291908290030181865afa15801561226c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612290919061530f565b11156122af5760405163a73449b960e01b815260040160405180910390fd5b3360006122bc838361336e565b9050826001600160a01b0316826001600160a01b0316141580156122e757508015806122e757508381105b1561230557604051631eb49d6d60e11b815260040160405180910390fd5b61230e83611b09565b8461231885612866565b612322919061537d565b111561234157604051630ad1e31b60e01b815260040160405180910390fd5b600061234b613211565b60e254612358919061537d565b6001600160a01b038516600090815260e76020908152604080832084845290915281208054929350879290919061239090849061537d565b9250508190555080846001600160a01b0316846001600160a01b03167f21b8e5e36008677ea26efbbc967e568e01b127f731ed0fda0a8685fda37d0d5f8860e254604051612213929190918252602082015260400190565b600054610100900460ff16158080156124085750600054600160ff909116105b806124225750303b158015612422575060005460ff166001145b61243e5760405162461bcd60e51b81526004016115e69061555f565b6000805460ff191660011790558015612461576000805461ff0019166101001790555b8a516001600160a01b031615801590612486575060208b01516001600160a01b031615155b801561249e575060408b01516001600160a01b031615155b80156124b6575060608b01516001600160a01b031615155b80156124dc57508a604001516001600160a01b03168b602001516001600160a01b031614155b801561250257508a606001516001600160a01b03168b604001516001600160a01b031614155b801561251a575060808b01516001600160a01b031615155b8015612532575060a08b01516001600160a01b031615155b801561254a575060c08b01516001600160a01b031615155b8015612562575060e08b01516001600160a01b031615155b801561257c57506101008b0151516001600160a01b031615155b8015612592575060008b61010001516020015151115b80156125b057506125ac600a670de0b6b3a764000061554b565b8810155b80156125c0575086516020880151115b80156125de57506125da670de0b6b3a7640000603261551e565b8611155b80156125fc57506125f8670de0b6b3a7640000601961551e565b8511155b801561261a57506126166014670de0b6b3a764000061554b565b8411155b80156126385750612634670de0b6b3a7640000600a61551e565b8311155b80156126565750612652670de0b6b3a7640000606461551e565b8210155b6126735760405163bd95487760e01b815260040160405180910390fd5b6126858c600001518d60200151614234565b8a5161269090614269565b61269d8b60200151614194565b60808b015160c980546001600160a01b03199081166001600160a01b039384161790915560a08d015160ca8054831691841691909117905560408d015160cb8054831691841691909117905560608d015160cc8054831691841691909117905560c08d015160cd8054831691841691909117905560e08d015160ce805483169184169190911790556101008d0151805160cf80549093169316929092178155602082015160d09061274e90826156a1565b50505060d18a905560d389905560d488905561276d60d5886002614be6565b5060d786905560d885905560d984905560da83905560db829055670de0b6b3a764000060dc55600160e28190554260e35560408051606081018252600380825260026020830152918101929092526127c79160d291614c24565b50801561280e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050505050565b6000338261282982611b09565b61283391906153db565b61283c82612866565b111561285b5760405163423023f160e01b815260040160405180910390fd5b6112d78185856139c7565b60e2546000905b60d26000815481106128815761288161563d565b906000526020600020015460e254612899919061537d565b81116128df576001600160a01b038316600090815260e7602090815260408083208484529091529020546128cd908361537d565b91506128d881615624565b905061286d565b50919050565b6000836128f181614006565b836128fb81614299565b61290484612c9a565b86111561292457604051630ad1e31b60e01b815260040160405180910390fd5b600061292f8761299d565b905061299281612946612940612c29565b896130c5565b612959670de0b6b3a7640000606461551e565b612963919061537d565b612976670de0b6b3a7640000606461551e565b612980908561551e565b61298a919061554b565b898989614304565b979650505050505050565b60006112c3826001613c79565b6000836129b681614006565b6129bf83612fd7565b8511156129df576040516322640cab60e21b815260040160405180910390fd5b60006129ea866112e1565b6001600160a01b038516600090815260e76020908152604080832060e2548452909152812080549293508392909190612a249084906153db565b90915550612a3690508187600061404a565b612a4333868689856144a0565b95945050505050565b612a54613b59565b80516001600160a01b0316612a7c57604051639fabe1c160e01b815260040160405180910390fd5b806020015151600003612aa2576040516391a0152960e01b815260040160405180910390fd5b805160cf80546001600160a01b0319166001600160a01b03909216919091178155602082015182919060d090612ad890826156a1565b509050507f2763c7adb1b7018e25499ef5553ec78e35bb46be6384b393861c35d501825dce816040516115219190615760565b600083612b1781614006565b612b20836132b5565b851115612b4057604051631f610d9760e21b815260040160405180910390fd5b6001600160a01b038316600090815260e76020908152604080832060e254845290915281208054879290612b759084906153db565b9091555060009050612b86866112b6565b9050612b948682600061404a565b612a43338686848a6144a0565b600060df54670de0b6b3a7640000610e34919061537d565b612bc1613b59565b612bd46014670de0b6b3a764000061554b565b811115612bf457604051630ad1e31b60e01b815260040160405180910390fd5b60d98190556040518181527f66ee70a6a35d8163de2516f1e2f30b75155c34b6f85704fc3fc7ea30d590322c90602001611521565b600080612c34612ba1565b905080670de0b6b3a7640000600060dd5413612c685760dd54612c59906000196155c6565b612c63908461537d565b612c75565b60dd54612c7590846153db565b612c8090606461551e565b612c8a919061551e565b612c94919061554b565b91505090565b60008060dd5413612cad576000196112c3565b612cbc60e554611be860355490565b60e5546112c391906153db565b60006112c3826000613dd6565b600060dd5413612cf957604051637c7a1c4760e01b815260040160405180910390fd5b6000612d0460355490565b9050670de0b6b3a76400008160dd54612d1d919061551e565b612d27919061554b565b821115612d4757604051630ad1e31b60e01b815260040160405180910390fd5b6201518060ec5442612d5991906153db565b10612d6857600060eb554260ec555b6000612d726113a8565b60f9546402540be40090612d9690600160801b90046001600160801b03168661551e565b612da0919061551e565b612daa919061554b565b90508060eb6000828254612dbe919061537d565b925050819055506064670de0b6b3a764000060c960009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e47919061530f565b60d954612e54919061551e565b612e5e919061554b565b612e68919061554b565b60eb541115612e8a57604051631ef6784960e21b815260040160405180910390fd5b33612e9e612e96613f97565b8230876141fc565b600083612eb3670de0b6b3a76400008761551e565b612ebd919061554b565b90508060de6000828254612ed191906154fe565b925050819055508060dd6000828254612eea91906154fe565b90915550612ef8905061396b565b8460f56000828254612f0a919061537d565b925050819055508260f66000828254612f23919061537d565b909155505060c9546040516340c10f1960e01b81526001600160a01b03909116906340c10f1990612f5a90859087906004016155ad565b600060405180830381600087803b158015612f7457600080fd5b505af1158015612f88573d6000803e3d6000fd5b505060408051888152602081018790526001600160a01b03861693507f19aee2c21e4d63823896cb2a77a3e61197dda70b1043a55fca38aa8d75c0edd392500160405180910390a25050505050565b60006112c36116a8836132b5565b612fed613b59565b613000670de0b6b3a7640000601961551e565b81111561302057604051630ad1e31b60e01b815260040160405180910390fd5b60d88190556040518181527fc4a0569383a33078b4dbc3e6c6c38c52e7e97b219ea9e04d1b58c2745e4d2bb490602001611521565b61305d613b59565b613070670de0b6b3a7640000606461551e565b811015613090576040516310906acb60e01b815260040160405180910390fd5b60db8190556040518181527fc3d15eac433007c433395eb171cde0d63e1c539dae45c0ae13358aebdfa36a5190602001611521565b60006301e13380826130e0670de0b6b3a7640000606461551e565b8511156131425760db548511156130f8576000613146565b61310b670de0b6b3a7640000606461551e565b60db5461311891906153db565b8560db5461312691906153db565b60da54613133919061551e565b61313d919061554b565b613146565b60da545b613150919061551e565b611580919061554b565b613162613df2565b6001600160a01b03811661318957604051639fabe1c160e01b815260040160405180910390fd5b60cd80546001600160a01b0319166001600160a01b0383161790556040517feb2ba7073d8ab13643a6179f01ba04f1b7a13d7f13e1f441bbaa78efca23b46490611521908390614d93565b6131dc613df2565b60d38190556040518181527fe1234c40b9946a154de19c53ced4025fa9a4a656cc61779e91d0a9c791529c6b90602001611521565b60008061321c612c29565b9050600061323782611be8670de0b6b3a7640000606461551e565b61324190836153db565b60d654909150811161328e5760d554811161327a5760d260008154811061326a5761326a61563d565b90600052602060002001546132ae565b60d260018154811061326a5761326a61563d565b60d26002815481106132a2576132a261563d565b90600052602060002001545b9250505090565b60ce5460408051632e3fbb9960e21b815290516000926001600160a01b03169163b8feee649160048083019260209291908290030181865afa1580156132ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613323919061530f565b1561332f5760006112c3565b6001600160a01b038216600090815260e76020908152604080832060e25484529091529020546112c390600161336460355490565b611be891906153db565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6133a1613b59565b6001600160a01b0381166133c857604051639fabe1c160e01b815260040160405180910390fd5b6097546001600160a01b03828116911614806133f1575060cb546001600160a01b038281169116145b1561340f57604051632635240760e21b815260040160405180910390fd5b60cc80546001600160a01b0319166001600160a01b0383161790556040517f54e4612788f90384e6843298d7854436f3a585b2c3831ab66abf1de63bfa6c2d90611521908390614d93565b6000670de0b6b3a764000061346e60355490565b611493612ba1565b60cd5433906001600160a01b031681146134a3576040516305f2713d60e31b815260040160405180910390fd5b60f9546000906134e6906134ca906001600160801b0380821691600160801b900416615390565b6001600160801b03166134dc60355490565b869190600161390c565b90508060de60008282546134fa91906153bb565b909155506135089050612ba1565b60de54131561352a57604051630de1bf7560e21b815260040160405180910390fd5b6135326136b8565b8060e0600082825461354491906153bb565b909155505060d45460e054131561356e576040516375b071b760e01b815260040160405180910390fd5b8360f0600082825461358091906153bb565b925050819055508360ee600082825461359991906153bb565b909155506135a790506112ee565b6135af611881565b6135c16135ba613f97565b8486613fab565b826001600160a01b0316826001600160a01b03167f17ffe64fb2212f31d60284d6471e06abb7db8d66f0a60f9b884b29f1597d05da8660405161360691815260200190565b60405180910390a350505050565b6136566040518060c0016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b50600090815260e96020908152604091829020825160c08101845281546001600160a01b03168152600182015492810192909252600281015492820192909252600382015460608201526004820154608082015260059091015460a082015290565b6201518060e154426136ca91906153db565b1061192057600060e08190554260e1556040517fa047de172c12fcf40e0ff45a86ac45befb232ae644862699ef140a8c5f763b419190a1565b60008361370f81614006565b8361371981614299565b600061372e670de0b6b3a7640000606461551e565b61373f613739612c29565b886130c5565b613752670de0b6b3a7640000606461551e565b61375c919061537d565b613766908961551e565b613770919061554b565b905061377b8561169a565b81111561379b57604051630ad1e31b60e01b815260040160405180910390fd5b61299281886137a984612cc9565b8989614304565b6137b8613df2565b6001600160a01b0381166137e2576000604051631e4fbdf760e01b81526004016115e69190614d93565b60cb546001600160a01b038281169116148061380b575060cc546001600160a01b038281169116145b1561382957604051632635240760e21b815260040160405180910390fd5b6112b381614194565b61383a613df2565b805160208201511161385f5760405163bd95487760e01b815260040160405180910390fd5b61386c60d5826002614be6565b507f8472b50e25b52d8de564f9719bd793b18d83cf59ce4d309e211fb6a4fdc1481181604051611521919061578d565b6138a4613b59565b6138b7670de0b6b3a7640000603261551e565b8111156138d757604051630ad1e31b60e01b815260040160405180910390fd5b60d78190556040518181527f484c943d66ffcec2016496d14da4bca3a349f387e1208e697f274612de7299c190602001611521565b60008061391a86868661453d565b90506001836002811115613930576139306157be565b14801561394d57506000848061394857613948615535565b868809115b156139605761395d60018261537d565b90505b90505b949350505050565b600060dd541361397c576000613980565b60dd545b613988612ba1565b61399291906153db565b60dc8190556040519081527f547c25b7a5677a006ff044a0e4b5e699598339825e7b42d3dc645117ceee805090602001611917565b6001600160a01b038316613a2b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016115e6565b6001600160a01b038216613a8d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016115e6565b6001600160a01b03831660009081526033602052604090205481811015613b055760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016115e6565b6001600160a01b03808516600081815260336020526040808220868603905592861680825290839020805486019055915160008051602061594c833981519152906136069086815260200190565b50505050565b60cb546001600160a01b0316336001600160a01b0316146119205760405163605919ad60e11b815260040160405180910390fd5b6000826001600160a01b031682604051602401613baa9190614d93565b60408051601f198184030181529181526020820180516001600160e01b03166317066a5760e21b17905251613bdf919061546c565b6000604051808303816000865af19150503d8060008114613c1c576040519150601f19603f3d011682016040523d82523d6000602084013e613c21565b606091505b50509050816001600160a01b0316836001600160a01b03167fb1247c60c1f535e393496ecb92a45670b346b057bf9e382c99cb0dca11ee8abc83604051613c6c911515815260200190565b60405180910390a3505050565b600060001983148015613c965750670de0b6b3a764000060dc5410155b15613ca25750816112c3565b60dc54611580908490670de0b6b3a76400008561390c565b6001600160a01b038316613d1c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016115e6565b6001600160a01b038216613d7d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016115e6565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101613c6c565b60dc54600090611580908490670de0b6b3a7640000908561390c565b6097546001600160a01b031633146119205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016115e6565b6000613e58848461336e565b90506000198114613b535781811015613eb35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016115e6565b613b538484848403613cba565b600080606554610e349190600160a01b900460ff166157d4565b60408051808201909152600080825260208201526000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f5291906157ed565b60ff169050613f6281600a6158f4565b6001600160801b03168252613f788160126153db565b613f8390600a6158f4565b6001600160801b0316602083015250919050565b6000610e346065546001600160a01b031690565b6140018363a9059cbb60e01b8484604051602401613fca9291906155ad565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614627565b505050565b60dc5460000361402957604051637294708f60e11b815260040160405180910390fd5b806000036112b357604051630b13e60d60e31b815260040160405180910390fd5b600061405560355490565b9050600060de5412156140a057816140765761407184826153db565b614080565b614080848261537d565b8160de5461408e91906155c6565b61409891906155f6565b60de556140f5565b600060de5413156140f557816140b8576000196140bb565b60015b8160f054866140ca91906155c6565b6140d491906155f6565b6140de91906155c6565b60f060008282546140ef91906153bb565b90915550505b8161410d578260ed5461410891906153db565b61411b565b8260ed5461411b919061537d565b60ed5550505050565b60655461413c906001600160a01b03168530856141fc565b61414683826146fc565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051613606929190918252602082015260400190565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008183106141f55781611580565b5090919050565b6040516001600160a01b0380851660248301528316604482015260648101829052613b539085906323b872dd60e01b90608401613fca565b600054610100900460ff1661425b5760405162461bcd60e51b81526004016115e690615900565b61426582826147ab565b5050565b600054610100900460ff166142905760405162461bcd60e51b81526004016115e690615900565b6112b3816147eb565b60da546000036142bc576040516350725e4f60e01b815260040160405180910390fd5b60d1548110156142df576040516310906acb60e01b815260040160405180910390fd5b6301e133808111156112b357604051630ad1e31b60e01b815260040160405180910390fd5b60008486116143265760405163a4e993e160e01b815260040160405180910390fd5b600060e86000815461433790615624565b91829055509050600061434a87896153db565b600083815260e96020526040902080546001600160a01b0319166001600160a01b0387161781556001808201899055600282018a90556003820183905542600483015560058201889055919250906143a59088908a9061404a565b336143b281308b8b614124565b8260f260008282546143c4919061537d565b925050819055508260f160008282546143dd919061537d565b909155505060ca546040516340c10f1960e01b81526001600160a01b03909116906340c10f199061441490899088906004016155ad565b600060405180830381600087803b15801561442e57600080fd5b505af1158015614442573d6000803e3d6000fd5b505083546040516001600160a01b03918216935090841691507f5d26cdffbd8401ba2a961d2094f7f008ee7bd735ac02a949721ee0fd0f0d5afc9061448a90889087906153ee565b60405180910390a3509198975050505050505050565b826001600160a01b0316856001600160a01b0316146144c4576144c4838683613e4c565b6144ce8382614870565b6065546144e5906001600160a01b03168584613fab565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051612213929190918252602082015260400190565b60008080600019858709858702925082811083820303915050806000036145775783828161456d5761456d615535565b0492505050611580565b8084116145be5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016115e6565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b600061467c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166149929092919063ffffffff16565b905080516000148061469d57508080602001905181019061469d9190615345565b6140015760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016115e6565b6001600160a01b0382166147525760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016115e6565b8060356000828254614764919061537d565b90915550506001600160a01b03821660008181526033602090815260408083208054860190555184815260008051602061594c833981519152910160405180910390a35050565b600054610100900460ff166147d25760405162461bcd60e51b81526004016115e690615900565b60366147de83826156a1565b50603761400182826156a1565b600054610100900460ff166148125760405162461bcd60e51b81526004016115e690615900565b60008061481e836149a1565b915091508161482e576012614830565b805b606580546001600160a01b039095166001600160a01b031960ff93909316600160a01b02929092166001600160a81b031990951694909417179092555050565b6001600160a01b0382166148d05760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016115e6565b6001600160a01b038216600090815260336020526040902054818110156149445760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016115e6565b6001600160a01b038316600081815260336020908152604080832086860390556035805487900390555185815291929160008051602061594c833981519152910160405180910390a3505050565b60606139638484600085614a7d565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290516000918291829182916001600160a01b038716916149e89161546c565b600060405180830381855afa9150503d8060008114614a23576040519150601f19603f3d011682016040523d82523d6000602084013e614a28565b606091505b5091509150818015614a3c57506020815110155b15614a7057600081806020019051810190614a57919061530f565b905060ff8111614a6e576001969095509350505050565b505b5060009485945092505050565b606082471015614ade5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016115e6565b600080866001600160a01b03168587604051614afa919061546c565b60006040518083038185875af1925050503d8060008114614b37576040519150601f19603f3d011682016040523d82523d6000602084013e614b3c565b606091505b50915091506129928783838760608315614bb7578251600003614bb0576001600160a01b0385163b614bb05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016115e6565b5081613963565b6139638383815115614bcc5781518083602001fd5b8060405162461bcd60e51b81526004016115e69190614d1e565b8260028101928215614c14579160200282015b82811115614c14578251825591602001919060010190614bf9565b50614c20929150614c64565b5090565b828054828255906000526020600020908101928215614c14579160200282015b82811115614c14578251829060ff16905591602001919060010190614c44565b5b80821115614c205760008155600101614c65565b6001600160a01b03811681146112b357600080fd5b8035614c9981614c79565b919050565b60008060408385031215614cb157600080fd5b823591506020830135614cc381614c79565b809150509250929050565b60005b83811015614ce9578181015183820152602001614cd1565b50506000910152565b60008151808452614d0a816020860160208601614cce565b601f01601f19169290920160200192915050565b6020815260006115806020830184614cf2565b600060208284031215614d4357600080fd5b813561158081614c79565b600060208284031215614d6057600080fd5b5035919050565b60008060408385031215614d7a57600080fd5b8235614d8581614c79565b946020939093013593505050565b6001600160a01b0391909116815260200190565b600080600060608486031215614dbc57600080fd5b8335614dc781614c79565b92506020840135614dd781614c79565b929592945050506040919091013590565b6001600160a01b038316815260406020820181905260009061396390830184614cf2565b60008060408385031215614e1f57600080fd5b50508035926020909101359150565b600080600060608486031215614e4357600080fd5b833592506020840135614dd781614c79565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614e8d57614e8d614e55565b60405290565b60405161012081016001600160401b0381118282101715614e8d57614e8d614e55565b60006001600160401b0380841115614ed057614ed0614e55565b604051601f8501601f19908116603f01168101908282118183101715614ef857614ef8614e55565b81604052809350858152868686011115614f1157600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112614f3c57600080fd5b61158083833560208501614eb6565b600060408284031215614f5d57600080fd5b614f65614e6b565b905081356001600160401b0380821115614f7e57600080fd5b614f8a85838601614f2b565b83526020840135915080821115614fa057600080fd5b50614fad84828501614f2b565b60208301525092915050565b600060408284031215614fcb57600080fd5b614fd3614e6b565b90508135614fe081614c79565b815260208201356001600160401b03811115614ffb57600080fd5b8201601f8101841361500c57600080fd5b614fad84823560208401614eb6565b6000610120828403121561502e57600080fd5b615036614e93565b905061504182614c8e565b815261504f60208301614c8e565b602082015261506060408301614c8e565b604082015261507160608301614c8e565b606082015261508260808301614c8e565b608082015261509360a08301614c8e565b60a08201526150a460c08301614c8e565b60c08201526150b560e08301614c8e565b60e0820152610100808301356001600160401b038111156150d557600080fd5b6150e185828601614fb9565b82840152505092915050565b600082601f8301126150fe57600080fd5b604051604081018181106001600160401b038211171561512057615120614e55565b806040525080604084018581111561513757600080fd5b845b81811015615151578035835260209283019201615139565b509195945050505050565b60008060008060008060008060008060006101808c8e03121561517e57600080fd5b6001600160401b03808d35111561519457600080fd5b6151a18e8e358f01614f4b565b9b508060208e013511156151b457600080fd5b506151c58d60208e01358e0161501b565b995060408c0135985060608c0135975060808c013596506151e98d60a08e016150ed565b9a9d999c50979a9699959895975050505060e08401359361010081013593610120820135935061014082013592506101609091013590565b60008060006060848603121561523657600080fd5b8335925060208401359150604084013561524f81614c79565b809150509250925092565b60008060006060848603121561526f57600080fd5b83359250602084013561528181614c79565b9150604084013561524f81614c79565b6000602082840312156152a357600080fd5b81356001600160401b038111156152b957600080fd5b61396384828501614fb9565b600080604083850312156152d857600080fd5b82356152e381614c79565b91506020830135614cc381614c79565b60006040828403121561530557600080fd5b61158083836150ed565b60006020828403121561532157600080fd5b5051919050565b60006020828403121561533a57600080fd5b815161158081614c79565b60006020828403121561535757600080fd5b8151801515811461158057600080fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156112c3576112c3615367565b6001600160801b038181168382160280821691908281146153b3576153b3615367565b505092915050565b80820182811260008312801582168215821617156153b3576153b3615367565b818103818111156112c3576112c3615367565b91825280546001600160a01b03166020830152600181015460408301526002810154606083015260038101546080830152600481015460a08301526005015460c082015260e00190565b600181811c9082168061544c57607f821691505b6020821081036128df57634e487b7160e01b600052602260045260246000fd5b6000825161547e818460208701614cce565b9190910192915050565b600080835461549681615438565b600182811680156154ae57600181146154c3576154f2565b60ff19841687528215158302870194506154f2565b8760005260208060002060005b858110156154e95781548a8201529084019082016154d0565b50505082870194505b50929695505050505050565b8181036000831280158383131683831282161715611aeb57611aeb615367565b80820281158282048414176112c3576112c3615367565b634e487b7160e01b600052601260045260246000fd5b60008261555a5761555a615535565b500490565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6001600160a01b03929092168252602082015260400190565b80820260008212600160ff1b841416156155e2576155e2615367565b81810583148215176112c3576112c3615367565b60008261560557615605615535565b600160ff1b82146000198414161561561f5761561f615367565b500590565b60006001820161563657615636615367565b5060010190565b634e487b7160e01b600052603260045260246000fd5b601f82111561400157600081815260208120601f850160051c8101602086101561567a5750805b601f850160051c820191505b8181101561569957828155600101615686565b505050505050565b81516001600160401b038111156156ba576156ba614e55565b6156ce816156c88454615438565b84615653565b602080601f83116001811461570357600084156156eb5750858301515b600019600386901b1c1916600185901b178555615699565b600085815260208120601f198616915b8281101561573257888601518255948401946001909101908401615713565b50858210156157505787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282516001600160a01b0316828201528201516040808301526000906139636060840182614cf2565b60408101818360005b60028110156157b5578151835260209283019290910190600101615796565b50505092915050565b634e487b7160e01b600052602160045260246000fd5b60ff81811683821601908111156112c3576112c3615367565b6000602082840312156157ff57600080fd5b815160ff8116811461158057600080fd5b600181815b8085111561584b57816000190482111561583157615831615367565b8085161561583e57918102915b93841c9390800290615815565b509250929050565b600082615862575060016112c3565b8161586f575060006112c3565b8160018114615885576002811461588f576158ab565b60019150506112c3565b60ff8411156158a0576158a0615367565b50506001821b6112c3565b5060208310610133831016604e8410600b84101617156158ce575081810a6112c3565b6158d88383615810565b80600019048211156158ec576158ec615367565b029392505050565b60006115808383615853565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f63c4819036afdfe56c7a65592d84e19672289f904b6829e54537443277e49a664736f6c63430008110033";
2836
+ const isSuperArgs = (xs) => xs.length > 1;
2837
+ class GToken__factory extends ethers_1.ContractFactory {
2838
+ constructor(...args) {
2839
+ if (isSuperArgs(args)) {
2840
+ super(...args);
2841
+ }
2842
+ else {
2843
+ super(_abi, _bytecode, args[0]);
2844
+ }
2845
+ }
2846
+ deploy(overrides) {
2847
+ return super.deploy(overrides || {});
2848
+ }
2849
+ getDeployTransaction(overrides) {
2850
+ return super.getDeployTransaction(overrides || {});
2851
+ }
2852
+ attach(address) {
2853
+ return super.attach(address);
2854
+ }
2855
+ connect(signer) {
2856
+ return super.connect(signer);
2857
+ }
2858
+ static createInterface() {
2859
+ return new ethers_1.utils.Interface(_abi);
2860
+ }
2861
+ static connect(address, signerOrProvider) {
2862
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
2863
+ }
2864
+ }
2865
+ exports.GToken__factory = GToken__factory;
2866
+ GToken__factory.bytecode = _bytecode;
2867
+ GToken__factory.abi = _abi;