@moonwell-fi/moonwell-sdk 0.20.5 → 0.22.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 (195) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +9 -3
  3. package/_cjs/actions/beam/common.js +1 -2
  4. package/_cjs/actions/beam/common.js.map +1 -1
  5. package/_cjs/actions/core/markets/common.js +146 -96
  6. package/_cjs/actions/core/markets/common.js.map +1 -1
  7. package/_cjs/actions/core/markets/getMarketSnapshots.js +1 -83
  8. package/_cjs/actions/core/markets/getMarketSnapshots.js.map +1 -1
  9. package/_cjs/actions/core/user-positions/getUserPositionSnapshots.js +1 -59
  10. package/_cjs/actions/core/user-positions/getUserPositionSnapshots.js.map +1 -1
  11. package/_cjs/actions/governance/getCirculatingSupplySnapshots.js +1 -49
  12. package/_cjs/actions/governance/getCirculatingSupplySnapshots.js.map +1 -1
  13. package/_cjs/actions/governance/getDelegates.js +2 -7
  14. package/_cjs/actions/governance/getDelegates.js.map +1 -1
  15. package/_cjs/actions/governance/getGovernanceTokenInfo.js +7 -12
  16. package/_cjs/actions/governance/getGovernanceTokenInfo.js.map +1 -1
  17. package/_cjs/actions/governance/getStakingSnapshots.js +1 -41
  18. package/_cjs/actions/governance/getStakingSnapshots.js.map +1 -1
  19. package/_cjs/actions/governance/getUserVoteReceipt.js +5 -4
  20. package/_cjs/actions/governance/getUserVoteReceipt.js.map +1 -1
  21. package/_cjs/actions/governance/governor-api-client.js.map +1 -1
  22. package/_cjs/actions/governance/proposals/common.js +74 -7
  23. package/_cjs/actions/governance/proposals/common.js.map +1 -1
  24. package/_cjs/actions/governance/proposals/getProposal.js +6 -73
  25. package/_cjs/actions/governance/proposals/getProposal.js.map +1 -1
  26. package/_cjs/actions/governance/proposals/getProposals.js +12 -92
  27. package/_cjs/actions/governance/proposals/getProposals.js.map +1 -1
  28. package/_cjs/client/createMoonwellClient.js +17 -15
  29. package/_cjs/client/createMoonwellClient.js.map +1 -1
  30. package/_cjs/common/index.js +4 -4
  31. package/_cjs/common/index.js.map +1 -1
  32. package/_cjs/environments/definitions/governance.js +1 -15
  33. package/_cjs/environments/definitions/governance.js.map +1 -1
  34. package/_cjs/environments/index.js +28 -42
  35. package/_cjs/environments/index.js.map +1 -1
  36. package/_cjs/environments/types/config.js.map +1 -1
  37. package/_cjs/errors/version.js +1 -1
  38. package/_esm/actions/beam/common.js +3 -2
  39. package/_esm/actions/beam/common.js.map +1 -1
  40. package/_esm/actions/core/markets/common.js +192 -104
  41. package/_esm/actions/core/markets/common.js.map +1 -1
  42. package/_esm/actions/core/markets/getMarketSnapshots.js +1 -83
  43. package/_esm/actions/core/markets/getMarketSnapshots.js.map +1 -1
  44. package/_esm/actions/core/user-positions/getUserPositionSnapshots.js +3 -62
  45. package/_esm/actions/core/user-positions/getUserPositionSnapshots.js.map +1 -1
  46. package/_esm/actions/governance/getCirculatingSupplySnapshots.js +2 -50
  47. package/_esm/actions/governance/getCirculatingSupplySnapshots.js.map +1 -1
  48. package/_esm/actions/governance/getDelegates.js +8 -8
  49. package/_esm/actions/governance/getDelegates.js.map +1 -1
  50. package/_esm/actions/governance/getGovernanceTokenInfo.js +20 -13
  51. package/_esm/actions/governance/getGovernanceTokenInfo.js.map +1 -1
  52. package/_esm/actions/governance/getStakingSnapshots.js +1 -41
  53. package/_esm/actions/governance/getStakingSnapshots.js.map +1 -1
  54. package/_esm/actions/governance/getUserVoteReceipt.js +16 -5
  55. package/_esm/actions/governance/getUserVoteReceipt.js.map +1 -1
  56. package/_esm/actions/governance/governor-api-client.js +14 -5
  57. package/_esm/actions/governance/governor-api-client.js.map +1 -1
  58. package/_esm/actions/governance/proposals/common.js +134 -11
  59. package/_esm/actions/governance/proposals/common.js.map +1 -1
  60. package/_esm/actions/governance/proposals/getProposal.js +16 -93
  61. package/_esm/actions/governance/proposals/getProposal.js.map +1 -1
  62. package/_esm/actions/governance/proposals/getProposals.js +37 -132
  63. package/_esm/actions/governance/proposals/getProposals.js.map +1 -1
  64. package/_esm/actions/lunar-indexer-client.js +1 -1
  65. package/_esm/client/createMoonwellClient.js +24 -16
  66. package/_esm/client/createMoonwellClient.js.map +1 -1
  67. package/_esm/common/index.js +15 -4
  68. package/_esm/common/index.js.map +1 -1
  69. package/_esm/environments/definitions/governance.js +5 -16
  70. package/_esm/environments/definitions/governance.js.map +1 -1
  71. package/_esm/environments/index.js +2 -14
  72. package/_esm/environments/index.js.map +1 -1
  73. package/_esm/environments/types/config.js.map +1 -1
  74. package/_esm/errors/version.js +1 -1
  75. package/_types/actions/beam/common.d.ts +1 -1
  76. package/_types/actions/beam/common.d.ts.map +1 -1
  77. package/_types/actions/core/markets/common.d.ts.map +1 -1
  78. package/_types/actions/core/markets/getMarketSnapshots.d.ts.map +1 -1
  79. package/_types/actions/core/user-positions/getUserPositionSnapshots.d.ts +1 -2
  80. package/_types/actions/core/user-positions/getUserPositionSnapshots.d.ts.map +1 -1
  81. package/_types/actions/governance/getCirculatingSupplySnapshots.d.ts.map +1 -1
  82. package/_types/actions/governance/getGovernanceTokenInfo.d.ts.map +1 -1
  83. package/_types/actions/governance/getStakingSnapshots.d.ts.map +1 -1
  84. package/_types/actions/governance/getUserVoteReceipt.d.ts.map +1 -1
  85. package/_types/actions/governance/governor-api-client.d.ts +14 -5
  86. package/_types/actions/governance/governor-api-client.d.ts.map +1 -1
  87. package/_types/actions/governance/proposals/common.d.ts +41 -6
  88. package/_types/actions/governance/proposals/common.d.ts.map +1 -1
  89. package/_types/actions/governance/proposals/getProposal.d.ts +1 -1
  90. package/_types/actions/governance/proposals/getProposal.d.ts.map +1 -1
  91. package/_types/actions/governance/proposals/getProposals.d.ts +1 -1
  92. package/_types/actions/governance/proposals/getProposals.d.ts.map +1 -1
  93. package/_types/actions/lunar-indexer-client.d.ts +1 -1
  94. package/_types/client/createMoonwellClient.d.ts +9 -839
  95. package/_types/client/createMoonwellClient.d.ts.map +1 -1
  96. package/_types/common/index.d.ts +11 -0
  97. package/_types/common/index.d.ts.map +1 -1
  98. package/_types/environments/definitions/governance.d.ts +0 -14
  99. package/_types/environments/definitions/governance.d.ts.map +1 -1
  100. package/_types/environments/index.d.ts +5 -516
  101. package/_types/environments/index.d.ts.map +1 -1
  102. package/_types/environments/types/config.d.ts +14 -0
  103. package/_types/environments/types/config.d.ts.map +1 -1
  104. package/_types/errors/version.d.ts +1 -1
  105. package/actions/beam/common.ts +4 -9
  106. package/actions/core/markets/common.ts +307 -166
  107. package/actions/core/markets/getMarketSnapshots.ts +1 -118
  108. package/actions/core/user-positions/getUserPositionSnapshots.ts +2 -91
  109. package/actions/governance/getCirculatingSupplySnapshots.ts +3 -72
  110. package/actions/governance/getDelegates.ts +8 -8
  111. package/actions/governance/getGovernanceTokenInfo.ts +23 -15
  112. package/actions/governance/getStakingSnapshots.ts +1 -59
  113. package/actions/governance/getUserVoteReceipt.ts +19 -5
  114. package/actions/governance/governor-api-client.ts +14 -5
  115. package/actions/governance/proposals/common.ts +155 -11
  116. package/actions/governance/proposals/getProposal.ts +29 -112
  117. package/actions/governance/proposals/getProposals.ts +52 -153
  118. package/actions/lunar-indexer-client.ts +1 -1
  119. package/client/createMoonwellClient.ts +32 -40
  120. package/common/index.ts +17 -6
  121. package/environments/definitions/governance.ts +5 -16
  122. package/environments/index.ts +28 -70
  123. package/environments/types/config.ts +14 -0
  124. package/errors/version.ts +1 -1
  125. package/package.json +2 -2
  126. package/_cjs/environments/definitions/moonbeam/contracts.js +0 -22
  127. package/_cjs/environments/definitions/moonbeam/contracts.js.map +0 -1
  128. package/_cjs/environments/definitions/moonbeam/core-markets.js +0 -65
  129. package/_cjs/environments/definitions/moonbeam/core-markets.js.map +0 -1
  130. package/_cjs/environments/definitions/moonbeam/custom.js +0 -24
  131. package/_cjs/environments/definitions/moonbeam/custom.js.map +0 -1
  132. package/_cjs/environments/definitions/moonbeam/environment.js +0 -38
  133. package/_cjs/environments/definitions/moonbeam/environment.js.map +0 -1
  134. package/_cjs/environments/definitions/moonbeam/tokens.js +0 -176
  135. package/_cjs/environments/definitions/moonbeam/tokens.js.map +0 -1
  136. package/_cjs/environments/definitions/moonriver/contracts.js +0 -19
  137. package/_cjs/environments/definitions/moonriver/contracts.js.map +0 -1
  138. package/_cjs/environments/definitions/moonriver/core-markets.js +0 -46
  139. package/_cjs/environments/definitions/moonriver/core-markets.js.map +0 -1
  140. package/_cjs/environments/definitions/moonriver/custom.js +0 -12
  141. package/_cjs/environments/definitions/moonriver/custom.js.map +0 -1
  142. package/_cjs/environments/definitions/moonriver/environment.js +0 -36
  143. package/_cjs/environments/definitions/moonriver/environment.js.map +0 -1
  144. package/_cjs/environments/definitions/moonriver/tokens.js +0 -110
  145. package/_cjs/environments/definitions/moonriver/tokens.js.map +0 -1
  146. package/_esm/environments/definitions/moonbeam/contracts.js +0 -19
  147. package/_esm/environments/definitions/moonbeam/contracts.js.map +0 -1
  148. package/_esm/environments/definitions/moonbeam/core-markets.js +0 -62
  149. package/_esm/environments/definitions/moonbeam/core-markets.js.map +0 -1
  150. package/_esm/environments/definitions/moonbeam/custom.js +0 -21
  151. package/_esm/environments/definitions/moonbeam/custom.js.map +0 -1
  152. package/_esm/environments/definitions/moonbeam/environment.js +0 -32
  153. package/_esm/environments/definitions/moonbeam/environment.js.map +0 -1
  154. package/_esm/environments/definitions/moonbeam/tokens.js +0 -173
  155. package/_esm/environments/definitions/moonbeam/tokens.js.map +0 -1
  156. package/_esm/environments/definitions/moonriver/contracts.js +0 -16
  157. package/_esm/environments/definitions/moonriver/contracts.js.map +0 -1
  158. package/_esm/environments/definitions/moonriver/core-markets.js +0 -43
  159. package/_esm/environments/definitions/moonriver/core-markets.js.map +0 -1
  160. package/_esm/environments/definitions/moonriver/custom.js +0 -9
  161. package/_esm/environments/definitions/moonriver/custom.js.map +0 -1
  162. package/_esm/environments/definitions/moonriver/environment.js +0 -31
  163. package/_esm/environments/definitions/moonriver/environment.js.map +0 -1
  164. package/_esm/environments/definitions/moonriver/tokens.js +0 -107
  165. package/_esm/environments/definitions/moonriver/tokens.js.map +0 -1
  166. package/_types/environments/definitions/moonbeam/contracts.d.ts +0 -14
  167. package/_types/environments/definitions/moonbeam/contracts.d.ts.map +0 -1
  168. package/_types/environments/definitions/moonbeam/core-markets.d.ts +0 -57
  169. package/_types/environments/definitions/moonbeam/core-markets.d.ts.map +0 -1
  170. package/_types/environments/definitions/moonbeam/custom.d.ts +0 -25
  171. package/_types/environments/definitions/moonbeam/custom.d.ts.map +0 -1
  172. package/_types/environments/definitions/moonbeam/environment.d.ts +0 -265
  173. package/_types/environments/definitions/moonbeam/environment.d.ts.map +0 -1
  174. package/_types/environments/definitions/moonbeam/tokens.d.ts +0 -171
  175. package/_types/environments/definitions/moonbeam/tokens.d.ts.map +0 -1
  176. package/_types/environments/definitions/moonriver/contracts.d.ts +0 -11
  177. package/_types/environments/definitions/moonriver/contracts.d.ts.map +0 -1
  178. package/_types/environments/definitions/moonriver/core-markets.d.ts +0 -38
  179. package/_types/environments/definitions/moonriver/core-markets.d.ts.map +0 -1
  180. package/_types/environments/definitions/moonriver/custom.d.ts +0 -8
  181. package/_types/environments/definitions/moonriver/custom.d.ts.map +0 -1
  182. package/_types/environments/definitions/moonriver/environment.d.ts +0 -159
  183. package/_types/environments/definitions/moonriver/environment.d.ts.map +0 -1
  184. package/_types/environments/definitions/moonriver/tokens.d.ts +0 -105
  185. package/_types/environments/definitions/moonriver/tokens.d.ts.map +0 -1
  186. package/environments/definitions/moonbeam/contracts.ts +0 -19
  187. package/environments/definitions/moonbeam/core-markets.ts +0 -62
  188. package/environments/definitions/moonbeam/custom.ts +0 -21
  189. package/environments/definitions/moonbeam/environment.ts +0 -39
  190. package/environments/definitions/moonbeam/tokens.ts +0 -173
  191. package/environments/definitions/moonriver/contracts.ts +0 -16
  192. package/environments/definitions/moonriver/core-markets.ts +0 -43
  193. package/environments/definitions/moonriver/custom.ts +0 -9
  194. package/environments/definitions/moonriver/environment.ts +0 -38
  195. package/environments/definitions/moonriver/tokens.ts +0 -107
@@ -5,8 +5,6 @@ import {
5
5
  type BaseEnvironment,
6
6
  type Environment,
7
7
  type EthereumEnvironment,
8
- type MoonbeamEnvironment,
9
- type MoonriverEnvironment,
10
8
  type OptimismEnvironment,
11
9
  type PolygonEnvironment,
12
10
  type SupportedChains,
@@ -15,10 +13,9 @@ import {
15
13
  base,
16
14
  createEnvironment,
17
15
  ethereum,
18
- moonbeam,
19
- moonriver,
20
16
  optimism,
21
17
  polygon,
18
+ supportedChains,
22
19
  } from "../environments/index.js";
23
20
  import { actions } from "./createActions.js";
24
21
 
@@ -33,16 +30,6 @@ export type MoonwellClient<
33
30
  name,
34
31
  "optimism"
35
32
  >]: OptimismEnvironment;
36
- } & {
37
- [name in keyof environments as Extract<
38
- name,
39
- "moonbeam"
40
- >]: MoonbeamEnvironment;
41
- } & {
42
- [name in keyof environments as Extract<
43
- name,
44
- "moonriver"
45
- >]: MoonriverEnvironment;
46
33
  } & {
47
34
  [name in keyof environments as Extract<
48
35
  name,
@@ -86,25 +73,40 @@ export const createMoonwellClient = <const networks>(config: {
86
73
  config.networks as NetworksConfig<SupportedChains>,
87
74
  ).reduce((prev, [curr, networkConfig]) => {
88
75
  if (!networkConfig) return prev;
76
+
77
+ // Every supported key gets its own branch and unknown keys throw. The old
78
+ // shape ended in a bare `: polygon` fallthrough, so a key TypeScript would
79
+ // have rejected — `moonbeam`/`moonriver` after the sunset (MOO-551), or any
80
+ // typo from a JS consumer — silently built a *Polygon* environment stored
81
+ // under that key, wired with Polygon addresses over the caller's RPC. Fail
82
+ // loudly instead, matching `createEnvironment`'s "Unsupported chainId".
83
+ const chain =
84
+ curr === "base"
85
+ ? base
86
+ : curr === "optimism"
87
+ ? optimism
88
+ : curr === "ethereum"
89
+ ? ethereum
90
+ : curr === "avalanche"
91
+ ? avalanche
92
+ : curr === "arbitrum"
93
+ ? arbitrum
94
+ : curr === "polygon"
95
+ ? polygon
96
+ : undefined;
97
+
98
+ if (!chain) {
99
+ throw new Error(
100
+ `Unsupported network "${curr}". Supported networks: ${Object.keys(
101
+ supportedChains,
102
+ ).join(", ")}.`,
103
+ );
104
+ }
105
+
89
106
  return {
90
107
  ...prev,
91
108
  [curr]: createEnvironment({
92
- chain:
93
- curr === "base"
94
- ? base
95
- : curr === "optimism"
96
- ? optimism
97
- : curr === "moonbeam"
98
- ? moonbeam
99
- : curr === "moonriver"
100
- ? moonriver
101
- : curr === "ethereum"
102
- ? ethereum
103
- : curr === "avalanche"
104
- ? avalanche
105
- : curr === "arbitrum"
106
- ? arbitrum
107
- : polygon,
109
+ chain,
108
110
  rpcUrls: networkConfig.rpcUrls,
109
111
  }),
110
112
  };
@@ -116,16 +118,6 @@ export const createMoonwellClient = <const networks>(config: {
116
118
  name,
117
119
  "optimism"
118
120
  >]: OptimismEnvironment;
119
- } & {
120
- [name in keyof networks as Extract<
121
- name,
122
- "moonbeam"
123
- >]: MoonbeamEnvironment;
124
- } & {
125
- [name in keyof networks as Extract<
126
- name,
127
- "moonriver"
128
- >]: MoonriverEnvironment;
129
121
  } & {
130
122
  [name in keyof networks as Extract<
131
123
  name,
package/common/index.ts CHANGED
@@ -136,6 +136,17 @@ export const getEnvironmentFromArgs = (
136
136
  return undefined;
137
137
  };
138
138
 
139
+ /**
140
+ * Resolve the environments an action should run against.
141
+ *
142
+ * A `chainId`/`network` that matches no registered environment yields an EMPTY
143
+ * array, not `[undefined]`. The single-element-holding-undefined shape used to
144
+ * leak out of here and every caller dereferences what it gets back, so an
145
+ * unmatched selector crashed with an opaque `Cannot read properties of
146
+ * undefined` instead of hitting the caller's own "nothing to do" guard. That
147
+ * became reachable on ordinary input once Moonbeam/Moonriver stopped being
148
+ * registrable (MOO-551) while `getProposal` still teaches callers to pass 1284.
149
+ */
139
150
  export const getEnvironmentsFromArgs = (
140
151
  client: MoonwellClient,
141
152
  args?: { chainId?: number; network?: any },
@@ -150,15 +161,15 @@ export const getEnvironmentsFromArgs = (
150
161
  };
151
162
 
152
163
  if (Number.isInteger(chainId)) {
153
- return [
154
- Object.values(client.environments).find(
155
- (env) => env.chainId === chainId,
156
- ),
157
- ] as Environment[];
164
+ const matched = Object.values(client.environments).find(
165
+ (env) => env.chainId === chainId,
166
+ );
167
+ return matched ? [matched] : [];
158
168
  }
159
169
 
160
170
  if (network) {
161
- return [client.environments[network]] as Environment[];
171
+ const matched = client.environments[network];
172
+ return matched ? [matched] : [];
162
173
  }
163
174
  }
164
175
  return Object.values(client.environments as Environment[]).filter((r) =>
@@ -1,4 +1,4 @@
1
- import { base, mainnet, moonbeam, moonriver, optimism } from "viem/chains";
1
+ import { base, mainnet, optimism } from "viem/chains";
2
2
 
3
3
  export interface GovernanceTokenInfo {
4
4
  id: string;
@@ -19,25 +19,14 @@ function createGovernanceTokensConfig<T extends GovernanceTokensType>(
19
19
  }
20
20
 
21
21
  export const GovernanceTokensConfig = createGovernanceTokensConfig({
22
- WELL_TESTNET: {
23
- id: "WELL_TESTNET",
24
- symbol: "WELL",
25
- name: "WELL (Testnet)",
26
- chainIds: [] as number[],
27
- testnet: true,
28
- },
29
22
  WELL: {
30
23
  id: "WELL",
31
24
  symbol: "WELL",
32
25
  name: "WELL",
33
- chainIds: [moonbeam.id, base.id, optimism.id, mainnet.id] as number[],
34
- testnet: false,
35
- },
36
- MFAM: {
37
- id: "MFAM",
38
- symbol: "MFAM",
39
- name: "MFAM",
40
- chainIds: [moonriver.id] as number[],
26
+ // Moonbeam (1284) dropped with the sunset (MOO-551): the chain is halted, so
27
+ // it can no longer serve voting-power reads. MFAM/Moonriver is gone for the
28
+ // same reason — Apollo governance ended with the chain.
29
+ chainIds: [base.id, optimism.id, mainnet.id] as number[],
41
30
  testnet: false,
42
31
  },
43
32
  });
@@ -15,18 +15,6 @@ import {
15
15
  createEnvironment as createBaseEnvironment,
16
16
  } from "./definitions/base/environment.js";
17
17
 
18
- import {
19
- createEnvironment as createMoonbeamEnvironment,
20
- type markets as moonbeamMarkets,
21
- type tokens as moonbeamTokens,
22
- } from "./definitions/moonbeam/environment.js";
23
-
24
- import {
25
- createEnvironment as createMoonriverEnvironment,
26
- type markets as moonriverMarkets,
27
- type tokens as moonriverTokens,
28
- } from "./definitions/moonriver/environment.js";
29
-
30
18
  import {
31
19
  createEnvironment as createOptimismEnvironment,
32
20
  type markets as optimismMarkets,
@@ -60,7 +48,7 @@ import {
60
48
  type tokens as polygonTokens,
61
49
  } from "./definitions/polygon/environment.js";
62
50
 
63
- import { moonbeam, moonriver, optimism } from "viem/chains";
51
+ import { optimism } from "viem/chains";
64
52
  import type { Environment, TokenConfig } from "./types/config.js";
65
53
 
66
54
  export {
@@ -69,8 +57,6 @@ export {
69
57
  base,
70
58
  ethereum,
71
59
  GovernanceTokensConfig,
72
- moonbeam,
73
- moonriver,
74
60
  optimism,
75
61
  polygon,
76
62
  supportedChains,
@@ -92,8 +78,6 @@ export type {
92
78
  const supportedChainsIds: { [id: number]: keyof typeof supportedChains } = {
93
79
  [base.id]: "base",
94
80
  [optimism.id]: "optimism",
95
- [moonriver.id]: "moonriver",
96
- [moonbeam.id]: "moonbeam",
97
81
  [ethereum.id]: "ethereum",
98
82
  [avalanche.id]: "avalanche",
99
83
  [arbitrum.id]: "arbitrum",
@@ -103,8 +87,6 @@ const supportedChainsIds: { [id: number]: keyof typeof supportedChains } = {
103
87
  const supportedChains = {
104
88
  base: base,
105
89
  optimism: optimism,
106
- moonriver: moonriver,
107
- moonbeam: moonbeam,
108
90
  ethereum: ethereum,
109
91
  avalanche: avalanche,
110
92
  arbitrum: arbitrum,
@@ -115,10 +97,6 @@ type SupportedChains = Prettify<keyof typeof supportedChains>;
115
97
  type SupportedChainsIds = Prettify<keyof typeof supportedChainsIds>;
116
98
 
117
99
  export type BaseEnvironment = ReturnType<typeof createBaseEnvironment>;
118
- export type MoonbeamEnvironment = ReturnType<typeof createMoonbeamEnvironment>;
119
- export type MoonriverEnvironment = ReturnType<
120
- typeof createMoonriverEnvironment
121
- >;
122
100
  export type OptimismEnvironment = ReturnType<typeof createOptimismEnvironment>;
123
101
  export type EthereumEnvironment = ReturnType<typeof createEthereumEnvironment>;
124
102
  export type AvalancheEnvironment = ReturnType<
@@ -129,21 +107,17 @@ export type PolygonEnvironment = ReturnType<typeof createPolygonEnvironment>;
129
107
 
130
108
  export type GetEnvironment<chain> = chain extends typeof base
131
109
  ? BaseEnvironment
132
- : chain extends typeof moonbeam
133
- ? MoonbeamEnvironment
134
- : chain extends typeof moonriver
135
- ? MoonriverEnvironment
136
- : chain extends typeof optimism
137
- ? OptimismEnvironment
138
- : chain extends typeof ethereum
139
- ? EthereumEnvironment
140
- : chain extends typeof avalanche
141
- ? AvalancheEnvironment
142
- : chain extends typeof arbitrum
143
- ? ArbitrumEnvironment
144
- : chain extends typeof polygon
145
- ? PolygonEnvironment
146
- : undefined;
110
+ : chain extends typeof optimism
111
+ ? OptimismEnvironment
112
+ : chain extends typeof ethereum
113
+ ? EthereumEnvironment
114
+ : chain extends typeof avalanche
115
+ ? AvalancheEnvironment
116
+ : chain extends typeof arbitrum
117
+ ? ArbitrumEnvironment
118
+ : chain extends typeof polygon
119
+ ? PolygonEnvironment
120
+ : undefined;
147
121
 
148
122
  export const createEnvironment = <const chain extends Chain>(config: {
149
123
  chain: chain;
@@ -152,12 +126,6 @@ export const createEnvironment = <const chain extends Chain>(config: {
152
126
  switch (config.chain.id) {
153
127
  case base.id:
154
128
  return createBaseEnvironment(config.rpcUrls) as GetEnvironment<chain>;
155
- case moonbeam.id:
156
- return createMoonbeamEnvironment(config.rpcUrls) as GetEnvironment<chain>;
157
- case moonriver.id:
158
- return createMoonriverEnvironment(
159
- config.rpcUrls,
160
- ) as GetEnvironment<chain>;
161
129
  case optimism.id:
162
130
  return createOptimismEnvironment(config.rpcUrls) as GetEnvironment<chain>;
163
131
  case ethereum.id:
@@ -177,8 +145,6 @@ export const createEnvironment = <const chain extends Chain>(config: {
177
145
 
178
146
  export const publicEnvironments = {
179
147
  base: createBaseEnvironment(),
180
- moonbeam: createMoonbeamEnvironment(),
181
- moonriver: createMoonriverEnvironment(),
182
148
  optimism: createOptimismEnvironment(),
183
149
  ethereum: createEthereumEnvironment(),
184
150
  avalanche: createAvalancheEnvironment(),
@@ -188,33 +154,25 @@ export const publicEnvironments = {
188
154
 
189
155
  export type TokensType<environment> = environment extends BaseEnvironment
190
156
  ? typeof baseTokens
191
- : environment extends MoonbeamEnvironment
192
- ? typeof moonbeamTokens
193
- : environment extends MoonriverEnvironment
194
- ? typeof moonriverTokens
195
- : environment extends OptimismEnvironment
196
- ? typeof optimismTokens
197
- : environment extends EthereumEnvironment
198
- ? typeof ethereumTokens
199
- : environment extends AvalancheEnvironment
200
- ? typeof avalancheTokens
201
- : environment extends ArbitrumEnvironment
202
- ? typeof arbitrumTokens
203
- : environment extends PolygonEnvironment
204
- ? typeof polygonTokens
205
- : undefined;
157
+ : environment extends OptimismEnvironment
158
+ ? typeof optimismTokens
159
+ : environment extends EthereumEnvironment
160
+ ? typeof ethereumTokens
161
+ : environment extends AvalancheEnvironment
162
+ ? typeof avalancheTokens
163
+ : environment extends ArbitrumEnvironment
164
+ ? typeof arbitrumTokens
165
+ : environment extends PolygonEnvironment
166
+ ? typeof polygonTokens
167
+ : undefined;
206
168
 
207
169
  export type MarketsType<environment> = environment extends BaseEnvironment
208
170
  ? typeof baseMarkets
209
- : environment extends MoonbeamEnvironment
210
- ? typeof moonbeamMarkets
211
- : environment extends MoonriverEnvironment
212
- ? typeof moonriverMarkets
213
- : environment extends OptimismEnvironment
214
- ? typeof optimismMarkets
215
- : environment extends EthereumEnvironment
216
- ? typeof ethereumMarkets
217
- : undefined;
171
+ : environment extends OptimismEnvironment
172
+ ? typeof optimismMarkets
173
+ : environment extends EthereumEnvironment
174
+ ? typeof ethereumMarkets
175
+ : undefined;
218
176
 
219
177
  export type VaultsType<environment> = environment extends BaseEnvironment
220
178
  ? typeof baseVaults
@@ -175,6 +175,20 @@ export type CustomConfigType = {
175
175
  };
176
176
  governance?: {
177
177
  token: GovernanceToken;
178
+ /**
179
+ * Satellite chains this environment acts as the governance home for.
180
+ *
181
+ * Consumed as a `homeEnvironment` membership test — a satellite prices its
182
+ * native-token rewards through whichever environment claims its chainId.
183
+ * Only Moonbeam ever claimed any, so since the sunset (MOO-551) every
184
+ * surviving environment ships `[]` and each chain resolves to itself via
185
+ * the call sites' `|| environment` fallback. The
186
+ * `ethereum/environment.test.ts` invariant keeps it that way.
187
+ *
188
+ * Kept as an extension point for a future hub that genuinely fronts other
189
+ * chains; collapsing the lookups and retiring the field is a separate
190
+ * cleanup, since it would change `Environment["custom"]`.
191
+ */
178
192
  chainIds: number[];
179
193
  proposalIdOffset?: number;
180
194
  snapshotEnsName?: string;
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '0.20.5'
1
+ export const version = '0.22.0'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@moonwell-fi/moonwell-sdk",
3
3
  "description": "TypeScript Interface for Moonwell",
4
- "version": "0.20.5",
4
+ "version": "0.22.0",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
@@ -76,7 +76,7 @@
76
76
  "@rhinestone/module-sdk": "0.2.7",
77
77
  "@types/lodash": "^4.17.9",
78
78
  "@types/node": "^22.13.10",
79
- "axios": "^1.7.7",
79
+ "axios": "^1.18.1",
80
80
  "dayjs": "^1.11.20",
81
81
  "lodash": "^4.17.21",
82
82
  "viem": "^2.26.2"
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.contracts = void 0;
4
- const config_js_1 = require("../../types/config.js");
5
- const tokens_js_1 = require("./tokens.js");
6
- exports.contracts = (0, config_js_1.createContractsConfig)({
7
- tokens: tokens_js_1.tokens,
8
- contracts: {
9
- governanceToken: "WELL",
10
- stakingToken: "stkWELL",
11
- wrappedNativeToken: "WGLMR",
12
- tokenSale: "0x933fCDf708481c57E9FD82f6BAA084f42e98B60e",
13
- comptroller: "0x8E00D5e02E65A19337Cdba98bbA9F84d4186a180",
14
- maximillion: "0xe5Ef9310cC7E3437bAD83466675f24FD62A380c3",
15
- views: "0xe76C8B8706faC85a8Fbdcac3C42e3E7823c73994",
16
- oracle: "0xED301cd3EB27217BDB05C4E9B820a8A3c8B665f9",
17
- governor: "0xfc4DFB17101A12C5CEc5eeDd8E92B5b16557666d",
18
- multichainGovernor: "0x9A8464C4C11CeA17e191653Deb7CdC1bE30F1Af4",
19
- voteCollector: "0xB8A798a50a7274A13449B7f2Dd6Df22faF2d40E5",
20
- },
21
- });
22
- //# sourceMappingURL=contracts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../environments/definitions/moonbeam/contracts.ts"],"names":[],"mappings":";;;AAAA,qDAA8D;AAC9D,2CAAqC;AAExB,QAAA,SAAS,GAAG,IAAA,iCAAqB,EAAC;IAC7C,MAAM,EAAN,kBAAM;IACN,SAAS,EAAE;QACT,eAAe,EAAE,MAAM;QACvB,YAAY,EAAE,SAAS;QACvB,kBAAkB,EAAE,OAAO;QAC3B,SAAS,EAAE,4CAA4C;QACvD,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE,4CAA4C;QACzD,KAAK,EAAE,4CAA4C;QACnD,MAAM,EAAE,4CAA4C;QACpD,QAAQ,EAAE,4CAA4C;QACtD,kBAAkB,EAAE,4CAA4C;QAChE,aAAa,EAAE,4CAA4C;KAC5D;CACF,CAAC,CAAC"}
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.markets = void 0;
4
- const config_js_1 = require("../../types/config.js");
5
- const tokens_js_1 = require("./tokens.js");
6
- exports.markets = (0, config_js_1.createMarketConfig)({
7
- tokens: tokens_js_1.tokens,
8
- markets: {
9
- MOONWELL_GLMR: {
10
- marketToken: "MOONWELL_GLMR",
11
- underlyingToken: "GLMR",
12
- },
13
- MOONWELL_xcDOT: {
14
- marketToken: "MOONWELL_xcDOT",
15
- underlyingToken: "xcDOT",
16
- badDebt: true,
17
- },
18
- MOONWELL_FRAX: {
19
- marketToken: "MOONWELL_FRAX",
20
- underlyingToken: "FRAX",
21
- badDebt: true,
22
- },
23
- MOONWELL_xcUSDC: {
24
- marketToken: "MOONWELL_xcUSDC",
25
- underlyingToken: "xcUSDC",
26
- },
27
- MOONWELL_xcUSDT: {
28
- marketToken: "MOONWELL_xcUSDT",
29
- underlyingToken: "xcUSDT",
30
- },
31
- MOONWELL_ETH_NOMAD: {
32
- marketToken: "MOONWELL_ETH_NOMAD",
33
- underlyingToken: "ETH_NOMAD",
34
- deprecated: true,
35
- },
36
- MOONWELL_BTC_NOMAD: {
37
- marketToken: "MOONWELL_BTC_NOMAD",
38
- underlyingToken: "BTC_NOMAD",
39
- deprecated: true,
40
- },
41
- MOONWELL_USDC_NOMAD: {
42
- marketToken: "MOONWELL_USDC_NOMAD",
43
- underlyingToken: "USDC_NOMAD",
44
- deprecated: true,
45
- },
46
- MOONWELL_ETH_WORMHOLE: {
47
- marketToken: "MOONWELL_ETH_WORMHOLE",
48
- underlyingToken: "ETH_WORMHOLE",
49
- },
50
- MOONWELL_BTC_WORMHOLE: {
51
- marketToken: "MOONWELL_BTC_WORMHOLE",
52
- underlyingToken: "BTC_WORMHOLE",
53
- },
54
- MOONWELL_USDC_WORMHOLE: {
55
- marketToken: "MOONWELL_USDC_WORMHOLE",
56
- underlyingToken: "USDC_WORMHOLE",
57
- },
58
- MOONWELL_BUSD_WORMHOLE: {
59
- marketToken: "MOONWELL_BUSD_WORMHOLE",
60
- underlyingToken: "BUSD_WORMHOLE",
61
- deprecated: true,
62
- },
63
- },
64
- });
65
- //# sourceMappingURL=core-markets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-markets.js","sourceRoot":"","sources":["../../../../environments/definitions/moonbeam/core-markets.ts"],"names":[],"mappings":";;;AAAA,qDAA2D;AAC3D,2CAAqC;AAExB,QAAA,OAAO,GAAG,IAAA,8BAAkB,EAAC;IACxC,MAAM,EAAN,kBAAM;IACN,OAAO,EAAE;QACP,aAAa,EAAE;YACb,WAAW,EAAE,eAAe;YAC5B,eAAe,EAAE,MAAM;SACxB;QACD,cAAc,EAAE;YACd,WAAW,EAAE,gBAAgB;YAC7B,eAAe,EAAE,OAAO;YACxB,OAAO,EAAE,IAAI;SACd;QACD,aAAa,EAAE;YACb,WAAW,EAAE,eAAe;YAC5B,eAAe,EAAE,MAAM;YACvB,OAAO,EAAE,IAAI;SACd;QACD,eAAe,EAAE;YACf,WAAW,EAAE,iBAAiB;YAC9B,eAAe,EAAE,QAAQ;SAC1B;QACD,eAAe,EAAE;YACf,WAAW,EAAE,iBAAiB;YAC9B,eAAe,EAAE,QAAQ;SAC1B;QACD,kBAAkB,EAAE;YAClB,WAAW,EAAE,oBAAoB;YACjC,eAAe,EAAE,WAAW;YAC5B,UAAU,EAAE,IAAI;SACjB;QACD,kBAAkB,EAAE;YAClB,WAAW,EAAE,oBAAoB;YACjC,eAAe,EAAE,WAAW;YAC5B,UAAU,EAAE,IAAI;SACjB;QACD,mBAAmB,EAAE;YACnB,WAAW,EAAE,qBAAqB;YAClC,eAAe,EAAE,YAAY;YAC7B,UAAU,EAAE,IAAI;SACjB;QACD,qBAAqB,EAAE;YACrB,WAAW,EAAE,uBAAuB;YACpC,eAAe,EAAE,cAAc;SAChC;QACD,qBAAqB,EAAE;YACrB,WAAW,EAAE,uBAAuB;YACpC,eAAe,EAAE,cAAc;SAChC;QACD,sBAAsB,EAAE;YACtB,WAAW,EAAE,wBAAwB;YACrC,eAAe,EAAE,eAAe;SACjC;QACD,sBAAsB,EAAE;YACtB,WAAW,EAAE,wBAAwB;YACrC,eAAe,EAAE,eAAe;YAChC,UAAU,EAAE,IAAI;SACjB;KACF;CACF,CAAC,CAAC"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.custom = void 0;
4
- const chains_1 = require("viem/chains");
5
- const config_js_1 = require("../../types/config.js");
6
- exports.custom = (0, config_js_1.createCustomConfig)({
7
- governance: {
8
- token: "WELL",
9
- chainIds: [chains_1.base.id, chains_1.optimism.id],
10
- proposalIdOffset: 79,
11
- snapshotEnsName: "moonwell-governance.eth",
12
- },
13
- wormhole: {
14
- chainId: 16,
15
- tokenBridge: { address: "0xB1731c586ca89a23809861c6103F0b96B3F57D92" },
16
- },
17
- socket: {
18
- gateway: { address: "0x3a23F943181408EAC424116Af7b7790c94Cb97a5" },
19
- },
20
- xWELL: {
21
- bridgeAdapter: { address: "0xb84543e036054E2cD5394A9D99fa701Eef666df4" },
22
- },
23
- });
24
- //# sourceMappingURL=custom.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom.js","sourceRoot":"","sources":["../../../../environments/definitions/moonbeam/custom.ts"],"names":[],"mappings":";;;AAAA,wCAA6C;AAC7C,qDAA2D;AAE9C,QAAA,MAAM,GAAG,IAAA,8BAAkB,EAAC;IACvC,UAAU,EAAE;QACV,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,CAAC,aAAI,CAAC,EAAE,EAAE,iBAAQ,CAAC,EAAE,CAAC;QAChC,gBAAgB,EAAE,EAAE;QACpB,eAAe,EAAE,yBAAyB;KAC3C;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE,OAAO,EAAE,4CAA4C,EAAE;KACvE;IACD,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,OAAO,EAAE,4CAA4C,EAAE;KACnE;IACD,KAAK,EAAE;QACL,aAAa,EAAE,EAAE,OAAO,EAAE,4CAA4C,EAAE;KACzE;CACF,CAAC,CAAC"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tokens = exports.markets = exports.createEnvironment = exports.moonbeam = void 0;
4
- const viem_1 = require("viem");
5
- const chains_1 = require("viem/chains");
6
- Object.defineProperty(exports, "moonbeam", { enumerable: true, get: function () { return chains_1.moonbeam; } });
7
- const lunar_indexer_helpers_js_1 = require("../../../common/lunar-indexer-helpers.js");
8
- const config_js_1 = require("../../types/config.js");
9
- const contracts_js_1 = require("./contracts.js");
10
- const core_markets_js_1 = require("./core-markets.js");
11
- Object.defineProperty(exports, "markets", { enumerable: true, get: function () { return core_markets_js_1.markets; } });
12
- const custom_js_1 = require("./custom.js");
13
- const tokens_js_1 = require("./tokens.js");
14
- Object.defineProperty(exports, "tokens", { enumerable: true, get: function () { return tokens_js_1.tokens; } });
15
- const createEnvironment = (rpcUrls, governanceIndexerUrl, lunarIndexerUrl) => (0, config_js_1.createEnvironmentConfig)({
16
- key: "moonbeam",
17
- name: "Moonbeam",
18
- chain: {
19
- ...chains_1.moonbeam,
20
- rpcUrls: {
21
- default: { http: rpcUrls || ["https://rpc.moonwell.fi/main/evm/1284"] },
22
- },
23
- },
24
- transport: rpcUrls
25
- ? (0, viem_1.fallback)(rpcUrls.map((url) => (0, viem_1.http)(url)))
26
- : (0, viem_1.http)("https://rpc.moonwell.fi/main/evm/1284"),
27
- lunarIndexerUrl: lunarIndexerUrl || lunar_indexer_helpers_js_1.DEFAULT_LUNAR_INDEXER_URL,
28
- governanceIndexerUrl: governanceIndexerUrl ||
29
- "https://lunar-services-worker.moonwell.workers.dev",
30
- tokens: tokens_js_1.tokens,
31
- markets: core_markets_js_1.markets,
32
- vaults: {},
33
- morphoMarkets: {},
34
- contracts: contracts_js_1.contracts,
35
- custom: custom_js_1.custom,
36
- });
37
- exports.createEnvironment = createEnvironment;
38
- //# sourceMappingURL=environment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../environments/definitions/moonbeam/environment.ts"],"names":[],"mappings":";;;AAAA,+BAAsC;AACtC,wCAAuC;AAqC9B,yFArCA,iBAAQ,OAqCA;AApCjB,uFAAqF;AACrF,qDAAgE;AAChE,iDAA2C;AAC3C,uDAA4C;AAiCN,wFAjC7B,yBAAO,OAiC6B;AAhC7C,2CAAqC;AACrC,2CAAqC;AA+BU,uFA/BtC,kBAAM,OA+BsC;AA7BrD,MAAM,iBAAiB,GAAG,CACxB,OAAkB,EAClB,oBAA6B,EAC7B,eAAwB,EACxB,EAAE,CACF,IAAA,mCAAuB,EAAC;IACtB,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE;QACL,GAAG,iBAAQ;QACX,OAAO,EAAE;YACP,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC,uCAAuC,CAAC,EAAE;SACxE;KACF;IACD,SAAS,EAAE,OAAO;QAChB,CAAC,CAAC,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,WAAI,EAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,IAAA,WAAI,EAAC,uCAAuC,CAAC;IACjD,eAAe,EAAE,eAAe,IAAI,oDAAyB;IAC7D,oBAAoB,EAClB,oBAAoB;QACpB,oDAAoD;IACtD,MAAM,EAAN,kBAAM;IACN,OAAO,EAAP,yBAAO;IACP,MAAM,EAAE,EAAE;IACV,aAAa,EAAE,EAAE;IACjB,SAAS,EAAT,wBAAS;IACT,MAAM,EAAN,kBAAM;CACP,CAAC,CAAC;AAEc,8CAAiB"}