@1delta/margin-fetcher 0.0.336 → 0.0.338

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 (30) hide show
  1. package/dist/index.js +380 -209
  2. package/dist/index.js.map +1 -1
  3. package/dist/lending/public-data/gearbox/publicCallParse.d.ts.map +1 -1
  4. package/dist/lending/public-data/gearbox/publicCallParse.test.d.ts +2 -0
  5. package/dist/lending/public-data/gearbox/publicCallParse.test.d.ts.map +1 -0
  6. package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts.map +1 -1
  7. package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts.map +1 -1
  8. package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts.map +1 -1
  9. package/dist/lending/user-data/compound-v2/userCallParse.d.ts.map +1 -1
  10. package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -1
  11. package/dist/lending/user-data/dolomite/userCallParse.d.ts.map +1 -1
  12. package/dist/lending/user-data/euler/userCallParse.d.ts.map +1 -1
  13. package/dist/lending/user-data/fetch-balances/e2e.d.ts.map +1 -1
  14. package/dist/lending/user-data/fetch-balances/parse.d.ts +26 -1
  15. package/dist/lending/user-data/fetch-balances/parse.d.ts.map +1 -1
  16. package/dist/lending/user-data/init/userCallParse.d.ts.map +1 -1
  17. package/dist/lending/user-data/river/userCallParse.d.ts.map +1 -1
  18. package/dist/lending/user-data/teller/userCallParse.d.ts.map +1 -1
  19. package/dist/lending/user-data/utils/types.d.ts +14 -0
  20. package/dist/lending/user-data/utils/types.d.ts.map +1 -1
  21. package/dist/types/apiReturnType.d.ts +7 -0
  22. package/dist/types/apiReturnType.d.ts.map +1 -1
  23. package/dist/utils/multicall.d.ts +41 -12
  24. package/dist/utils/multicall.d.ts.map +1 -1
  25. package/dist/yields/rewards/fetchLenderRewards.d.ts.map +1 -1
  26. package/dist/yields/rewards/index.d.ts +1 -1
  27. package/dist/yields/rewards/index.d.ts.map +1 -1
  28. package/dist/yields/rewards/merkl.d.ts +24 -0
  29. package/dist/yields/rewards/merkl.d.ts.map +1 -1
  30. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"publicCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/public-data/gearbox/publicCallParse.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAmBnE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,+BAA+B,GAC1C,SAAS,MAAM,EACf,SAAS,MAAM,EACf,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,YAAW,gBAAqB,KAC/B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,SAAS,EAAE,MAAM,CAqSjE,CAAA"}
1
+ {"version":3,"file":"publicCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/public-data/gearbox/publicCallParse.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAmBnE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,+BAA+B,GAC1C,SAAS,MAAM,EACf,SAAS,MAAM,EACf,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,YAAW,gBAAqB,KAC/B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,SAAS,EAAE,MAAM,CAyUjE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=publicCallParse.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicCallParse.test.d.ts","sourceRoot":"","sources":["../../../../src/lending/public-data/gearbox/publicCallParse.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v2-type/userCallParse.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAKnF,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CAgDhD,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v2-type/userCallParse.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,mBAAmB,EACnB,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAKvB,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CAgDhD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallParse.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,mBAAmB,EACnB,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAKvB,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CAqDhD,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallParse.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,mBAAmB,EACnB,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAKvB,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CAqDhD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParseYldr.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallParseYldr.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAuB,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAInF,sDAAsD;AACtD,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CAkDhD,CAAA"}
1
+ {"version":3,"file":"userCallParseYldr.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallParseYldr.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,mBAAmB,EAEnB,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAIvB,sDAAsD;AACtD,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CAkDhD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/compound-v2/userCallParse.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,mBAAmB,EACnB,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAKvB,eAAO,MAAM,8BAA8B,GACzC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CA0DhD,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/compound-v2/userCallParse.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,mBAAmB,EACnB,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAKvB,eAAO,MAAM,8BAA8B,GACzC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CA0DhD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/compound-v3/userCallParse.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAK9D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,8BAA8B,GACzC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CA6HhD,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/compound-v3/userCallParse.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAK9D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,8BAA8B,GACzC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CAyIhD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/dolomite/userCallParse.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAc9D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B,GACvC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CA+FhD,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/dolomite/userCallParse.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAc9D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B,GACvC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CAqGhD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/euler/userCallParse.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAU9D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,EAC7B,oBAAoB,MAAM,EAAE,KAC3B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CAgIhD,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/euler/userCallParse.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAU9D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,EAC7B,oBAAoB,MAAM,EAAE,KAC3B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CAiIhD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"e2e.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/fetch-balances/e2e.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAuB,MAAM,4BAA4B,CAAA;AACjF,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,EAAE,YAAY,EAAuB,MAAM,wBAAwB,CAAA;AAG1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,OAAO,KAAK,EAAE,UAAU,EAAmB,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAEpF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,cAAc,oBAAoB,EAClC,sBAAmB,EACnB,kBAAwC,EACxC,gBAAW,EACX,cAAY,EACZ,oBAAe,KACd,OAAO,CAAC,GAAG,EAAE,CA6Bf,CAAA;AAED,eAAO,MAAM,gCAAgC,GAC3C,SAAS,MAAM,EACf,YAAY,GAAG,EAAE,EAAE,oBAAoB;AACvC,cAAc,oBAAoB,EAClC,sBAAmB,EACnB,kBAAwC,EACxC,gBAAW,EACX,cAAY,KACX,OAAO,CAAC,GAAG,EAAE,CAmCf,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6BAA6B,GACxC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,kBAAwC,EACxC,iBAAmB,EACnB,sBAAmB,KAClB,OAAO,CAAC,wBAAwB,CA2ClC,CAAA;AASD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,YAAY,EAAE,UAAU,EAAE,EAC1B,WAAW,EAAE,UAAU,GAAG,YAAY,EAAE,GACvC,OAAO,CAAC;IACT,CAAC,OAAO,EAAE,MAAM,GAAG;QACjB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;KAC3B,CAAA;CACF,CAAC,CAsED"}
1
+ {"version":3,"file":"e2e.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/fetch-balances/e2e.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,eAAe,EAEhB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,EAAE,YAAY,EAAuB,MAAM,wBAAwB,CAAA;AAG1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,OAAO,KAAK,EACV,UAAU,EAEV,wBAAwB,EACzB,MAAM,SAAS,CAAA;AAEhB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,cAAc,oBAAoB,EAClC,sBAAmB,EACnB,kBAAwC,EACxC,gBAAW,EACX,cAAY,EACZ,oBAAe,KACd,OAAO,CAAC,GAAG,EAAE,CAgCf,CAAA;AAED,eAAO,MAAM,gCAAgC,GAC3C,SAAS,MAAM,EACf,YAAY,GAAG,EAAE,EAAE,oBAAoB;AACvC,cAAc,oBAAoB,EAClC,sBAAmB,EACnB,kBAAwC,EACxC,gBAAW,EACX,cAAY,KACX,OAAO,CAAC,GAAG,EAAE,CAmCf,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6BAA6B,GACxC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,kBAAwC,EACxC,iBAAmB,EACnB,sBAAmB,KAClB,OAAO,CAAC,wBAAwB,CA2ClC,CAAA;AASD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,YAAY,EAAE,UAAU,EAAE,EAC1B,WAAW,EAAE,UAAU,GAAG,YAAY,EAAE,GACvC,OAAO,CAAC;IACT,CAAC,OAAO,EAAE,MAAM,GAAG;QACjB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;KAC3B,CAAA;CACF,CAAC,CAsED"}
@@ -1,14 +1,39 @@
1
1
  import { LenderUserQuery } from '../../../types/lenderTypes';
2
2
  import { LenderToLenderCrossPoolMeta, UserData } from '../utils/types';
3
+ /** Reported per lender whose multicall slice contained failed reads. */
4
+ export interface IncompleteLenderRead {
5
+ lender: string;
6
+ /** Number of slots in the lender's slice that returned no data. */
7
+ failedCalls: number;
8
+ /** Size of the lender's slice. */
9
+ totalCalls: number;
10
+ /** True when EVERY read failed and the lender was skipped entirely. */
11
+ dropped: boolean;
12
+ }
13
+ export interface ConvertLenderUserDataOptions {
14
+ /** Invoked once per lender with failed reads — for logging / surfacing. */
15
+ onIncomplete?: (info: IncompleteLenderRead) => void;
16
+ }
3
17
  /**
4
18
  * Converts the raw results into the desired format
19
+ *
20
+ * Slots that hold the multicall failure sentinel are NOT data: a failed read
21
+ * says nothing about the user's position. When every read for a lender failed
22
+ * the lender is skipped outright — converting would emit an all-zero entry that
23
+ * is indistinguishable from "user has no position here", which is how a
24
+ * rate-limited RPC ends up rendering phantom $0 rows (and, when only some calls
25
+ * fail, understated balances). Partial failures still convert — the readable
26
+ * positions are real — but are flagged `incomplete` and reported via
27
+ * `options.onIncomplete`.
28
+ *
5
29
  * @param chainId - The chain ID
6
30
  * @param queriesRaw - The queries to fetch data for
7
31
  * @param rawResults - The raw results from the multicall
8
32
  * @param lenderState - The state of the lender
33
+ * @param options - Optional reporting hooks
9
34
  * @returns The converted data
10
35
  */
11
- export declare const convertLenderUserDataResult: (chainId: string, queriesRaw: LenderUserQuery[], rawResults: any[], lenderState: LenderToLenderCrossPoolMeta) => {
36
+ export declare const convertLenderUserDataResult: (chainId: string, queriesRaw: LenderUserQuery[], rawResults: any[], lenderState: LenderToLenderCrossPoolMeta, options?: ConvertLenderUserDataOptions) => {
12
37
  [lender: string]: UserData;
13
38
  };
14
39
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/fetch-balances/parse.ts"],"names":[],"mappings":"AAsBA,OAAO,EACL,eAAe,EAEhB,MAAM,4BAA4B,CAAA;AAsBnC,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AA8HtE;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,GACtC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,YAAY,GAAG,EAAE,EACjB,aAAa,2BAA2B,KACvC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;CA4C9B,CAAA"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/fetch-balances/parse.ts"],"names":[],"mappings":"AAsBA,OAAO,EACL,eAAe,EAEhB,MAAM,4BAA4B,CAAA;AAuBnC,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AA8HtE,wEAAwE;AACxE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAA;IACnB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,2EAA2E;IAC3E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAA;CACpD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,2BAA2B,GACtC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,YAAY,GAAG,EAAE,EACjB,aAAa,2BAA2B,EACxC,UAAU,4BAA4B,KACrC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;CA+D9B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/init/userCallParse.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAyH9D,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CAmDhD,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/init/userCallParse.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AA+H9D,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CAmDhD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/river/userCallParse.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,2BAA2B,EAC3B,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAIvB,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,oFAAoF;IACpF,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAcD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,OAAO,2BAA2B,KACjC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,GAAG,SAAS,EAAE,MAAM,CA8ItE,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/river/userCallParse.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,2BAA2B,EAC3B,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAIvB,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,oFAAoF;IACpF,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAcD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,OAAO,2BAA2B,KACjC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,GAAG,SAAS,EAAE,MAAM,CAiJtE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/teller/userCallParse.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,2BAA2B,EAC3B,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAkBvB;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,SAAS,MAAM,EACf,SAAS,MAAM,EACf,OAAO,2BAA2B,KACjC,CACD,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,GAAG,SAAS,EAC3D,MAAM,CA+JP,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/teller/userCallParse.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,2BAA2B,EAC3B,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAkBvB;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,SAAS,MAAM,EACf,SAAS,MAAM,EACf,OAAO,2BAA2B,KACjC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,GAAG,SAAS,EAAE,MAAM,CAoKtE,CAAA"}
@@ -111,6 +111,13 @@ export type LenderYieldComplete = {
111
111
  stableBorrowRate: number | null;
112
112
  variableBorrowRate: number | null;
113
113
  intrinsicYield: number | null;
114
+ /**
115
+ * Gearbox-style per-collateral quota rate (percent APR) — a borrow-side
116
+ * carrying cost charged on quoted collateral. Already netted into
117
+ * `intrinsicYield` on the collateral market; surfaced here for attribution.
118
+ * Do NOT subtract again. Absent/0 for lenders without quotas.
119
+ */
120
+ quotaRate?: number | null;
114
121
  underlying: string;
115
122
  configs: MarketConfigs | null;
116
123
  flags: MarketFlags | null;
@@ -161,5 +168,12 @@ export type UserData = {
161
168
  chainId: string;
162
169
  account: string;
163
170
  data: UserDataForSubAccount[];
171
+ /**
172
+ * Set when some of the lender's on-chain reads failed (revert, RPC error,
173
+ * rejected multicall chunk) and the entry was built from what did come back.
174
+ * Balances may therefore be understated — treat as "at least this much",
175
+ * not as the user's full position.
176
+ */
177
+ incomplete?: boolean;
164
178
  };
165
179
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/utils/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/utils/types.ts"],"names":[],"mappings":"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"}
@@ -91,6 +91,13 @@ export interface PoolData {
91
91
  variableBorrowRate: number;
92
92
  stableBorrowRate: number;
93
93
  intrinsicYield: number;
94
+ /**
95
+ * Gearbox per-collateral quota rate (percent APR), a borrow-side carrying
96
+ * cost on quoted collateral. Already netted into `intrinsicYield` on the
97
+ * collateral market — surfaced for attribution/borrow-side display; do not
98
+ * subtract again. Absent for lenders without quotas.
99
+ */
100
+ quotaRate?: number;
94
101
  rewards: RewardsList;
95
102
  decimals: number;
96
103
  config: PoolConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"apiReturnType.d.ts","sourceRoot":"","sources":["../../src/types/apiReturnType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiReturnType.d.ts","sourceRoot":"","sources":["../../src/types/apiReturnType.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,52 @@
1
1
  import { GeneralCall, GetEvmClientFunction } from '../types';
2
2
  import { PreparedCall } from './rpcCall';
3
3
  export type Call = GeneralCall;
4
- /** Same as Multicall viem except that the abi param is supposed to be the abi per call */
5
- export declare const multicallViemAbiArray: (chainId: string, abi: any[], calls: Call[], getEvmClient: GetEvmClientFunction, retry?: boolean, providerId?: number, retries?: number, allowFailure?: boolean, batchSize?: number, logs?: boolean) => Promise<any[]>;
4
+ /**
5
+ * Sentinel written into the result array for a call that returned NO data
6
+ * a revert, an RPC error, or a whole `aggregate3` chunk that was rejected
7
+ * (rate limit, subrequest cap, dropped connection: viem marks every call in a
8
+ * rejected chunk as `status: 'failure'`).
9
+ *
10
+ * It is NOT a zero value. Parsers must skip these slots — coercing one to `0`
11
+ * turns a failed read into a phantom "no balance" position and, worse, makes a
12
+ * real deposit or debt silently disappear from a user's portfolio.
13
+ */
14
+ export declare const MULTICALL_FAILURE = "0x";
15
+ /** True when a multicall slot holds no usable data (see {@link MULTICALL_FAILURE}). */
16
+ export declare const isFailedCall: (value: unknown) => boolean;
17
+ /**
18
+ * Same as Multicall viem except that the abi param is supposed to be the abi per call
19
+ *
20
+ * `retryFailed` runs one extra pass over the slots that came back as failures
21
+ * (see {@link retryFailedSlots}) — worth it for reads whose consumer cannot
22
+ * tell "call failed" from "value is zero".
23
+ */
24
+ export declare const multicallViemAbiArray: (chainId: string, abi: any[], calls: Call[], getEvmClient: GetEvmClientFunction, retry?: boolean, providerId?: number, retries?: number, allowFailure?: boolean, batchSize?: number, logs?: boolean, retryFailed?: boolean) => Promise<any[]>;
6
25
  /**
7
26
  * Sharded variant of {@link multicallViemAbiArray}. Splits the flat call set
8
- * into batches of `batchSize` and distributes them across up to `poolSize`
27
+ * into one shard per endpoint and distributes them across up to `poolSize`
9
28
  * distinct RPC endpoints (via `getEvmClient(chainId, rpcId)`, whose rpcId is
10
- * taken modulo the available RPC list). Batches run concurrently — one in
11
- * flight per endpoint — so wall-clock is roughly `(numBatches / poolSize)`
12
- * round-trips instead of `numBatches` on a single endpoint.
29
+ * taken modulo the available RPC list). Shards run concurrently — one in
30
+ * flight per endpoint — so wall-clock is roughly `(numShards / poolSize)`
31
+ * round-trips instead of `numShards` on a single endpoint.
32
+ *
33
+ * NOTE on the two different "batch" units: `batchSize` is viem's per-request
34
+ * calldata BYTE limit — it decides how many `aggregate3` sub-requests viem
35
+ * fires inside ONE `provider.multicall` call. Sharding is about spreading
36
+ * those sub-requests over endpoints, so the call list is split by COUNT
37
+ * (`contracts.length / poolSize`), never by `batchSize`. Splitting by
38
+ * `batchSize` made sharding a no-op for any call set smaller than the byte
39
+ * limit, which is every realistic user-data query.
13
40
  *
14
- * Failover is per-batch: a failed batch is retried on the *next* rpcId (and
15
- * its batchSize halved on each attempt to dodge size/response limits) without
16
- * discarding the batches that already succeeded. Results are reassembled in
17
- * the original call order. If a batch still fails after `retries` failovers,
18
- * the error propagates (same all-or-nothing-per-chain semantics as before).
41
+ * Failover is per-shard: a failed shard is retried on the *next* rpcId (and
42
+ * its byte batchSize halved on each attempt to dodge size/response limits)
43
+ * without discarding the shards that already succeeded. Results are
44
+ * reassembled in the original call order. If a shard still fails after
45
+ * `retries` failovers, the error propagates (same all-or-nothing-per-chain
46
+ * semantics as before). With `retryFailed`, individual failed slots inside a
47
+ * shard get one extra pass on the next endpoint before being given up on.
19
48
  */
20
- export declare const multicallShardedAbiArray: (chainId: string, abi: any[], calls: Call[], getEvmClient: GetEvmClientFunction, poolSize: number, retries?: number, allowFailure?: boolean, batchSize?: number, logs?: boolean) => Promise<any[]>;
49
+ export declare const multicallShardedAbiArray: (chainId: string, abi: any[], calls: Call[], getEvmClient: GetEvmClientFunction, poolSize: number, retries?: number, allowFailure?: boolean, batchSize?: number, logs?: boolean, retryFailed?: boolean) => Promise<any[]>;
21
50
  export interface MulticallConfig {
22
51
  chainId: string;
23
52
  allowFailure: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../../src/utils/multicall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE5D,OAAO,EAAqB,YAAY,EAAE,MAAM,WAAW,CAAA;AAO3D,MAAM,MAAM,IAAI,GAAG,WAAW,CAAA;AAS9B,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,GAChC,SAAS,MAAM,EACf,KAAK,GAAG,EAAE,EACV,OAAO,IAAI,EAAE,EACb,cAAc,oBAAoB,EAClC,eAAY,EACZ,mBAAc,EACd,gBAAoB,EACpB,sBAAmB,EACnB,kBAAwC,EACxC,cAAY,KACX,OAAO,CAAC,GAAG,EAAE,CA6Cf,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,EACf,KAAK,GAAG,EAAE,EACV,OAAO,IAAI,EAAE,EACb,cAAc,oBAAoB,EAClC,UAAU,MAAM,EAChB,gBAAoB,EACpB,sBAAmB,EACnB,kBAAwC,EACxC,cAAY,KACX,OAAO,CAAC,GAAG,EAAE,CAsFf,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,OAAO,CAAA;CACd;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,EAAE,EACV,KAAK,EAAE,IAAI,EAAE,GACZ,YAAY,EAAE,CAShB;AAED,eAAO,MAAM,oBAAoB,GAC/B,eAAe,YAAY,EAAE,EAC7B,QAAQ,eAAe,EACvB,cAAc,oBAAoB,KACjC,OAAO,CAAC,GAAG,EAAE,CAoBf,CAAA"}
1
+ {"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../../src/utils/multicall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE5D,OAAO,EAAqB,YAAY,EAAE,MAAM,WAAW,CAAA;AAO3D,MAAM,MAAM,IAAI,GAAG,WAAW,CAAA;AAS9B;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,OAAO,CAAA;AAErC,uFAAuF;AACvF,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,OACwB,CAAA;AAyCtE;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,MAAM,EACf,KAAK,GAAG,EAAE,EACV,OAAO,IAAI,EAAE,EACb,cAAc,oBAAoB,EAClC,eAAY,EACZ,mBAAc,EACd,gBAAoB,EACpB,sBAAmB,EACnB,kBAAwC,EACxC,cAAY,EACZ,qBAAmB,KAClB,OAAO,CAAC,GAAG,EAAE,CAwDf,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,EACf,KAAK,GAAG,EAAE,EACV,OAAO,IAAI,EAAE,EACb,cAAc,oBAAoB,EAClC,UAAU,MAAM,EAChB,gBAAoB,EACpB,sBAAmB,EACnB,kBAAwC,EACxC,cAAY,EACZ,qBAAmB,KAClB,OAAO,CAAC,GAAG,EAAE,CAmGf,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,OAAO,CAAA;CACd;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,EAAE,EACV,KAAK,EAAE,IAAI,EAAE,GACZ,YAAY,EAAE,CAShB;AAED,eAAO,MAAM,oBAAoB,GAC/B,eAAe,YAAY,EAAE,EAC7B,QAAQ,eAAe,EACvB,cAAc,oBAAoB,KACjC,OAAO,CAAC,GAAG,EAAE,CAoBf,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetchLenderRewards.d.ts","sourceRoot":"","sources":["../../../src/yields/rewards/fetchLenderRewards.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,YAAY,EAAE,MAAM,SAAS,CAAA;AAErD,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,QAQ5E;AAKD;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CAUhE"}
1
+ {"version":3,"file":"fetchLenderRewards.d.ts","sourceRoot":"","sources":["../../../src/yields/rewards/fetchLenderRewards.ts"],"names":[],"mappings":"AAMA,OAAO,EAAiB,YAAY,EAAE,MAAM,SAAS,CAAA;AAErD,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,QAQ5E;AASD;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CAUhE"}
@@ -1,4 +1,4 @@
1
- export { aaveMerklRewardFetcher, createMerklRewardFetcher } from './merkl';
1
+ export { aaveMerklRewardFetcher, createMerklRewardFetcher, eulerMerklRewardFetcher, morphoCollateralMerklRewardFetcher, } from './merkl';
2
2
  export type { MerklRewardConfig } from './merkl';
3
3
  export { fetchLenderRewards, mergeRewardResults } from './fetchLenderRewards';
4
4
  export type { RewardFetcher, RewardResult } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/yields/rewards/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAC1E,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC7E,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/yields/rewards/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,kCAAkC,GACnC,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC7E,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA"}
@@ -14,9 +14,33 @@ export interface MerklRewardConfig {
14
14
  resolveAsset?: (opp: MerklOpportunity) => {
15
15
  asset: string;
16
16
  lender?: string;
17
+ bucket?: RewardBucket;
17
18
  } | undefined;
18
19
  }
20
+ type RewardBucket = 'deposit' | 'borrow';
19
21
  /** Create a RewardFetcher that pulls data from the Merkl API for a given protocol */
20
22
  export declare function createMerklRewardFetcher(config: MerklRewardConfig): RewardFetcher;
21
23
  export declare const aaveMerklRewardFetcher: RewardFetcher;
24
+ /**
25
+ * Euler v2 markets are EVK vaults, keyed as `EULER_V2:<chain>:<vaultAddress>`.
26
+ * Every Merkl Euler opportunity targets a specific vault whose address is the
27
+ * opportunity's `explorerAddress` (the `identifier` may carry a suffix like
28
+ * "…BORROW_BL", so we key off explorerAddress). The reward lands on whichever
29
+ * vault we track — a regular borrowable market or an Euler Earn vault — and
30
+ * no-ops if we don't track it. Bucket is derived from the action (LEND/BORROW).
31
+ */
32
+ export declare const eulerMerklRewardFetcher: RewardFetcher;
33
+ /**
34
+ * Morpho supply/borrow rewards already arrive via Morpho's GraphQL API, so this
35
+ * fetcher emits ONLY the collateral dimension (`type === "MORPHOCOLLATERAL"`) —
36
+ * "deposit X as collateral" incentives that GraphQL doesn't expose. In our model
37
+ * each Morpho market is stored as two per-side rows; the collateral token is its
38
+ * own row (`MORPHO_BLUE_<uniqueKey>:<chain>:<collateralToken>`), so a collateral
39
+ * incentive is simply a `deposit` reward on that row — which the pairs view reads
40
+ * as `reward_apr_long` for the long/collateral leg. The Merkl action for these
41
+ * opps is inconsistent (LEND on some chains, BORROW on others), so we force the
42
+ * deposit bucket.
43
+ */
44
+ export declare const morphoCollateralMerklRewardFetcher: RewardFetcher;
45
+ export {};
22
46
  //# sourceMappingURL=merkl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merkl.d.ts","sourceRoot":"","sources":["../../../src/yields/rewards/merkl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAgB,MAAM,SAAS,CAAA;AAqHvE,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,eAAe,EAAE,MAAM,CAAA;IACvB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CACb,GAAG,EAAE,gBAAgB,KAClB;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;CACpD;AAID,qFAAqF;AACrF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,iBAAiB,GACxB,aAAa,CA0Df;AAsBD,eAAO,MAAM,sBAAsB,eAIjC,CAAA"}
1
+ {"version":3,"file":"merkl.d.ts","sourceRoot":"","sources":["../../../src/yields/rewards/merkl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAgB,MAAM,SAAS,CAAA;AAqHvE,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,eAAe,EAAE,MAAM,CAAA;IACvB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CACb,GAAG,EAAE,gBAAgB,KAClB;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,YAAY,CAAA;KAAE,GAAG,SAAS,CAAA;CAC3E;AAED,KAAK,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAA;AAMxC,qFAAqF;AACrF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,iBAAiB,GACxB,aAAa,CAqEf;AAsBD,eAAO,MAAM,sBAAsB,eAIjC,CAAA;AAmBF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,eASlC,CAAA;AAuBF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC,eAe7C,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1delta/margin-fetcher",
3
- "version": "0.0.336",
3
+ "version": "0.0.338",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "files": [
@@ -23,12 +23,12 @@
23
23
  "async-retry": "^1.3.3",
24
24
  "lodash": "^4.17.23",
25
25
  "@1delta/abis": "0.0.27",
26
- "@1delta/calldata-sdk": "0.0.160",
27
- "@1delta/dex-registry": "0.0.104",
26
+ "@1delta/calldata-sdk": "0.0.161",
28
27
  "@1delta/lender-registry": "0.0.36",
29
- "@1delta/proxy-fetch": "0.0.1",
30
28
  "@1delta/data-sdk": "0.0.34",
31
- "@1delta/providers": "0.0.62"
29
+ "@1delta/dex-registry": "0.0.104",
30
+ "@1delta/providers": "0.0.62",
31
+ "@1delta/proxy-fetch": "0.0.1"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/async-retry": "^1.4.9",