@stake-dao/reader 0.4.39 → 0.4.41

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 (44) hide show
  1. package/dist/esm/abis/lockersMulticall.js +10 -0
  2. package/dist/esm/abis/lockersMulticall.js.map +1 -1
  3. package/dist/esm/lockers/fetch/index.js +1 -1
  4. package/dist/esm/lockers/fetch/index.js.map +1 -1
  5. package/dist/esm/lockers/fetch/parseBoost.js +4 -11
  6. package/dist/esm/lockers/fetch/parseBoost.js.map +1 -1
  7. package/dist/esm/lockers/utils/callsForLockers/depositorCalls.js +1 -0
  8. package/dist/esm/lockers/utils/callsForLockers/depositorCalls.js.map +1 -1
  9. package/dist/esm/lockers/utils/callsForLockers/index.js +1 -1
  10. package/dist/esm/lockers/utils/callsForLockers/index.js.map +1 -1
  11. package/dist/esm/lockers/utils/callsForLockers/veBoosts.js +9 -1
  12. package/dist/esm/lockers/utils/callsForLockers/veBoosts.js.map +1 -1
  13. package/dist/esm/strategies/curve/fetch/curveApiData/abi.js +1 -0
  14. package/dist/esm/strategies/curve/fetch/curveApiData/abi.js.map +1 -1
  15. package/dist/esm/strategies/curve/fetch/curveApiData/bytecode.js +2 -2
  16. package/dist/esm/strategies/curve/fetch/curveApiData/bytecode.js.map +1 -1
  17. package/dist/esm/strategies/curve/fetch/curveApiData/config.js +1 -1
  18. package/dist/esm/strategies/curve/fetch/curveApiData/getCurveApiData.js +16 -12
  19. package/dist/esm/strategies/curve/fetch/curveApiData/getCurveApiData.js.map +1 -1
  20. package/dist/esm/strategies/curve/fetch/curveApiData/getGaugesWeights.js.map +1 -1
  21. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  22. package/dist/types/abis/lockersMulticall.d.ts.map +1 -1
  23. package/dist/types/lockers/fetch/index.d.ts.map +1 -1
  24. package/dist/types/lockers/fetch/parseBoost.d.ts +1 -1
  25. package/dist/types/lockers/fetch/parseBoost.d.ts.map +1 -1
  26. package/dist/types/lockers/utils/callsForLockers/depositorCalls.d.ts.map +1 -1
  27. package/dist/types/lockers/utils/callsForLockers/veBoosts.d.ts +1 -1
  28. package/dist/types/lockers/utils/callsForLockers/veBoosts.d.ts.map +1 -1
  29. package/dist/types/strategies/curve/fetch/curveApiData/abi.d.ts.map +1 -1
  30. package/dist/types/strategies/curve/fetch/curveApiData/config.d.ts +1 -1
  31. package/dist/types/strategies/curve/fetch/curveApiData/getCurveApiData.d.ts.map +1 -1
  32. package/dist/types/strategies/curve/fetch/curveApiData/getGaugesWeights.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/src/abis/lockersMulticall.ts +10 -0
  35. package/src/lockers/fetch/index.ts +1 -7
  36. package/src/lockers/fetch/parseBoost.ts +6 -19
  37. package/src/lockers/utils/callsForLockers/depositorCalls.ts +1 -0
  38. package/src/lockers/utils/callsForLockers/index.ts +1 -1
  39. package/src/lockers/utils/callsForLockers/veBoosts.ts +17 -4
  40. package/src/strategies/curve/fetch/curveApiData/abi.ts +1 -0
  41. package/src/strategies/curve/fetch/curveApiData/bytecode.ts +2 -2
  42. package/src/strategies/curve/fetch/curveApiData/config.ts +1 -1
  43. package/src/strategies/curve/fetch/curveApiData/getCurveApiData.ts +21 -12
  44. package/src/strategies/curve/fetch/curveApiData/getGaugesWeights.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"lockersMulticall.d.ts","sourceRoot":"","sources":["../../../src/abis/lockersMulticall.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiUxB,CAAA;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"lockersMulticall.d.ts","sourceRoot":"","sources":["../../../src/abis/lockersMulticall.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2UxB,CAAA;AAED,eAAe,mBAAmB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAK5C,OAA6B,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAuB5F,UAAU,aAAa;IACrB,QAAQ,EAAE,GAAG,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,YAAY,oDAA2D,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgShG,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAK5C,OAA6B,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAuB5F,UAAU,aAAa;IACrB,QAAQ,EAAE,GAAG,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,YAAY,oDAA2D,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0RhG,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import { type Locker } from '@stake-dao/constants';
2
2
  export declare const parseBoost: (locker: Locker, chunkedRawLockersData: any) => string;
3
- export declare const parseVeBoostApr: (provider: any, tokenAddress: string, veBoostDelegator: string, tokenPriceInUsd: number, totalDelegatedVeBoost: number) => Promise<number>;
3
+ export declare const parseVeBoostApr: (lockerId: string, tokenPriceInUsd: number, totalDelegatedVeBoost: number, chunkedRawLockersData: any) => number;
4
4
  //# sourceMappingURL=parseBoost.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseBoost.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/parseBoost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAA4B,MAAM,sBAAsB,CAAA;AAK5E,eAAO,MAAM,UAAU,WAAY,MAAM,yBAAyB,GAAG,WASpE,CAAA;AAED,eAAO,MAAM,eAAe,aAChB,GAAG,gBACC,MAAM,oBACF,MAAM,mBACP,MAAM,yBACA,MAAM,oBAqC9B,CAAA"}
1
+ {"version":3,"file":"parseBoost.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/parseBoost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAA4B,MAAM,sBAAsB,CAAA;AAI5E,eAAO,MAAM,UAAU,WAAY,MAAM,yBAAyB,GAAG,WASpE,CAAA;AAED,eAAO,MAAM,eAAe,aAChB,MAAM,mBACC,MAAM,yBACA,MAAM,yBACN,GAAG,WA0B3B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"depositorCalls.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/depositorCalls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,QAAA,MAAM,cAAc,cAAe,MAAM,UAAU,OAAO,UAqBzD,CAAA;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"depositorCalls.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/depositorCalls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,QAAA,MAAM,cAAc,cAAe,MAAM,UAAU,OAAO,UAsBzD,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { Address } from 'viem';
2
- declare const veBoosts: (veBoost?: {
2
+ declare const veBoosts: (token: string, veBoost?: {
3
3
  address: Address;
4
4
  delegator: Address;
5
5
  }) => any[];
@@ -1 +1 @@
1
- {"version":3,"file":"veBoosts.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/veBoosts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,QAAA,MAAM,QAAQ,aAAc;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;CACnB,UAOA,CAAA;AAED,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"veBoosts.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/utils/callsForLockers/veBoosts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,QAAA,MAAM,QAAQ,UACL,MAAM,YACH;IACR,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;CACnB,UAgBF,CAAA;AAED,eAAe,QAAQ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../../../../../src/strategies/curve/fetch/curveApiData/abi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,cAAe,OAAO;;;;;;;;;;;;;;;GAmChE,CAAA;AAED,eAAO,MAAM,sCAAsC;;;;;;;GAWlD,CAAA;AAED,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;GA8B3C,CAAA"}
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../../../../../src/strategies/curve/fetch/curveApiData/abi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,cAAe,OAAO;;;;;;;;;;;;;;;GAmChE,CAAA;AAED,eAAO,MAAM,sCAAsC;;;;;;;GAWlD,CAAA;AAED,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;GA+B3C,CAAA"}
@@ -17,7 +17,7 @@ export declare const GAUGES_CHUNK_SIZE: {
17
17
  42161: number;
18
18
  };
19
19
  export declare const TOKENS_CHUNK_SIZE = 100;
20
- export declare const GAUGES_WEIGHTS_CHUNK_SIZE = 80;
20
+ export declare const GAUGES_WEIGHTS_CHUNK_SIZE = 60;
21
21
  export declare const GAUGES_REGISTRY_CHUNK_SIZE = 30;
22
22
  export declare const BROKEN_VAULTS: {
23
23
  1: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"getCurveApiData.d.ts","sourceRoot":"","sources":["../../../../../../src/strategies/curve/fetch/curveApiData/getCurveApiData.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAIxD,eAAO,MAAM,eAAe,QAAe,MAAM,WAAW,MAAM,iBAAiB,WAAW,EAAE,iBA8L/F,CAAA"}
1
+ {"version":3,"file":"getCurveApiData.d.ts","sourceRoot":"","sources":["../../../../../../src/strategies/curve/fetch/curveApiData/getCurveApiData.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAIxD,eAAO,MAAM,eAAe,QAAe,MAAM,WAAW,MAAM,iBAAiB,WAAW,EAAE,iBAuM/F,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getGaugesWeights.d.ts","sourceRoot":"","sources":["../../../../../../src/strategies/curve/fetch/curveApiData/getGaugesWeights.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAAA;AAE9E,eAAO,MAAM,gBAAgB,aAAoB,GAAG,OAAO,MAAM,KAAG,OAAO,CAAC,iBAAiB,CAwF5F,CAAA"}
1
+ {"version":3,"file":"getGaugesWeights.d.ts","sourceRoot":"","sources":["../../../../../../src/strategies/curve/fetch/curveApiData/getGaugesWeights.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAAA;AAE9E,eAAO,MAAM,gBAAgB,aAAoB,GAAG,OAAO,MAAM,KAAG,OAAO,CAAC,iBAAiB,CAyF5F,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stake-dao/reader",
3
3
  "description": "",
4
- "version": "0.4.39",
4
+ "version": "0.4.41",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
7
7
  "type": "git",
@@ -319,6 +319,16 @@ const lockersMulticallAbi = [
319
319
  stateMutability: 'view',
320
320
  type: 'function',
321
321
  },
322
+ {
323
+ inputs: [
324
+ { internalType: 'address', name: '', type: 'address' },
325
+ { internalType: 'uint256', name: '', type: 'uint256' },
326
+ ],
327
+ name: 'weeklyRewards',
328
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
329
+ stateMutability: 'view',
330
+ type: 'function',
331
+ },
322
332
  ]
323
333
 
324
334
  export default lockersMulticallAbi
@@ -179,13 +179,7 @@ export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph
179
179
 
180
180
  const veBoostTotalSupply = parseBoost(locker, chunkedRawLockersData)
181
181
  const veBoostApr = locker.veBoost
182
- ? await parseVeBoostApr(
183
- provider,
184
- locker.token.address,
185
- locker.veBoost.delegator,
186
- tokenPriceInUsd,
187
- Number(veBoostTotalSupply),
188
- )
182
+ ? parseVeBoostApr(locker.id, tokenPriceInUsd, Number(veBoostTotalSupply), chunkedRawLockersData)
189
183
  : 0
190
184
 
191
185
  // Rewards APR
@@ -1,7 +1,6 @@
1
1
  import { type Locker, ONE_WEEK, ONE_YEAR, Zero } from '@stake-dao/constants'
2
2
  import { range } from 'lodash-es'
3
- import { formatUnits, parseAbi } from 'viem'
4
- import { multicall } from '../../utils.js'
3
+ import { formatUnits } from 'viem'
5
4
 
6
5
  export const parseBoost = (locker: Locker, chunkedRawLockersData: any) => {
7
6
  let boost = '0'
@@ -14,29 +13,17 @@ export const parseBoost = (locker: Locker, chunkedRawLockersData: any) => {
14
13
  return boost
15
14
  }
16
15
 
17
- export const parseVeBoostApr = async (
18
- provider: any,
19
- tokenAddress: string,
20
- veBoostDelegator: string,
16
+ export const parseVeBoostApr = (
17
+ lockerId: string,
21
18
  tokenPriceInUsd: number,
22
19
  totalDelegatedVeBoost: number,
20
+ chunkedRawLockersData: any,
23
21
  ) => {
22
+ const startIndex = lockerId === 'crv' ? 16 : 12
24
23
  let amountPerYear = 0
25
24
 
26
- const now = Math.floor(Date.now() / 1000)
27
- const lastWeek = Math.floor(now / ONE_WEEK) * ONE_WEEK
28
- const lastFiveWeeks = range(0, 5).map((i) => lastWeek - i * ONE_WEEK)
29
-
30
25
  try {
31
- const rawWeeklyRewards = await multicall(
32
- provider,
33
- lastFiveWeeks.map((weekTimestamp) => ({
34
- address: veBoostDelegator,
35
- name: 'weeklyRewards',
36
- params: [tokenAddress, weekTimestamp],
37
- })),
38
- parseAbi(['function weeklyRewards(address token, uint256 weekTimestamp) external view returns (uint256)']),
39
- )
26
+ const rawWeeklyRewards = range(startIndex, startIndex + 5).map((i) => chunkedRawLockersData[i])
40
27
 
41
28
  const weeklyRewardsWithoutNull = rawWeeklyRewards
42
29
  .filter((el) => el.status === 'success' && el.result && typeof el.result === 'bigint' && el.result > Zero)
@@ -12,6 +12,7 @@ const depositorCalls = (depositor: string, locker: Address) => {
12
12
  lockerWithId('fxs', 252)!.modules.locker,
13
13
  lockerWithId('fxn')!.modules.locker,
14
14
  lockerWithId('yfi')!.modules.locker,
15
+ lockerWithId('pendle')!.modules.locker,
15
16
  ].includes(locker)
16
17
  ) {
17
18
  calls.push({ address: depositor, name: 'lockIncentivePercent' })
@@ -39,7 +39,7 @@ const callsForLockers = (
39
39
  },
40
40
  ]
41
41
  : []),
42
- ...veBoosts(veBoost),
42
+ ...veBoosts(token, veBoost),
43
43
  ]
44
44
 
45
45
  export default callsForLockers
@@ -1,12 +1,25 @@
1
+ import { ONE_WEEK } from '@stake-dao/constants'
2
+ import { range } from 'lodash-es'
1
3
  import type { Address } from 'viem'
2
4
 
3
- const veBoosts = (veBoost?: {
4
- address: Address
5
- delegator: Address
6
- }) => {
5
+ const veBoosts = (
6
+ token: string,
7
+ veBoost?: {
8
+ address: Address
9
+ delegator: Address
10
+ },
11
+ ) => {
7
12
  const calls: any[] = []
8
13
  if (veBoost) {
9
14
  calls.push({ address: veBoost.delegator, name: 'totalSupply', params: [] })
15
+
16
+ const now = Math.floor(Date.now() / 1000)
17
+ const lastWeek = Math.floor(now / ONE_WEEK) * ONE_WEEK
18
+ const lastFiveWeeks = range(0, 5).map((i) => lastWeek - i * ONE_WEEK)
19
+
20
+ for (const weekTimestamp of lastFiveWeeks) {
21
+ calls.push({ address: veBoost.delegator, name: 'weeklyRewards', params: [token, weekTimestamp] })
22
+ }
10
23
  }
11
24
 
12
25
  return calls
@@ -56,6 +56,7 @@ export const getCurveDataGaugesOutputTypeAbi = [
56
56
  { type: 'address', name: 'gauge' },
57
57
  { type: 'address', name: 'lpToken' },
58
58
  { type: 'bool', name: 'isKilled' },
59
+ { type: 'uint256', name: 'totalSupply' },
59
60
  { type: 'uint256', name: 'workingSupply' },
60
61
  {
61
62
  type: 'tuple[]',
@@ -20,9 +20,9 @@ const lendingOneWayFactoryBytecode =
20
20
  '0x608060405234801561000f575f80fd5b50604051610fb4380380610fb483398181016040528101906100319190610a92565b5f8390505f821461004257816100b0565b8073ffffffffffffffffffffffffffffffffffffffff1663fd775c786040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100af9190610ae2565b5b91505f83836100bf9190610b3a565b67ffffffffffffffff8111156100d8576100d7610b6d565b5b60405190808252806020026020018201604052801561011157816020015b6100fe610925565b8152602001906001900390816100f65790505b5090505f8490505b838110156108f657610129610925565b5f8473ffffffffffffffffffffffffffffffffffffffff16638c64ea4a846040518263ffffffff1660e01b81526004016101639190610ba9565b602060405180830381865afa15801561017e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a29190610bc2565b90505f81905083835f01818152505081836020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081836040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561026a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028e9190610ae2565b8360600181815250508573ffffffffffffffffffffffffffffffffffffffff1663b0539187856040518263ffffffff1660e01b81526004016102d09190610ba9565b602060405180830381865afa1580156102eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030f9190610bc2565b836080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600167ffffffffffffffff81111561036157610360610b6d565b5b60405190808252806020026020018201604052801561039a57816020015b6103876109b5565b81526020019060019003908161037f5790505b508360c001819052508073ffffffffffffffffffffffffffffffffffffffff166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104109190610bc2565b8360c001515f8151811061042757610426610bed565b5b60200260200101515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d19190610bc2565b73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610519573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061053d9190610ae2565b8360c001515f8151811061055457610553610bed565b5b602002602001015160200181815250508073ffffffffffffffffffffffffffffffffffffffff166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d19190610ae2565b8360c001515f815181106105e8576105e7610bed565b5b60200260200101516040018181525050600267ffffffffffffffff81111561061357610612610b6d565b5b6040519080825280602002602001820160405280156106415781602001602082028036833780820191505090505b508360e001819052508073ffffffffffffffffffffffffffffffffffffffff16632621db2f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610693573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b79190610bc2565b8360e001515f815181106106ce576106cd610bed565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663765337b66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610751573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107759190610bc2565b8360e0015160018151811061078d5761078c610bed565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff166399530b066040518163ffffffff1660e01b8152600401602060405180830381865afa158015610810573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108349190610ae2565b8361010001515f0181815250508073ffffffffffffffffffffffffffffffffffffffff1663a980497e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190610ae2565b8361010001516020018181525050828589866108ca9190610b3a565b815181106108db576108da610bed565b5b60200260200101819052505050508080600101915050610119565b505f816040516020016109099190610f93565b6040516020818303038152906040529050602081018059038082f35b6040518061012001604052805f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f1515815260200160608152602001606081526020016109af6109e9565b81525090565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81525090565b60405180604001604052805f81526020015f81525090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a2e82610a05565b9050919050565b610a3e81610a24565b8114610a48575f80fd5b50565b5f81519050610a5981610a35565b92915050565b5f819050919050565b610a7181610a5f565b8114610a7b575f80fd5b50565b5f81519050610a8c81610a68565b92915050565b5f805f60608486031215610aa957610aa8610a01565b5b5f610ab686828701610a4b565b9350506020610ac786828701610a7e565b9250506040610ad886828701610a7e565b9150509250925092565b5f60208284031215610af757610af6610a01565b5b5f610b0484828501610a7e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b4482610a5f565b9150610b4f83610a5f565b9250828203905081811115610b6757610b66610b0d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610ba381610a5f565b82525050565b5f602082019050610bbc5f830184610b9a565b92915050565b5f60208284031215610bd757610bd6610a01565b5b5f610be484828501610a4b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610c4c81610a5f565b82525050565b610c5b81610a24565b82525050565b5f8115159050919050565b610c7581610c61565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b606082015f820151610cb85f850182610c52565b506020820151610ccb6020850182610c43565b506040820151610cde6040850182610c43565b50505050565b5f610cef8383610ca4565b60608301905092915050565b5f602082019050919050565b5f610d1182610c7b565b610d1b8185610c85565b9350610d2683610c95565b805f5b83811015610d56578151610d3d8882610ce4565b9750610d4883610cfb565b925050600181019050610d29565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f610d978383610c52565b60208301905092915050565b5f602082019050919050565b5f610db982610d63565b610dc38185610d6d565b9350610dce83610d7d565b805f5b83811015610dfe578151610de58882610d8c565b9750610df083610da3565b925050600181019050610dd1565b5085935050505092915050565b604082015f820151610e1f5f850182610c43565b506020820151610e326020850182610c43565b50505050565b5f61014083015f830151610e4e5f860182610c43565b506020830151610e616020860182610c52565b506040830151610e746040860182610c52565b506060830151610e876060860182610c43565b506080830151610e9a6080860182610c52565b5060a0830151610ead60a0860182610c6c565b5060c083015184820360c0860152610ec58282610d07565b91505060e083015184820360e0860152610edf8282610daf565b915050610100830151610ef6610100860182610e0b565b508091505092915050565b5f610f0c8383610e38565b905092915050565b5f602082019050919050565b5f610f2a82610c1a565b610f348185610c24565b935083602082028501610f4685610c34565b805f5b85811015610f815784840389528151610f628582610f01565b9450610f6d83610f14565b925060208a01995050600181019050610f49565b50829750879550505050505092915050565b5f6020820190508181035f830152610fab8184610f20565b90509291505056fe'
21
21
 
22
22
  export const gaugesBytecode = {
23
- 1: '0x608060405234801561000f575f80fd5b5060405161105a38038061105a8339818101604052810190610031919061099a565b5f815190505f8167ffffffffffffffff81111561005157610050610804565b5b60405190808252806020026020018201604052801561008a57816020015b610077610709565b81526020019060019003908161006f5790505b5090505f5b828110156106da575f8482815181106100ab576100aa6109e1565b5b602002602001015190506100bd610709565b81815f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff166382c630666040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561015c57506040513d601f19601f820116820180604052508101906101599190610a0e565b60015b1561019b5780826020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050505b8173ffffffffffffffffffffffffffffffffffffffff16639c868ac06040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561020357506040513d601f19601f820116820180604052508101906102009190610a6e565b60015b156106ac57808260400190151590811515815250505f1515811515036106aa578273ffffffffffffffffffffffffffffffffffffffff166317e280896040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561028b57506040513d601f19601f820116820180604052508101906102889190610acc565b60015b1561029c5780836060018181525050505b8273ffffffffffffffffffffffffffffffffffffffff1663963c94b96040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561030457506040513d601f19601f820116820180604052508101906103019190610acc565b60015b156106a9578067ffffffffffffffff81111561032357610322610804565b5b60405190808252806020026020018201604052801561035c57816020015b610349610762565b8152602001906001900390816103415790505b5083608001819052505f5b818110156106a6575f8573ffffffffffffffffffffffffffffffffffffffff166354c49fe9836040518263ffffffff1660e01b81526004016103a99190610b06565b602060405180830381865afa1580156103c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103e89190610a0e565b90506103f2610762565b5f8773ffffffffffffffffffffffffffffffffffffffff166348e9c65e846040518263ffffffff1660e01b815260040161042c9190610b2e565b60c060405180830381865afa158015610447573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046b9190610be8565b90505f83905083835f01515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa1580156104f3573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061051b9190610cc3565b835f0151602001819052508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056e573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105969190610cc3565b835f0151604001819052508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060e9190610acc565b835f015160600181815250508160200151836020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081604001518360400181815250508160600151836060018181525050828860800151868151811061068a576106896109e1565b5b6020026020010181905250505050508080600101915050610367565b50505b5b505b808484815181106106c0576106bf6109e1565b5b60200260200101819052505050808060010191505061008f565b505f816040516020016106ed9190611039565b6040516020818303038152906040529050602081018059038082f35b6040518060a001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f151581526020015f8152602001606081525090565b60405180608001604052806107756107a3565b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81525090565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61083a826107f4565b810181811067ffffffffffffffff8211171561085957610858610804565b5b80604052505050565b5f61086b6107df565b90506108778282610831565b919050565b5f67ffffffffffffffff82111561089657610895610804565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6108d4826108ab565b9050919050565b6108e4816108ca565b81146108ee575f80fd5b50565b5f815190506108ff816108db565b92915050565b5f6109176109128461087c565b610862565b9050808382526020820190506020840283018581111561093a576109396108a7565b5b835b81811015610963578061094f88826108f1565b84526020840193505060208101905061093c565b5050509392505050565b5f82601f830112610981576109806107f0565b5b8151610991848260208601610905565b91505092915050565b5f602082840312156109af576109ae6107e8565b5b5f82015167ffffffffffffffff8111156109cc576109cb6107ec565b5b6109d88482850161096d565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215610a2357610a226107e8565b5b5f610a30848285016108f1565b91505092915050565b5f8115159050919050565b610a4d81610a39565b8114610a57575f80fd5b50565b5f81519050610a6881610a44565b92915050565b5f60208284031215610a8357610a826107e8565b5b5f610a9084828501610a5a565b91505092915050565b5f819050919050565b610aab81610a99565b8114610ab5575f80fd5b50565b5f81519050610ac681610aa2565b92915050565b5f60208284031215610ae157610ae06107e8565b5b5f610aee84828501610ab8565b91505092915050565b610b0081610a99565b82525050565b5f602082019050610b195f830184610af7565b92915050565b610b28816108ca565b82525050565b5f602082019050610b415f830184610b1f565b92915050565b5f80fd5b5f60c08284031215610b6057610b5f610b47565b5b610b6a60c0610862565b90505f610b79848285016108f1565b5f830152506020610b8c848285016108f1565b6020830152506040610ba084828501610ab8565b6040830152506060610bb484828501610ab8565b6060830152506080610bc884828501610ab8565b60808301525060a0610bdc84828501610ab8565b60a08301525092915050565b5f60c08284031215610bfd57610bfc6107e8565b5b5f610c0a84828501610b4b565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115610c3157610c30610804565b5b610c3a826107f4565b9050602081019050919050565b8281835e5f83830152505050565b5f610c67610c6284610c17565b610862565b905082815260208101848484011115610c8357610c82610c13565b5b610c8e848285610c47565b509392505050565b5f82601f830112610caa57610ca96107f0565b5b8151610cba848260208601610c55565b91505092915050565b5f60208284031215610cd857610cd76107e8565b5b5f82015167ffffffffffffffff811115610cf557610cf46107ec565b5b610d0184828501610c96565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610d3c816108ca565b82525050565b610d4b81610a39565b82525050565b610d5a81610a99565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f610dad82610d89565b610db78185610d93565b9350610dc7818560208601610c47565b610dd0816107f4565b840191505092915050565b5f608083015f830151610df05f860182610d33565b5060208301518482036020860152610e088282610da3565b91505060408301518482036040860152610e228282610da3565b9150506060830151610e376060860182610d51565b508091505092915050565b5f608083015f8301518482035f860152610e5c8282610ddb565b9150506020830151610e716020860182610d33565b506040830151610e846040860182610d51565b506060830151610e976060860182610d51565b508091505092915050565b5f610ead8383610e42565b905092915050565b5f602082019050919050565b5f610ecb82610d60565b610ed58185610d6a565b935083602082028501610ee785610d7a565b805f5b85811015610f225784840389528151610f038582610ea2565b9450610f0e83610eb5565b925060208a01995050600181019050610eea565b50829750879550505050505092915050565b5f60a083015f830151610f495f860182610d33565b506020830151610f5c6020860182610d33565b506040830151610f6f6040860182610d42565b506060830151610f826060860182610d51565b5060808301518482036080860152610f9a8282610ec1565b9150508091505092915050565b5f610fb28383610f34565b905092915050565b5f602082019050919050565b5f610fd082610d0a565b610fda8185610d14565b935083602082028501610fec85610d24565b805f5b8581101561102757848403895281516110088582610fa7565b945061101383610fba565b925060208a01995050600181019050610fef565b50829750879550505050505092915050565b5f6020820190508181035f8301526110518184610fc6565b90509291505056fe',
23
+ 1: '0x608060405234801561000f575f80fd5b506040516110e93803806110e983398181016040528101906100319190610a16565b5f815190505f8167ffffffffffffffff81111561005157610050610880565b5b60405190808252806020026020018201604052801561008a57816020015b61007761077f565b81526020019060019003908161006f5790505b5090505f5b82811015610750575f8482815181106100ab576100aa610a5d565b5b602002602001015190506100bd61077f565b81815f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff166382c630666040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561015c57506040513d601f19601f820116820180604052508101906101599190610a8a565b60015b1561019b5780826020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050505b8173ffffffffffffffffffffffffffffffffffffffff16639c868ac06040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561020357506040513d601f19601f820116820180604052508101906102009190610aea565b60015b1561072257808260400190151590811515815250505f151581151503610720578273ffffffffffffffffffffffffffffffffffffffff166317e280896040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561028b57506040513d601f19601f820116820180604052508101906102889190610b48565b60015b1561031257808360800181815250508373ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103079190610b48565b836060018181525050505b8273ffffffffffffffffffffffffffffffffffffffff1663963c94b96040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561037a57506040513d601f19601f820116820180604052508101906103779190610b48565b60015b1561071f578067ffffffffffffffff81111561039957610398610880565b5b6040519080825280602002602001820160405280156103d257816020015b6103bf6107de565b8152602001906001900390816103b75790505b508360a001819052505f5b8181101561071c575f8573ffffffffffffffffffffffffffffffffffffffff166354c49fe9836040518263ffffffff1660e01b815260040161041f9190610b82565b602060405180830381865afa15801561043a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061045e9190610a8a565b90506104686107de565b5f8773ffffffffffffffffffffffffffffffffffffffff166348e9c65e846040518263ffffffff1660e01b81526004016104a29190610baa565b60c060405180830381865afa1580156104bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e19190610c64565b90505f83905083835f01515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa158015610569573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105919190610d3f565b835f0151602001819052508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156105e4573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061060c9190610d3f565b835f0151604001819052508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610660573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106849190610b48565b835f015160600181815250508160200151836020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081604001518360400181815250508160600151836060018181525050828860a001518681518110610700576106ff610a5d565b5b60200260200101819052505050505080806001019150506103dd565b50505b5b505b8084848151811061073657610735610a5d565b5b60200260200101819052505050808060010191505061008f565b505f8160405160200161076391906110c8565b6040516020818303038152906040529050602081018059038082f35b6040518060c001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f151581526020015f81526020015f8152602001606081525090565b60405180608001604052806107f161081f565b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81525090565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108b682610870565b810181811067ffffffffffffffff821117156108d5576108d4610880565b5b80604052505050565b5f6108e761085b565b90506108f382826108ad565b919050565b5f67ffffffffffffffff82111561091257610911610880565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61095082610927565b9050919050565b61096081610946565b811461096a575f80fd5b50565b5f8151905061097b81610957565b92915050565b5f61099361098e846108f8565b6108de565b905080838252602082019050602084028301858111156109b6576109b5610923565b5b835b818110156109df57806109cb888261096d565b8452602084019350506020810190506109b8565b5050509392505050565b5f82601f8301126109fd576109fc61086c565b5b8151610a0d848260208601610981565b91505092915050565b5f60208284031215610a2b57610a2a610864565b5b5f82015167ffffffffffffffff811115610a4857610a47610868565b5b610a54848285016109e9565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215610a9f57610a9e610864565b5b5f610aac8482850161096d565b91505092915050565b5f8115159050919050565b610ac981610ab5565b8114610ad3575f80fd5b50565b5f81519050610ae481610ac0565b92915050565b5f60208284031215610aff57610afe610864565b5b5f610b0c84828501610ad6565b91505092915050565b5f819050919050565b610b2781610b15565b8114610b31575f80fd5b50565b5f81519050610b4281610b1e565b92915050565b5f60208284031215610b5d57610b5c610864565b5b5f610b6a84828501610b34565b91505092915050565b610b7c81610b15565b82525050565b5f602082019050610b955f830184610b73565b92915050565b610ba481610946565b82525050565b5f602082019050610bbd5f830184610b9b565b92915050565b5f80fd5b5f60c08284031215610bdc57610bdb610bc3565b5b610be660c06108de565b90505f610bf58482850161096d565b5f830152506020610c088482850161096d565b6020830152506040610c1c84828501610b34565b6040830152506060610c3084828501610b34565b6060830152506080610c4484828501610b34565b60808301525060a0610c5884828501610b34565b60a08301525092915050565b5f60c08284031215610c7957610c78610864565b5b5f610c8684828501610bc7565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115610cad57610cac610880565b5b610cb682610870565b9050602081019050919050565b8281835e5f83830152505050565b5f610ce3610cde84610c93565b6108de565b905082815260208101848484011115610cff57610cfe610c8f565b5b610d0a848285610cc3565b509392505050565b5f82601f830112610d2657610d2561086c565b5b8151610d36848260208601610cd1565b91505092915050565b5f60208284031215610d5457610d53610864565b5b5f82015167ffffffffffffffff811115610d7157610d70610868565b5b610d7d84828501610d12565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610db881610946565b82525050565b610dc781610ab5565b82525050565b610dd681610b15565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f610e2982610e05565b610e338185610e0f565b9350610e43818560208601610cc3565b610e4c81610870565b840191505092915050565b5f608083015f830151610e6c5f860182610daf565b5060208301518482036020860152610e848282610e1f565b91505060408301518482036040860152610e9e8282610e1f565b9150506060830151610eb36060860182610dcd565b508091505092915050565b5f608083015f8301518482035f860152610ed88282610e57565b9150506020830151610eed6020860182610daf565b506040830151610f006040860182610dcd565b506060830151610f136060860182610dcd565b508091505092915050565b5f610f298383610ebe565b905092915050565b5f602082019050919050565b5f610f4782610ddc565b610f518185610de6565b935083602082028501610f6385610df6565b805f5b85811015610f9e5784840389528151610f7f8582610f1e565b9450610f8a83610f31565b925060208a01995050600181019050610f66565b50829750879550505050505092915050565b5f60c083015f830151610fc55f860182610daf565b506020830151610fd86020860182610daf565b506040830151610feb6040860182610dbe565b506060830151610ffe6060860182610dcd565b5060808301516110116080860182610dcd565b5060a083015184820360a08601526110298282610f3d565b9150508091505092915050565b5f6110418383610fb0565b905092915050565b5f602082019050919050565b5f61105f82610d86565b6110698185610d90565b93508360208202850161107b85610da0565b805f5b858110156110b657848403895281516110978582611036565b94506110a283611049565b925060208a0199505060018101905061107e565b50829750879550505050505092915050565b5f6020820190508181035f8301526110e08184611055565b90509291505056fe',
24
24
  42161:
25
- '0x608060405234801561000f575f80fd5b5060405161106a38038061106a833981810160405281019061003191906109be565b5f815190505f8167ffffffffffffffff81111561005157610050610828565b5b60405190808252806020026020018201604052801561008a57816020015b61007761072d565b81526020019060019003908161006f5790505b5090505f5b828110156106ed575f8482815181106100ab576100aa610a05565b5b602002602001015190506100bd61072d565b81815f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506101038261071c60201b60201c565b6106bf578173ffffffffffffffffffffffffffffffffffffffff166382c630666040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561016f57506040513d601f19601f8201168201806040525081019061016c9190610a32565b60015b156101ae5780826020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050505b8173ffffffffffffffffffffffffffffffffffffffff16639c868ac06040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561021657506040513d601f19601f820116820180604052508101906102139190610a92565b60015b156106be57808260400190151590811515815250505f1515811515036106bc578273ffffffffffffffffffffffffffffffffffffffff166317e280896040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561029e57506040513d601f19601f8201168201806040525081019061029b9190610af0565b60015b156102af5780836060018181525050505b8273ffffffffffffffffffffffffffffffffffffffff1663963c94b96040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561031757506040513d601f19601f820116820180604052508101906103149190610af0565b60015b156106bb578067ffffffffffffffff81111561033657610335610828565b5b60405190808252806020026020018201604052801561036f57816020015b61035c610786565b8152602001906001900390816103545790505b5083608001819052505f5b818110156106b8575f8573ffffffffffffffffffffffffffffffffffffffff166354c49fe9836040518263ffffffff1660e01b81526004016103bc9190610b2a565b602060405180830381865afa1580156103d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103fb9190610a32565b9050610405610786565b5f8773ffffffffffffffffffffffffffffffffffffffff166348e9c65e846040518263ffffffff1660e01b815260040161043f9190610b52565b60a060405180830381865afa15801561045a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061047e9190610bf8565b90505f83905083835f01515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa158015610506573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061052e9190610cd3565b835f0151602001819052508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610581573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105a99190610cd3565b835f0151604001819052508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106219190610af0565b835f01516060018181525050815f0151836020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081602001518360400181815250508160400151836060018181525050828860800151868151811061069c5761069b610a05565b5b602002602001018190525050505050808060010191505061037a565b50505b5b505b5b808484815181106106d3576106d2610a05565b5b60200260200101819052505050808060010191505061008f565b505f816040516020016107009190611049565b6040516020818303038152906040529050602081018059038082f35b5f80823b90505f8114915050919050565b6040518060a001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f151581526020015f8152602001606081525090565b60405180608001604052806107996107c7565b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81525090565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61085e82610818565b810181811067ffffffffffffffff8211171561087d5761087c610828565b5b80604052505050565b5f61088f610803565b905061089b8282610855565b919050565b5f67ffffffffffffffff8211156108ba576108b9610828565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6108f8826108cf565b9050919050565b610908816108ee565b8114610912575f80fd5b50565b5f81519050610923816108ff565b92915050565b5f61093b610936846108a0565b610886565b9050808382526020820190506020840283018581111561095e5761095d6108cb565b5b835b8181101561098757806109738882610915565b845260208401935050602081019050610960565b5050509392505050565b5f82601f8301126109a5576109a4610814565b5b81516109b5848260208601610929565b91505092915050565b5f602082840312156109d3576109d261080c565b5b5f82015167ffffffffffffffff8111156109f0576109ef610810565b5b6109fc84828501610991565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215610a4757610a4661080c565b5b5f610a5484828501610915565b91505092915050565b5f8115159050919050565b610a7181610a5d565b8114610a7b575f80fd5b50565b5f81519050610a8c81610a68565b92915050565b5f60208284031215610aa757610aa661080c565b5b5f610ab484828501610a7e565b91505092915050565b5f819050919050565b610acf81610abd565b8114610ad9575f80fd5b50565b5f81519050610aea81610ac6565b92915050565b5f60208284031215610b0557610b0461080c565b5b5f610b1284828501610adc565b91505092915050565b610b2481610abd565b82525050565b5f602082019050610b3d5f830184610b1b565b92915050565b610b4c816108ee565b82525050565b5f602082019050610b655f830184610b43565b92915050565b5f80fd5b5f60a08284031215610b8457610b83610b6b565b5b610b8e60a0610886565b90505f610b9d84828501610915565b5f830152506020610bb084828501610adc565b6020830152506040610bc484828501610adc565b6040830152506060610bd884828501610adc565b6060830152506080610bec84828501610adc565b60808301525092915050565b5f60a08284031215610c0d57610c0c61080c565b5b5f610c1a84828501610b6f565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115610c4157610c40610828565b5b610c4a82610818565b9050602081019050919050565b8281835e5f83830152505050565b5f610c77610c7284610c27565b610886565b905082815260208101848484011115610c9357610c92610c23565b5b610c9e848285610c57565b509392505050565b5f82601f830112610cba57610cb9610814565b5b8151610cca848260208601610c65565b91505092915050565b5f60208284031215610ce857610ce761080c565b5b5f82015167ffffffffffffffff811115610d0557610d04610810565b5b610d1184828501610ca6565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610d4c816108ee565b82525050565b610d5b81610a5d565b82525050565b610d6a81610abd565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f610dbd82610d99565b610dc78185610da3565b9350610dd7818560208601610c57565b610de081610818565b840191505092915050565b5f608083015f830151610e005f860182610d43565b5060208301518482036020860152610e188282610db3565b91505060408301518482036040860152610e328282610db3565b9150506060830151610e476060860182610d61565b508091505092915050565b5f608083015f8301518482035f860152610e6c8282610deb565b9150506020830151610e816020860182610d43565b506040830151610e946040860182610d61565b506060830151610ea76060860182610d61565b508091505092915050565b5f610ebd8383610e52565b905092915050565b5f602082019050919050565b5f610edb82610d70565b610ee58185610d7a565b935083602082028501610ef785610d8a565b805f5b85811015610f325784840389528151610f138582610eb2565b9450610f1e83610ec5565b925060208a01995050600181019050610efa565b50829750879550505050505092915050565b5f60a083015f830151610f595f860182610d43565b506020830151610f6c6020860182610d43565b506040830151610f7f6040860182610d52565b506060830151610f926060860182610d61565b5060808301518482036080860152610faa8282610ed1565b9150508091505092915050565b5f610fc28383610f44565b905092915050565b5f602082019050919050565b5f610fe082610d1a565b610fea8185610d24565b935083602082028501610ffc85610d34565b805f5b8581101561103757848403895281516110188582610fb7565b945061102383610fca565b925060208a01995050600181019050610fff565b50829750879550505050505092915050565b5f6020820190508181035f8301526110618184610fd6565b90509291505056fe',
25
+ '0x608060405234801561000f575f80fd5b506040516110f93803806110f983398181016040528101906100319190610a3a565b5f815190505f8167ffffffffffffffff811115610051576100506108a4565b5b60405190808252806020026020018201604052801561008a57816020015b6100776107a3565b81526020019060019003908161006f5790505b5090505f5b82811015610763575f8482815181106100ab576100aa610a81565b5b602002602001015190506100bd6107a3565b81815f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506101038261079260201b60201c565b610735578173ffffffffffffffffffffffffffffffffffffffff166382c630666040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561016f57506040513d601f19601f8201168201806040525081019061016c9190610aae565b60015b156101ae5780826020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050505b8173ffffffffffffffffffffffffffffffffffffffff16639c868ac06040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561021657506040513d601f19601f820116820180604052508101906102139190610b0e565b60015b1561073457808260400190151590811515815250505f151581151503610732578273ffffffffffffffffffffffffffffffffffffffff166317e280896040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561029e57506040513d601f19601f8201168201806040525081019061029b9190610b6c565b60015b1561032557808360800181815250508373ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031a9190610b6c565b836060018181525050505b8273ffffffffffffffffffffffffffffffffffffffff1663963c94b96040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561038d57506040513d601f19601f8201168201806040525081019061038a9190610b6c565b60015b15610731578067ffffffffffffffff8111156103ac576103ab6108a4565b5b6040519080825280602002602001820160405280156103e557816020015b6103d2610802565b8152602001906001900390816103ca5790505b508360a001819052505f5b8181101561072e575f8573ffffffffffffffffffffffffffffffffffffffff166354c49fe9836040518263ffffffff1660e01b81526004016104329190610ba6565b602060405180830381865afa15801561044d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104719190610aae565b905061047b610802565b5f8773ffffffffffffffffffffffffffffffffffffffff166348e9c65e846040518263ffffffff1660e01b81526004016104b59190610bce565b60a060405180830381865afa1580156104d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f49190610c74565b90505f83905083835f01515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561057c573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105a49190610d4f565b835f0151602001819052508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156105f7573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061061f9190610d4f565b835f0151604001819052508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610673573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106979190610b6c565b835f01516060018181525050815f0151836020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081602001518360400181815250508160400151836060018181525050828860a00151868151811061071257610711610a81565b5b60200260200101819052505050505080806001019150506103f0565b50505b5b505b5b8084848151811061074957610748610a81565b5b60200260200101819052505050808060010191505061008f565b505f8160405160200161077691906110d8565b6040516020818303038152906040529050602081018059038082f35b5f80823b90505f8114915050919050565b6040518060c001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f151581526020015f81526020015f8152602001606081525090565b6040518060800160405280610815610843565b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81525090565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108da82610894565b810181811067ffffffffffffffff821117156108f9576108f86108a4565b5b80604052505050565b5f61090b61087f565b905061091782826108d1565b919050565b5f67ffffffffffffffff821115610936576109356108a4565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109748261094b565b9050919050565b6109848161096a565b811461098e575f80fd5b50565b5f8151905061099f8161097b565b92915050565b5f6109b76109b28461091c565b610902565b905080838252602082019050602084028301858111156109da576109d9610947565b5b835b81811015610a0357806109ef8882610991565b8452602084019350506020810190506109dc565b5050509392505050565b5f82601f830112610a2157610a20610890565b5b8151610a318482602086016109a5565b91505092915050565b5f60208284031215610a4f57610a4e610888565b5b5f82015167ffffffffffffffff811115610a6c57610a6b61088c565b5b610a7884828501610a0d565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215610ac357610ac2610888565b5b5f610ad084828501610991565b91505092915050565b5f8115159050919050565b610aed81610ad9565b8114610af7575f80fd5b50565b5f81519050610b0881610ae4565b92915050565b5f60208284031215610b2357610b22610888565b5b5f610b3084828501610afa565b91505092915050565b5f819050919050565b610b4b81610b39565b8114610b55575f80fd5b50565b5f81519050610b6681610b42565b92915050565b5f60208284031215610b8157610b80610888565b5b5f610b8e84828501610b58565b91505092915050565b610ba081610b39565b82525050565b5f602082019050610bb95f830184610b97565b92915050565b610bc88161096a565b82525050565b5f602082019050610be15f830184610bbf565b92915050565b5f80fd5b5f60a08284031215610c0057610bff610be7565b5b610c0a60a0610902565b90505f610c1984828501610991565b5f830152506020610c2c84828501610b58565b6020830152506040610c4084828501610b58565b6040830152506060610c5484828501610b58565b6060830152506080610c6884828501610b58565b60808301525092915050565b5f60a08284031215610c8957610c88610888565b5b5f610c9684828501610beb565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115610cbd57610cbc6108a4565b5b610cc682610894565b9050602081019050919050565b8281835e5f83830152505050565b5f610cf3610cee84610ca3565b610902565b905082815260208101848484011115610d0f57610d0e610c9f565b5b610d1a848285610cd3565b509392505050565b5f82601f830112610d3657610d35610890565b5b8151610d46848260208601610ce1565b91505092915050565b5f60208284031215610d6457610d63610888565b5b5f82015167ffffffffffffffff811115610d8157610d8061088c565b5b610d8d84828501610d22565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610dc88161096a565b82525050565b610dd781610ad9565b82525050565b610de681610b39565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f610e3982610e15565b610e438185610e1f565b9350610e53818560208601610cd3565b610e5c81610894565b840191505092915050565b5f608083015f830151610e7c5f860182610dbf565b5060208301518482036020860152610e948282610e2f565b91505060408301518482036040860152610eae8282610e2f565b9150506060830151610ec36060860182610ddd565b508091505092915050565b5f608083015f8301518482035f860152610ee88282610e67565b9150506020830151610efd6020860182610dbf565b506040830151610f106040860182610ddd565b506060830151610f236060860182610ddd565b508091505092915050565b5f610f398383610ece565b905092915050565b5f602082019050919050565b5f610f5782610dec565b610f618185610df6565b935083602082028501610f7385610e06565b805f5b85811015610fae5784840389528151610f8f8582610f2e565b9450610f9a83610f41565b925060208a01995050600181019050610f76565b50829750879550505050505092915050565b5f60c083015f830151610fd55f860182610dbf565b506020830151610fe86020860182610dbf565b506040830151610ffb6040860182610dce565b50606083015161100e6060860182610ddd565b5060808301516110216080860182610ddd565b5060a083015184820360a08601526110398282610f4d565b9150508091505092915050565b5f6110518383610fc0565b905092915050565b5f602082019050919050565b5f61106f82610d96565b6110798185610da0565b93508360208202850161108b85610db0565b805f5b858110156110c657848403895281516110a78582611046565b94506110b283611059565b925060208a0199505060018101905061108e565b50829750879550505050505092915050565b5f6020820190508181035f8301526110f08184611065565b90509291505056fe',
26
26
  }
27
27
 
28
28
  export const gaugesWeightBytecode =
@@ -36,7 +36,7 @@ export const lendingStartIndex = {
36
36
  export const CHUNK_SIZE = 30
37
37
  export const GAUGES_CHUNK_SIZE = { 1: 60, 42161: 30 }
38
38
  export const TOKENS_CHUNK_SIZE = 100
39
- export const GAUGES_WEIGHTS_CHUNK_SIZE = 80
39
+ export const GAUGES_WEIGHTS_CHUNK_SIZE = 60
40
40
  export const GAUGES_REGISTRY_CHUNK_SIZE = 30
41
41
 
42
42
  export const BROKEN_VAULTS = {
@@ -3,7 +3,7 @@ import { chunk, uniqBy } from 'lodash-es'
3
3
  import { encodeAbiParameters, formatUnits, parseAbiParameters, zeroAddress } from 'viem'
4
4
  import { mainnet } from 'viem/chains'
5
5
  import { LLAMA_API_URL } from '../../../../endpoints.js'
6
- import { getLlamaTokenPrefix, getPricesFromCurve } from '../../../../prices.js'
6
+ import { getLlamaTokenPrefix, getPricesFromCurve, getPricesFromGeckoTerminal } from '../../../../prices.js'
7
7
  import { batchJsonRpc, equalTlc } from '../../../../utils.js'
8
8
  import { concatBytecode } from '../../../utils/index.js'
9
9
  import { handlePromise } from '../../../utils/promise.js'
@@ -85,19 +85,27 @@ export const getCurveApiData = async (rpc: string, chainId: number, gaugesWeight
85
85
  const httpResponse = await httpRequest.json()
86
86
  return httpResponse.coins
87
87
  })
88
+ const rawTokensPricesFromLlama = await Promise.all(tokensCallsPromises)
89
+ let tokensPricesFromLlama = {}
90
+ for (const tc of rawTokensPricesFromLlama) tokensPricesFromLlama = { ...tokensPricesFromLlama, ...tc }
91
+
92
+ const tokensPricesFromGeckoTerminal = await getPricesFromGeckoTerminal(
93
+ [{ symbol: '3Crv', address: '0x6c3f90f043a72fa612cbac8115ee7e52bde6e490' }],
94
+ chainId,
95
+ )
88
96
 
89
97
  const parsedPrices: { address: string; symbol: string; price: number }[] = []
90
- for (const results of await Promise.allSettled(tokensCallsPromises)) {
91
- if (results.status === 'fulfilled') {
92
- for (const key of Object.keys(results.value)) {
93
- const tokenData = results.value[key]
94
- parsedPrices.push({
95
- address: key.replace(`${getLlamaTokenPrefix(chainId)}:`, ''),
96
- symbol: tokenData.symbol,
97
- price: tokenData.price,
98
- })
99
- }
100
- }
98
+ for (const key of Object.keys(tokensPricesFromLlama)) {
99
+ const tokenAddress = key.replace(`${getLlamaTokenPrefix(chainId)}:`, '')
100
+ const tokenData = tokensPricesFromLlama[key]
101
+
102
+ const altPrice = tokensPricesFromGeckoTerminal.find((p) => equalTlc(p.address, tokenAddress))
103
+
104
+ parsedPrices.push({
105
+ address: tokenAddress,
106
+ symbol: tokenData.symbol,
107
+ price: altPrice ? altPrice.usdPrice : tokenData.price,
108
+ })
101
109
  }
102
110
 
103
111
  const crv = parsedPrices.find((p) => equalTlc(p.address, tokenWithId('crv', chainId)?.address as string))
@@ -198,6 +206,7 @@ export const getCurveApiData = async (rpc: string, chainId: number, gaugesWeight
198
206
  inflationRate: gaugeWeightData?.inflationRate || '0',
199
207
  relativeWeight: gaugeWeightData?.relativeWeight || '0',
200
208
  workingSupply: formatUnits(gaugeData.workingSupply, 0),
209
+ totalSupply: formatUnits(gaugeData.totalSupply, 0),
201
210
  extraRewards,
202
211
  }
203
212
  : undefined,
@@ -69,6 +69,7 @@ export const getGaugesWeights = async (provider: any, rpc: string): Promise<Gaug
69
69
  ])
70
70
 
71
71
  const chunkedGaugesWeightsCalls = chunk(gaugesWeightsCalls, GAUGES_WEIGHTS_CHUNK_SIZE)
72
+
72
73
  const rawGaugesWeights: any = []
73
74
 
74
75
  for (const chunk of chunkedGaugesWeightsCalls) {