@moonwell-fi/moonwell-sdk 0.12.2 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/_cjs/actions/governance/getDelegates.js.map +1 -1
  3. package/_cjs/actions/governance/getUserVotingPowers.js +21 -6
  4. package/_cjs/actions/governance/getUserVotingPowers.js.map +1 -1
  5. package/_cjs/actions/morpho/user-rewards/common.js +77 -9
  6. package/_cjs/actions/morpho/user-rewards/common.js.map +1 -1
  7. package/_cjs/actions/morpho/user-rewards/getMorphoUserRewards.js +46 -10
  8. package/_cjs/actions/morpho/user-rewards/getMorphoUserRewards.js.map +1 -1
  9. package/_cjs/environments/definitions/ethereum/contracts.js +12 -0
  10. package/_cjs/environments/definitions/ethereum/contracts.js.map +1 -0
  11. package/_cjs/environments/definitions/ethereum/custom.js +18 -0
  12. package/_cjs/environments/definitions/ethereum/custom.js.map +1 -0
  13. package/_cjs/environments/definitions/ethereum/environment.js +9 -5
  14. package/_cjs/environments/definitions/ethereum/environment.js.map +1 -1
  15. package/_cjs/environments/definitions/ethereum/tokens.js +12 -0
  16. package/_cjs/environments/definitions/ethereum/tokens.js.map +1 -1
  17. package/_cjs/environments/definitions/governance.js +1 -1
  18. package/_cjs/environments/definitions/governance.js.map +1 -1
  19. package/_cjs/errors/version.js +1 -1
  20. package/_cjs/index.js +5 -1
  21. package/_cjs/index.js.map +1 -1
  22. package/_esm/actions/governance/getDelegates.js +2 -0
  23. package/_esm/actions/governance/getDelegates.js.map +1 -1
  24. package/_esm/actions/governance/getUserVotingPowers.js +24 -6
  25. package/_esm/actions/governance/getUserVotingPowers.js.map +1 -1
  26. package/_esm/actions/morpho/user-rewards/common.js +83 -9
  27. package/_esm/actions/morpho/user-rewards/common.js.map +1 -1
  28. package/_esm/actions/morpho/user-rewards/getMorphoUserRewards.js +51 -11
  29. package/_esm/actions/morpho/user-rewards/getMorphoUserRewards.js.map +1 -1
  30. package/_esm/environments/definitions/ethereum/contracts.js +10 -0
  31. package/_esm/environments/definitions/ethereum/contracts.js.map +1 -0
  32. package/_esm/environments/definitions/ethereum/custom.js +15 -0
  33. package/_esm/environments/definitions/ethereum/custom.js.map +1 -0
  34. package/_esm/environments/definitions/ethereum/environment.js +11 -5
  35. package/_esm/environments/definitions/ethereum/environment.js.map +1 -1
  36. package/_esm/environments/definitions/ethereum/tokens.js +12 -0
  37. package/_esm/environments/definitions/ethereum/tokens.js.map +1 -1
  38. package/_esm/environments/definitions/governance.js +2 -2
  39. package/_esm/environments/definitions/governance.js.map +1 -1
  40. package/_esm/errors/version.js +1 -1
  41. package/_esm/index.js +2 -0
  42. package/_esm/index.js.map +1 -1
  43. package/_types/actions/governance/getDelegates.d.ts.map +1 -1
  44. package/_types/actions/governance/getUserVotingPowers.d.ts.map +1 -1
  45. package/_types/actions/morpho/user-rewards/common.d.ts +23 -0
  46. package/_types/actions/morpho/user-rewards/common.d.ts.map +1 -1
  47. package/_types/actions/morpho/user-rewards/getMorphoUserRewards.d.ts +22 -0
  48. package/_types/actions/morpho/user-rewards/getMorphoUserRewards.d.ts.map +1 -1
  49. package/_types/client/createMoonwellClient.d.ts +62 -2
  50. package/_types/client/createMoonwellClient.d.ts.map +1 -1
  51. package/_types/environments/definitions/ethereum/contracts.d.ts +4 -0
  52. package/_types/environments/definitions/ethereum/contracts.d.ts.map +1 -0
  53. package/_types/environments/definitions/ethereum/custom.d.ts +18 -0
  54. package/_types/environments/definitions/ethereum/custom.d.ts.map +1 -0
  55. package/_types/environments/definitions/ethereum/environment.d.ts +52 -2
  56. package/_types/environments/definitions/ethereum/environment.d.ts.map +1 -1
  57. package/_types/environments/definitions/ethereum/tokens.d.ts +12 -0
  58. package/_types/environments/definitions/ethereum/tokens.d.ts.map +1 -1
  59. package/_types/environments/definitions/governance.d.ts.map +1 -1
  60. package/_types/environments/index.d.ts +34 -4
  61. package/_types/environments/index.d.ts.map +1 -1
  62. package/_types/errors/version.d.ts +1 -1
  63. package/_types/index.d.ts +2 -0
  64. package/_types/index.d.ts.map +1 -1
  65. package/actions/governance/getDelegates.ts +2 -0
  66. package/actions/governance/getUserVotingPowers.ts +30 -15
  67. package/actions/morpho/user-rewards/common.ts +81 -11
  68. package/actions/morpho/user-rewards/getMorphoUserRewards.ts +77 -12
  69. package/environments/definitions/ethereum/contracts.ts +10 -0
  70. package/environments/definitions/ethereum/custom.ts +15 -0
  71. package/environments/definitions/ethereum/environment.ts +15 -6
  72. package/environments/definitions/ethereum/tokens.ts +12 -0
  73. package/environments/definitions/governance.ts +2 -2
  74. package/errors/version.ts +1 -1
  75. package/index.ts +3 -0
  76. package/package.json +1 -1
@@ -1,6 +1,56 @@
1
- import { mainnet as ethereum } from "viem/chains";
2
1
  import { type Environment } from "../../types/config.js";
2
+ import { contracts } from "./contracts.js";
3
+ import { custom } from "./custom.js";
3
4
  import { tokens } from "./tokens.js";
4
- declare const createEnvironment: (rpcUrls?: string[], governanceIndexerUrl?: string) => Environment<typeof tokens, {}, {}, {}, {}>;
5
+ declare const ethereum: {
6
+ blockExplorers: {
7
+ readonly default: {
8
+ readonly name: "Etherscan";
9
+ readonly url: "https://etherscan.io";
10
+ readonly apiUrl: "https://api.etherscan.io/api";
11
+ };
12
+ };
13
+ blockTime: 12000;
14
+ contracts: {
15
+ readonly ensUniversalResolver: {
16
+ readonly address: "0xeeeeeeee14d718c2b47d9923deab1335e144eeee";
17
+ readonly blockCreated: 23085558;
18
+ };
19
+ readonly multicall3: {
20
+ readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
21
+ readonly blockCreated: 14353601;
22
+ };
23
+ };
24
+ ensTlds?: readonly string[] | undefined;
25
+ id: 1;
26
+ name: "Ethereum";
27
+ nativeCurrency: {
28
+ readonly name: "Ether";
29
+ readonly symbol: "ETH";
30
+ readonly decimals: 18;
31
+ };
32
+ experimental_preconfirmationTime?: number | undefined | undefined;
33
+ rpcUrls: {
34
+ readonly default: {
35
+ readonly http: readonly ["https://eth.merkle.io"];
36
+ };
37
+ };
38
+ sourceId?: number | undefined | undefined;
39
+ testnet: false;
40
+ custom?: Record<string, unknown> | undefined;
41
+ extendSchema?: Record<string, unknown> | undefined;
42
+ fees?: import("viem").ChainFees<undefined> | undefined;
43
+ prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
44
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
45
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
46
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
47
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
48
+ runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
49
+ }] | undefined;
50
+ serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable<bigint, number>> | undefined;
51
+ verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
52
+ readonly formatters?: undefined | undefined;
53
+ };
54
+ declare const createEnvironment: (rpcUrls?: string[], governanceIndexerUrl?: string, lunarIndexerUrl?: string) => Environment<typeof tokens, {}, {}, typeof contracts, typeof custom>;
5
55
  export { createEnvironment, ethereum, tokens };
6
56
  //# sourceMappingURL=environment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../../environments/definitions/ethereum/environment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,KAAK,WAAW,EAEjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,QAAA,MAAM,iBAAiB,GACrB,UAAU,MAAM,EAAE,EAClB,uBAAuB,MAAM,KAC5B,WAAW,CAAC,OAAO,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAsBM,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../../environments/definitions/ethereum/environment.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,WAAW,EAEjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA8C,CAAC;AAE7D,QAAA,MAAM,iBAAiB,GACrB,UAAU,MAAM,EAAE,EAClB,uBAAuB,MAAM,EAC7B,kBAAkB,MAAM,KACvB,WAAW,CAAC,OAAO,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,SAAS,EAAE,OAAO,MAAM,CAwBM,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC"}
@@ -11,5 +11,17 @@ export declare const tokens: {
11
11
  readonly name: "USD Coin";
12
12
  readonly symbol: "USDC";
13
13
  };
14
+ readonly WELL: {
15
+ readonly address: "0xA88594D404727625A9437C3f886C7643872296AE";
16
+ readonly decimals: 18;
17
+ readonly name: "Moonwell";
18
+ readonly symbol: "WELL";
19
+ };
20
+ readonly stkWELL: {
21
+ readonly address: "0xb3a9E0DCf37658a48aa9f018C44f90378ddD4357";
22
+ readonly decimals: 18;
23
+ readonly name: "Moonwell Staked WELL";
24
+ readonly symbol: "stkWELL";
25
+ };
14
26
  };
15
27
  //# sourceMappingURL=tokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../environments/definitions/ethereum/tokens.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAajB,CAAC"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../environments/definitions/ethereum/tokens.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;CAyBjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../../environments/definitions/governance.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAAC;CACtC;AAQD,eAAO,MAAM,sBAAsB;;;;;kBAKf,MAAM,EAAE;;;;;;;kBAOyB,MAAM,EAAE;;;;;;;kBAO7B,MAAM,EAAE;;;CAGtC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,sBAAsB,CAAC"}
1
+ {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../../environments/definitions/governance.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAAC;CACtC;AAQD,eAAO,MAAM,sBAAsB;;;;;kBAKf,MAAM,EAAE;;;;;;;kBAOqC,MAAM,EAAE;;;;;;;kBAOzC,MAAM,EAAE;;;CAGtC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,sBAAsB,CAAC"}
@@ -788,11 +788,10 @@ declare const supportedChains: {
788
788
  };
789
789
  };
790
790
  sourceId?: number | undefined | undefined;
791
- testnet?: boolean | undefined | undefined;
791
+ testnet: false;
792
792
  custom?: Record<string, unknown> | undefined;
793
793
  extendSchema?: Record<string, unknown> | undefined;
794
794
  fees?: import("viem").ChainFees<undefined> | undefined;
795
- formatters?: undefined;
796
795
  prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
797
796
  phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
798
797
  }) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
@@ -800,8 +799,9 @@ declare const supportedChains: {
800
799
  }) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
801
800
  runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
802
801
  }] | undefined;
803
- serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
802
+ serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable<bigint, number>> | undefined;
804
803
  verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
804
+ readonly formatters?: undefined | undefined;
805
805
  };
806
806
  avalanche: {
807
807
  blockExplorers: {
@@ -2182,7 +2182,37 @@ export declare const publicEnvironments: {
2182
2182
  readonly name: "USD Coin";
2183
2183
  readonly symbol: "USDC";
2184
2184
  };
2185
- }, {}, {}, {}, {}>;
2185
+ readonly WELL: {
2186
+ readonly address: "0xA88594D404727625A9437C3f886C7643872296AE";
2187
+ readonly decimals: 18;
2188
+ readonly name: "Moonwell";
2189
+ readonly symbol: "WELL";
2190
+ };
2191
+ readonly stkWELL: {
2192
+ readonly address: "0xb3a9E0DCf37658a48aa9f018C44f90378ddD4357";
2193
+ readonly decimals: 18;
2194
+ readonly name: "Moonwell Staked WELL";
2195
+ readonly symbol: "stkWELL";
2196
+ };
2197
+ }, {}, {}, {
2198
+ readonly governanceToken: "WELL";
2199
+ }, {
2200
+ governance: {
2201
+ token: "WELL";
2202
+ chainIds: never[];
2203
+ };
2204
+ wormhole: {
2205
+ chainId: number;
2206
+ tokenBridge: {
2207
+ address: "0x3ee18B2214AFF97000D974cf647E654bB5f1d8A8";
2208
+ };
2209
+ };
2210
+ xWELL: {
2211
+ bridgeAdapter: {
2212
+ address: "0x734AbBCe07679C9A6B4Fe3bC16325e028fA6DbB7";
2213
+ };
2214
+ };
2215
+ }>;
2186
2216
  avalanche: Environment<{
2187
2217
  readonly AVAX: {
2188
2218
  readonly address: "0x0000000000000000000000000000000000000000";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../environments/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../environments/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "0.12.2";
1
+ export declare const version = "0.13.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/_types/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export { createMoonwellClient, type MoonwellClient, } from "./client/createMoonwellClient.js";
2
+ export { MerklApiError } from "./actions/morpho/user-rewards/common.js";
3
+ export { MorphoUserRewardsAggregateError } from "./actions/morpho/user-rewards/getMorphoUserRewards.js";
2
4
  export type { MarketConfig, MorphoMarketConfig, TokenConfig, VaultConfig, } from "./environments/types/config.js";
3
5
  export type { CirculatingSupplySnapshot } from "./types/circulatingSupply.js";
4
6
  export type { Delegate } from "./types/delegate.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,GACpB,MAAM,kCAAkC,CAAC;AAE1C,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,WAAW,GACZ,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9E,YAAY,EACV,YAAY,EACZ,sBAAsB,EACtB,kCAAkC,GACnC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,YAAY,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAClF,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,KAAK,QAAQ,GACd,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,YAAY,EACV,WAAW,EACX,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,GACpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,+BAA+B,EAAE,MAAM,uDAAuD,CAAC;AAExG,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,WAAW,GACZ,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9E,YAAY,EACV,YAAY,EACZ,sBAAsB,EACtB,kCAAkC,GACnC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,YAAY,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAClF,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,KAAK,QAAQ,GACd,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,YAAY,EACV,WAAW,EACX,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
@@ -28,6 +28,8 @@ export async function getDelegates(
28
28
  const apiVoters = await fetchAllVoters(governanceEnvironment);
29
29
  const forumProfiles = await getForumProfiles();
30
30
 
31
+ // TODO: include mainnet.id once Ethereum's views contract ships, to match
32
+ // WELL.chainIds in environments/definitions/governance.ts.
31
33
  const targetChainIds = [moonbeam.id, base.id, optimism.id] as const;
32
34
  const envs = Object.values(client.environments as Environment[]).filter(
33
35
  (env) =>
@@ -9,6 +9,8 @@ import type { OptionalNetworkParameterType } from "../../common/types.js";
9
9
  import type { Chain, GovernanceToken } from "../../environments/index.js";
10
10
  import type { UserVotingPowers } from "../../types/userVotingPowers.js";
11
11
 
12
+ const warnedNoViewsEnvs = new Set<string>();
13
+
12
14
  export type GetUserVotingPowersParameters<
13
15
  environments,
14
16
  network extends Chain | undefined,
@@ -49,14 +51,31 @@ export async function getUserVotingPowers<
49
51
 
50
52
  const environments = getEnvironmentsFromArgs(client, args);
51
53
 
52
- const tokenEnvironments = environments.filter(
53
- (env) => env.custom?.governance?.token === governanceToken,
54
- );
54
+ // A chain can hold a governance token without deploying a views contract
55
+ // (voting reads run on the hub). Skipping the no-views case here lets the
56
+ // read site below call views.read.getUserVotingPower directly.
57
+ const tokenEnvironments = environments.flatMap((env) => {
58
+ if (env.custom?.governance?.token !== governanceToken) {
59
+ return [];
60
+ }
61
+ const views = env.contracts.views;
62
+ if (views === undefined) {
63
+ const key = `${env.chainId}:${governanceToken}`;
64
+ if (!warnedNoViewsEnvs.has(key)) {
65
+ warnedNoViewsEnvs.add(key);
66
+ console.warn(
67
+ `[moonwell-sdk] getUserVotingPowers: skipping chainId=${env.chainId} for governanceToken=${governanceToken} — environment holds the token but has no views contract.`,
68
+ );
69
+ }
70
+ return [];
71
+ }
72
+ return [{ env, views }];
73
+ });
55
74
 
56
75
  const perChainBlockNumbers =
57
76
  snapshotTimestamp !== undefined
58
77
  ? await Promise.all(
59
- tokenEnvironments.map((env) =>
78
+ tokenEnvironments.map(({ env }) =>
60
79
  getBlockNumberAtTimestamp(
61
80
  env.publicClient,
62
81
  BigInt(snapshotTimestamp),
@@ -65,23 +84,19 @@ export async function getUserVotingPowers<
65
84
  )
66
85
  : undefined;
67
86
 
68
- const environmentsUserVotingPowers = await Promise.all(
69
- tokenEnvironments.map((environment, index) => {
87
+ const resolvedVotingPowers = await Promise.all(
88
+ tokenEnvironments.map(async ({ env, views }, index) => {
70
89
  const blockForChain = perChainBlockNumbers
71
90
  ? perChainBlockNumbers[index]
72
91
  : blockNumber;
73
- return environment.contracts.views?.read.getUserVotingPower(
74
- [userAddress],
75
- {
76
- blockNumber: blockForChain,
77
- },
78
- );
92
+ const votingPowers = await views.read.getUserVotingPower([userAddress], {
93
+ blockNumber: blockForChain,
94
+ });
95
+ return { env, votingPowers };
79
96
  }),
80
97
  );
81
98
 
82
- return tokenEnvironments.map((environment, index) => {
83
- const votingPowers = environmentsUserVotingPowers[index]!;
84
-
99
+ return resolvedVotingPowers.map(({ env: environment, votingPowers }) => {
85
100
  return {
86
101
  chainId: environment.chainId,
87
102
 
@@ -13,9 +13,44 @@ import {
13
13
  import type { MorphoUserReward } from "../../../types/morphoUserReward.js";
14
14
  import type { MorphoUserStakingReward } from "../../../types/morphoUserStakingReward.js";
15
15
 
16
+ /**
17
+ * Error thrown for any failure communicating with the Merkl API: non-ok HTTP
18
+ * responses, network rejections (fetch threw), and response-body parse errors.
19
+ *
20
+ * - HTTP failures populate `status` and `statusText`.
21
+ * - Network and parse failures leave `status`/`statusText` undefined and
22
+ * carry the original error via `cause`.
23
+ */
24
+ export class MerklApiError extends Error {
25
+ readonly status: number | undefined;
26
+ readonly statusText: string | undefined;
27
+ readonly url: string;
28
+ readonly chainId: number;
29
+
30
+ constructor(params: {
31
+ message: string;
32
+ url: string;
33
+ chainId: number;
34
+ status?: number | undefined;
35
+ statusText?: string | undefined;
36
+ cause?: unknown;
37
+ }) {
38
+ super(
39
+ params.message,
40
+ params.cause !== undefined ? { cause: params.cause } : undefined,
41
+ );
42
+ this.name = "MerklApiError";
43
+ this.url = params.url;
44
+ this.chainId = params.chainId;
45
+ this.status = params.status;
46
+ this.statusText = params.statusText;
47
+ }
48
+ }
49
+
16
50
  export async function getUserMorphoRewardsData(params: {
17
51
  environment: Environment;
18
52
  account: `0x${string}`;
53
+ throwOnExternalApiError?: boolean;
19
54
  }): Promise<MorphoUserReward[]> {
20
55
  // The Morpho URD distributions endpoint (rewards.morpho.org) was
21
56
  // deprecated and now 301-redirects to a SPA, so JSON parsing fails.
@@ -23,6 +58,7 @@ export async function getUserMorphoRewardsData(params: {
23
58
  const merklRewards = await getMerklRewardsData(
24
59
  params.environment,
25
60
  params.account,
61
+ { throwOnError: params.throwOnExternalApiError ?? false },
26
62
  );
27
63
 
28
64
  const isFullDeployment =
@@ -294,30 +330,64 @@ type MerklRewardsResponse = {
294
330
  async function getMerklRewardsData(
295
331
  environment: Environment,
296
332
  account: Address,
333
+ options: { throwOnError: boolean } = { throwOnError: false },
297
334
  ): Promise<MerklRewardsResponse[]> {
335
+ const url = `https://api.merkl.xyz/v4/users/${account}/rewards?chainId=${environment.chainId}&test=false&breakdownPage=0&reloadChainId=${environment.chainId}`;
336
+
337
+ let response: Response;
298
338
  try {
299
339
  // Merkl campaigns always distribute rewards on the same chain as the
300
340
  // opportunity, so environment.chainId is the only chain we need to query.
301
341
  // The previous two-phase approach (fetch opportunities per vault → extract
302
342
  // chain IDs → fetch rewards per chain) made N+1 HTTP calls to discover
303
343
  // a chain ID we already know.
304
- const response = await fetch(
305
- `https://api.merkl.xyz/v4/users/${account}/rewards?chainId=${environment.chainId}&test=false&breakdownPage=0&reloadChainId=${environment.chainId}`,
306
- {
307
- headers: MOONWELL_FETCH_JSON_HEADERS,
308
- },
344
+ response = await fetch(url, { headers: MOONWELL_FETCH_JSON_HEADERS });
345
+ } catch (error) {
346
+ if (options.throwOnError) {
347
+ throw new MerklApiError({
348
+ message: `Merkl API network error for chain ${environment.chainId}`,
349
+ url,
350
+ chainId: environment.chainId,
351
+ cause: error,
352
+ });
353
+ }
354
+ console.error(
355
+ `[getMerklRewardsData:network] chain=${environment.chainId} url=${url}`,
356
+ error,
309
357
  );
358
+ return [];
359
+ }
310
360
 
311
- if (!response.ok) {
312
- console.warn(
313
- `Merkl API request failed: ${response.status} ${response.statusText}`,
314
- );
315
- return [];
361
+ if (!response.ok) {
362
+ const message = `Merkl API request failed for chain ${environment.chainId}: ${response.status} ${response.statusText}`;
363
+ if (options.throwOnError) {
364
+ throw new MerklApiError({
365
+ message,
366
+ url,
367
+ chainId: environment.chainId,
368
+ status: response.status,
369
+ statusText: response.statusText,
370
+ });
316
371
  }
372
+ console.warn(`${message} (url=${url})`);
373
+ return [];
374
+ }
317
375
 
376
+ try {
318
377
  return (await response.json()) as MerklRewardsResponse[];
319
378
  } catch (error) {
320
- console.error("Error in getMerklRewardsData:", error);
379
+ if (options.throwOnError) {
380
+ throw new MerklApiError({
381
+ message: `Merkl API response parse error for chain ${environment.chainId}`,
382
+ url,
383
+ chainId: environment.chainId,
384
+ cause: error,
385
+ });
386
+ }
387
+ console.error(
388
+ `[getMerklRewardsData:parse] chain=${environment.chainId} url=${url}`,
389
+ error,
390
+ );
321
391
  return [];
322
392
  }
323
393
  }
@@ -4,13 +4,41 @@ import { getEnvironmentsFromArgs } from "../../../common/index.js";
4
4
  import type { OptionalNetworkParameterType } from "../../../common/types.js";
5
5
  import type { Chain } from "../../../environments/index.js";
6
6
  import type { MorphoUserReward } from "../../../types/morphoUserReward.js";
7
- import { getUserMorphoRewardsData } from "./common.js";
7
+ import { MerklApiError, getUserMorphoRewardsData } from "./common.js";
8
+
9
+ /**
10
+ * AggregateError thrown by `getMorphoUserRewards` when one or more chains
11
+ * fail and `throwOnExternalApiError` is `true`. The `rewards` property
12
+ * carries the rewards from any chains that succeeded so callers can still
13
+ * surface partial results alongside the per-chain failures in `errors`.
14
+ */
15
+ export class MorphoUserRewardsAggregateError extends AggregateError {
16
+ readonly rewards: MorphoUserReward[];
17
+
18
+ constructor(errors: Error[], message: string, rewards: MorphoUserReward[]) {
19
+ super(errors, message);
20
+ this.name = "MorphoUserRewardsAggregateError";
21
+ this.rewards = rewards;
22
+ }
23
+ }
8
24
 
9
25
  export type GetMorphoUserRewardsParameters<
10
26
  environments,
11
27
  network extends Chain | undefined,
12
28
  > = OptionalNetworkParameterType<environments, network> & {
13
29
  userAddress: Address;
30
+ /**
31
+ * When true, errors from the external Merkl API are propagated to the
32
+ * caller instead of being swallowed and returning `[]`. Default `false`
33
+ * preserves the historical behavior for existing consumers.
34
+ *
35
+ * If multiple environments are queried and at least one fails while others
36
+ * succeed, this throws a `MorphoUserRewardsAggregateError` whose `errors`
37
+ * array contains the per-chain failures and whose `rewards` property
38
+ * carries the successful chains' rewards so the caller can still display
39
+ * partial results.
40
+ */
41
+ throwOnExternalApiError?: boolean;
14
42
  };
15
43
 
16
44
  export type GetMorphoUserRewardsReturnType = Promise<MorphoUserReward[]>;
@@ -22,18 +50,55 @@ export async function getMorphoUserRewards<
22
50
  client: MoonwellClient,
23
51
  args: GetMorphoUserRewardsParameters<environments, Network>,
24
52
  ): GetMorphoUserRewardsReturnType {
25
- const environments = getEnvironmentsFromArgs(client, args);
26
-
27
- const environmentsUserRewards = await Promise.all(
28
- environments
29
- .filter((environment) => environment.contracts.morphoViews !== undefined)
30
- .map((environment) => {
31
- return getUserMorphoRewardsData({
32
- environment,
33
- account: args.userAddress,
34
- });
53
+ const targetEnvironments = getEnvironmentsFromArgs(client, args).filter(
54
+ (environment) => environment.contracts.morphoViews !== undefined,
55
+ );
56
+
57
+ const settled = await Promise.allSettled(
58
+ targetEnvironments.map((environment) =>
59
+ getUserMorphoRewardsData({
60
+ environment,
61
+ account: args.userAddress,
62
+ ...(args.throwOnExternalApiError !== undefined && {
63
+ throwOnExternalApiError: args.throwOnExternalApiError,
64
+ }),
35
65
  }),
66
+ ),
36
67
  );
37
68
 
38
- return environmentsUserRewards.flat();
69
+ const fulfilled: MorphoUserReward[] = [];
70
+ const failures: Error[] = [];
71
+ const failedChainIds: number[] = [];
72
+ for (const [i, result] of settled.entries()) {
73
+ const environment = targetEnvironments[i];
74
+ if (result.status === "fulfilled") {
75
+ fulfilled.push(...result.value);
76
+ continue;
77
+ }
78
+ const reason = result.reason;
79
+ if (reason instanceof MerklApiError) {
80
+ failures.push(reason);
81
+ failedChainIds.push(reason.chainId);
82
+ continue;
83
+ }
84
+ const baseError =
85
+ reason instanceof Error ? reason : new Error(String(reason));
86
+ failures.push(
87
+ new Error(
88
+ `getMorphoUserRewards failed for chain ${environment.chainId}: ${baseError.message}`,
89
+ { cause: baseError },
90
+ ),
91
+ );
92
+ failedChainIds.push(environment.chainId);
93
+ }
94
+
95
+ if (failures.length > 0 && args.throwOnExternalApiError === true) {
96
+ throw new MorphoUserRewardsAggregateError(
97
+ failures,
98
+ `getMorphoUserRewards failed for chains: ${failedChainIds.join(", ")}`,
99
+ fulfilled,
100
+ );
101
+ }
102
+
103
+ return fulfilled;
39
104
  }
@@ -0,0 +1,10 @@
1
+ import { createContractsConfig } from "../../types/config.js";
2
+ import { tokens } from "./tokens.js";
3
+
4
+ export const contracts = createContractsConfig({
5
+ tokens,
6
+ contracts: {
7
+ // `stakingToken` is intentionally omitted until Ethereum staking contracts ship.
8
+ governanceToken: "WELL",
9
+ },
10
+ });
@@ -0,0 +1,15 @@
1
+ import { createCustomConfig } from "../../types/config.js";
2
+
3
+ export const custom = createCustomConfig({
4
+ governance: {
5
+ token: "WELL",
6
+ chainIds: [],
7
+ },
8
+ wormhole: {
9
+ chainId: 2,
10
+ tokenBridge: { address: "0x3ee18B2214AFF97000D974cf647E654bB5f1d8A8" },
11
+ },
12
+ xWELL: {
13
+ bridgeAdapter: { address: "0x734AbBCe07679C9A6B4Fe3bC16325e028fA6DbB7" },
14
+ },
15
+ });
@@ -1,15 +1,22 @@
1
- import { http, fallback } from "viem";
2
- import { mainnet as ethereum } from "viem/chains";
1
+ import { http, defineChain, fallback } from "viem";
2
+ import { mainnet } from "viem/chains";
3
3
  import {
4
4
  type Environment,
5
5
  createEnvironmentConfig,
6
6
  } from "../../types/config.js";
7
+ import { contracts } from "./contracts.js";
8
+ import { custom } from "./custom.js";
7
9
  import { tokens } from "./tokens.js";
8
10
 
11
+ // viem's `mainnet` chain leaves `testnet` undefined; consumers
12
+ // (e.g. the bridge modal) check `env.chain.testnet === false` strictly.
13
+ const ethereum = defineChain({ ...mainnet, testnet: false });
14
+
9
15
  const createEnvironment = (
10
16
  rpcUrls?: string[],
11
17
  governanceIndexerUrl?: string,
12
- ): Environment<typeof tokens, {}, {}, {}, {}> =>
18
+ lunarIndexerUrl?: string,
19
+ ): Environment<typeof tokens, {}, {}, typeof contracts, typeof custom> =>
13
20
  createEnvironmentConfig({
14
21
  key: "ethereum",
15
22
  name: "Ethereum",
@@ -25,12 +32,14 @@ const createEnvironment = (
25
32
  governanceIndexerUrl:
26
33
  governanceIndexerUrl ||
27
34
  "https://lunar-services-worker.moonwell.workers.dev",
35
+ lunarIndexerUrl:
36
+ lunarIndexerUrl || "https://lunar-services-worker.moonwell.workers.dev",
28
37
  tokens,
29
38
  markets: {},
30
39
  vaults: {},
31
40
  morphoMarkets: {},
32
- contracts: {},
33
- custom: {},
34
- }) as Environment<typeof tokens, {}, {}, {}, {}>;
41
+ contracts,
42
+ custom,
43
+ }) as Environment<typeof tokens, {}, {}, typeof contracts, typeof custom>;
35
44
 
36
45
  export { createEnvironment, ethereum, tokens };
@@ -14,4 +14,16 @@ export const tokens = createTokenConfig({
14
14
  name: "USD Coin",
15
15
  symbol: "USDC",
16
16
  },
17
+ WELL: {
18
+ address: "0xA88594D404727625A9437C3f886C7643872296AE",
19
+ decimals: 18,
20
+ name: "Moonwell",
21
+ symbol: "WELL",
22
+ },
23
+ stkWELL: {
24
+ address: "0xb3a9E0DCf37658a48aa9f018C44f90378ddD4357",
25
+ decimals: 18,
26
+ name: "Moonwell Staked WELL",
27
+ symbol: "stkWELL",
28
+ },
17
29
  });
@@ -1,4 +1,4 @@
1
- import { base, moonbeam, moonriver, optimism } from "viem/chains";
1
+ import { base, mainnet, moonbeam, moonriver, optimism } from "viem/chains";
2
2
 
3
3
  export interface GovernanceTokenInfo {
4
4
  id: string;
@@ -30,7 +30,7 @@ export const GovernanceTokensConfig = createGovernanceTokensConfig({
30
30
  id: "WELL",
31
31
  symbol: "WELL",
32
32
  name: "WELL",
33
- chainIds: [moonbeam.id, base.id, optimism.id] as number[],
33
+ chainIds: [moonbeam.id, base.id, optimism.id, mainnet.id] as number[],
34
34
  testnet: false,
35
35
  },
36
36
  MFAM: {
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '0.12.2'
1
+ export const version = '0.13.0'