@reserve-protocol/dtf-sdk 0.1.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 (234) hide show
  1. package/README.md +134 -0
  2. package/dist/abi/deployer.d.ts +281 -0
  3. package/dist/abi/deployer.d.ts.map +1 -0
  4. package/dist/abi/deployer.js +178 -0
  5. package/dist/abi/deployer.js.map +1 -0
  6. package/dist/abi/erc20.d.ts +73 -0
  7. package/dist/abi/erc20.d.ts.map +1 -0
  8. package/dist/abi/erc20.js +58 -0
  9. package/dist/abi/erc20.js.map +1 -0
  10. package/dist/abi/folio.d.ts +1950 -0
  11. package/dist/abi/folio.d.ts.map +1 -0
  12. package/dist/abi/folio.js +1430 -0
  13. package/dist/abi/folio.js.map +1 -0
  14. package/dist/abi/governance-deployer.d.ts +130 -0
  15. package/dist/abi/governance-deployer.d.ts.map +1 -0
  16. package/dist/abi/governance-deployer.js +77 -0
  17. package/dist/abi/governance-deployer.js.map +1 -0
  18. package/dist/abi/governor.d.ts +1276 -0
  19. package/dist/abi/governor.d.ts.map +1 -0
  20. package/dist/abi/governor.js +1661 -0
  21. package/dist/abi/governor.js.map +1 -0
  22. package/dist/abi/proxy-admin.d.ts +49 -0
  23. package/dist/abi/proxy-admin.d.ts.map +1 -0
  24. package/dist/abi/proxy-admin.js +42 -0
  25. package/dist/abi/proxy-admin.js.map +1 -0
  26. package/dist/abi/spells.d.ts +67 -0
  27. package/dist/abi/spells.d.ts.map +1 -0
  28. package/dist/abi/spells.js +61 -0
  29. package/dist/abi/spells.js.map +1 -0
  30. package/dist/abi/timelock.d.ts +673 -0
  31. package/dist/abi/timelock.d.ts.map +1 -0
  32. package/dist/abi/timelock.js +469 -0
  33. package/dist/abi/timelock.js.map +1 -0
  34. package/dist/abi/vote-lock.d.ts +164 -0
  35. package/dist/abi/vote-lock.d.ts.map +1 -0
  36. package/dist/abi/vote-lock.js +116 -0
  37. package/dist/abi/vote-lock.js.map +1 -0
  38. package/dist/clients/chains.d.ts +5 -0
  39. package/dist/clients/chains.d.ts.map +1 -0
  40. package/dist/clients/chains.js +23 -0
  41. package/dist/clients/chains.js.map +1 -0
  42. package/dist/clients/create-clients.d.ts +14 -0
  43. package/dist/clients/create-clients.d.ts.map +1 -0
  44. package/dist/clients/create-clients.js +32 -0
  45. package/dist/clients/create-clients.js.map +1 -0
  46. package/dist/clients/create-price-client.d.ts +7 -0
  47. package/dist/clients/create-price-client.d.ts.map +1 -0
  48. package/dist/clients/create-price-client.js +15 -0
  49. package/dist/clients/create-price-client.js.map +1 -0
  50. package/dist/constants.d.ts +35 -0
  51. package/dist/constants.d.ts.map +1 -0
  52. package/dist/constants.js +100 -0
  53. package/dist/constants.js.map +1 -0
  54. package/dist/deploy/build-deploy.d.ts +7 -0
  55. package/dist/deploy/build-deploy.d.ts.map +1 -0
  56. package/dist/deploy/build-deploy.js +84 -0
  57. package/dist/deploy/build-deploy.js.map +1 -0
  58. package/dist/deploy/extract-deployed-address.d.ts +8 -0
  59. package/dist/deploy/extract-deployed-address.d.ts.map +1 -0
  60. package/dist/deploy/extract-deployed-address.js +36 -0
  61. package/dist/deploy/extract-deployed-address.js.map +1 -0
  62. package/dist/deploy/permissionless-defaults.d.ts +35 -0
  63. package/dist/deploy/permissionless-defaults.d.ts.map +1 -0
  64. package/dist/deploy/permissionless-defaults.js +76 -0
  65. package/dist/deploy/permissionless-defaults.js.map +1 -0
  66. package/dist/deploy/token-registry.d.ts +9 -0
  67. package/dist/deploy/token-registry.d.ts.map +1 -0
  68. package/dist/deploy/token-registry.js +68 -0
  69. package/dist/deploy/token-registry.js.map +1 -0
  70. package/dist/deploy/zap-deploy.d.ts +4 -0
  71. package/dist/deploy/zap-deploy.d.ts.map +1 -0
  72. package/dist/deploy/zap-deploy.js +50 -0
  73. package/dist/deploy/zap-deploy.js.map +1 -0
  74. package/dist/dtf/fees.d.ts +10 -0
  75. package/dist/dtf/fees.d.ts.map +1 -0
  76. package/dist/dtf/fees.js +103 -0
  77. package/dist/dtf/fees.js.map +1 -0
  78. package/dist/dtf/fetch-analytics.d.ts +27 -0
  79. package/dist/dtf/fetch-analytics.d.ts.map +1 -0
  80. package/dist/dtf/fetch-analytics.js +63 -0
  81. package/dist/dtf/fetch-analytics.js.map +1 -0
  82. package/dist/dtf/fetch-basket.d.ts +16 -0
  83. package/dist/dtf/fetch-basket.d.ts.map +1 -0
  84. package/dist/dtf/fetch-basket.js +32 -0
  85. package/dist/dtf/fetch-basket.js.map +1 -0
  86. package/dist/dtf/fetch-discover.d.ts +10 -0
  87. package/dist/dtf/fetch-discover.d.ts.map +1 -0
  88. package/dist/dtf/fetch-discover.js +17 -0
  89. package/dist/dtf/fetch-discover.js.map +1 -0
  90. package/dist/dtf/fetch-dtf.d.ts +25 -0
  91. package/dist/dtf/fetch-dtf.d.ts.map +1 -0
  92. package/dist/dtf/fetch-dtf.js +39 -0
  93. package/dist/dtf/fetch-dtf.js.map +1 -0
  94. package/dist/dtf/mint.d.ts +9 -0
  95. package/dist/dtf/mint.d.ts.map +1 -0
  96. package/dist/dtf/mint.js +82 -0
  97. package/dist/dtf/mint.js.map +1 -0
  98. package/dist/dtf/read-basket.d.ts +4 -0
  99. package/dist/dtf/read-basket.d.ts.map +1 -0
  100. package/dist/dtf/read-basket.js +20 -0
  101. package/dist/dtf/read-basket.js.map +1 -0
  102. package/dist/dtf/read-config.d.ts +4 -0
  103. package/dist/dtf/read-config.d.ts.map +1 -0
  104. package/dist/dtf/read-config.js +80 -0
  105. package/dist/dtf/read-config.js.map +1 -0
  106. package/dist/dtf/read-dtf.d.ts +6 -0
  107. package/dist/dtf/read-dtf.d.ts.map +1 -0
  108. package/dist/dtf/read-dtf.js +32 -0
  109. package/dist/dtf/read-dtf.js.map +1 -0
  110. package/dist/dtf/read-rebalance-control.d.ts +4 -0
  111. package/dist/dtf/read-rebalance-control.d.ts.map +1 -0
  112. package/dist/dtf/read-rebalance-control.js +14 -0
  113. package/dist/dtf/read-rebalance-control.js.map +1 -0
  114. package/dist/dtf/read-roles.d.ts +4 -0
  115. package/dist/dtf/read-roles.d.ts.map +1 -0
  116. package/dist/dtf/read-roles.js +29 -0
  117. package/dist/dtf/read-roles.js.map +1 -0
  118. package/dist/dtf/read-version.d.ts +3 -0
  119. package/dist/dtf/read-version.d.ts.map +1 -0
  120. package/dist/dtf/read-version.js +9 -0
  121. package/dist/dtf/read-version.js.map +1 -0
  122. package/dist/dtf/redeem.d.ts +5 -0
  123. package/dist/dtf/redeem.d.ts.map +1 -0
  124. package/dist/dtf/redeem.js +27 -0
  125. package/dist/dtf/redeem.js.map +1 -0
  126. package/dist/governance/build-proposal.d.ts +11 -0
  127. package/dist/governance/build-proposal.d.ts.map +1 -0
  128. package/dist/governance/build-proposal.js +78 -0
  129. package/dist/governance/build-proposal.js.map +1 -0
  130. package/dist/governance/build-settings-calldata.d.ts +39 -0
  131. package/dist/governance/build-settings-calldata.d.ts.map +1 -0
  132. package/dist/governance/build-settings-calldata.js +145 -0
  133. package/dist/governance/build-settings-calldata.js.map +1 -0
  134. package/dist/governance/compute-proposal-state.d.ts +18 -0
  135. package/dist/governance/compute-proposal-state.d.ts.map +1 -0
  136. package/dist/governance/compute-proposal-state.js +87 -0
  137. package/dist/governance/compute-proposal-state.js.map +1 -0
  138. package/dist/governance/decode-proposal.d.ts +22 -0
  139. package/dist/governance/decode-proposal.d.ts.map +1 -0
  140. package/dist/governance/decode-proposal.js +164 -0
  141. package/dist/governance/decode-proposal.js.map +1 -0
  142. package/dist/governance/fetch-proposals.d.ts +41 -0
  143. package/dist/governance/fetch-proposals.d.ts.map +1 -0
  144. package/dist/governance/fetch-proposals.js +173 -0
  145. package/dist/governance/fetch-proposals.js.map +1 -0
  146. package/dist/governance/read-governance.d.ts +7 -0
  147. package/dist/governance/read-governance.d.ts.map +1 -0
  148. package/dist/governance/read-governance.js +97 -0
  149. package/dist/governance/read-governance.js.map +1 -0
  150. package/dist/governance/read-proposals.d.ts +11 -0
  151. package/dist/governance/read-proposals.d.ts.map +1 -0
  152. package/dist/governance/read-proposals.js +104 -0
  153. package/dist/governance/read-proposals.js.map +1 -0
  154. package/dist/governance/read-voting-power.d.ts +8 -0
  155. package/dist/governance/read-voting-power.d.ts.map +1 -0
  156. package/dist/governance/read-voting-power.js +25 -0
  157. package/dist/governance/read-voting-power.js.map +1 -0
  158. package/dist/index.d.ts +57 -0
  159. package/dist/index.d.ts.map +1 -0
  160. package/dist/index.js +73 -0
  161. package/dist/index.js.map +1 -0
  162. package/dist/prices/chainlink.d.ts +8 -0
  163. package/dist/prices/chainlink.d.ts.map +1 -0
  164. package/dist/prices/chainlink.js +116 -0
  165. package/dist/prices/chainlink.js.map +1 -0
  166. package/dist/prices/reserve-api.d.ts +7 -0
  167. package/dist/prices/reserve-api.d.ts.map +1 -0
  168. package/dist/prices/reserve-api.js +47 -0
  169. package/dist/prices/reserve-api.js.map +1 -0
  170. package/dist/rebalance/build-auction.d.ts +25 -0
  171. package/dist/rebalance/build-auction.d.ts.map +1 -0
  172. package/dist/rebalance/build-auction.js +73 -0
  173. package/dist/rebalance/build-auction.js.map +1 -0
  174. package/dist/rebalance/build-rebalance.d.ts +22 -0
  175. package/dist/rebalance/build-rebalance.d.ts.map +1 -0
  176. package/dist/rebalance/build-rebalance.js +30 -0
  177. package/dist/rebalance/build-rebalance.js.map +1 -0
  178. package/dist/rebalance/read-auction.d.ts +4 -0
  179. package/dist/rebalance/read-auction.d.ts.map +1 -0
  180. package/dist/rebalance/read-auction.js +31 -0
  181. package/dist/rebalance/read-auction.js.map +1 -0
  182. package/dist/rebalance/read-rebalance.d.ts +4 -0
  183. package/dist/rebalance/read-rebalance.d.ts.map +1 -0
  184. package/dist/rebalance/read-rebalance.js +50 -0
  185. package/dist/rebalance/read-rebalance.js.map +1 -0
  186. package/dist/rebalance/transform.d.ts +22 -0
  187. package/dist/rebalance/transform.d.ts.map +1 -0
  188. package/dist/rebalance/transform.js +47 -0
  189. package/dist/rebalance/transform.js.map +1 -0
  190. package/dist/revenue/compute-revenue.d.ts +45 -0
  191. package/dist/revenue/compute-revenue.d.ts.map +1 -0
  192. package/dist/revenue/compute-revenue.js +216 -0
  193. package/dist/revenue/compute-revenue.js.map +1 -0
  194. package/dist/revenue/fetch-revenue.d.ts +8 -0
  195. package/dist/revenue/fetch-revenue.d.ts.map +1 -0
  196. package/dist/revenue/fetch-revenue.js +182 -0
  197. package/dist/revenue/fetch-revenue.js.map +1 -0
  198. package/dist/revenue/fetch-rsr-burns.d.ts +9 -0
  199. package/dist/revenue/fetch-rsr-burns.d.ts.map +1 -0
  200. package/dist/revenue/fetch-rsr-burns.js +106 -0
  201. package/dist/revenue/fetch-rsr-burns.js.map +1 -0
  202. package/dist/types.d.ts +546 -0
  203. package/dist/types.d.ts.map +1 -0
  204. package/dist/types.js +2 -0
  205. package/dist/types.js.map +1 -0
  206. package/dist/utils/assert.d.ts +2 -0
  207. package/dist/utils/assert.d.ts.map +1 -0
  208. package/dist/utils/assert.js +5 -0
  209. package/dist/utils/assert.js.map +1 -0
  210. package/dist/utils/fetch-token-metadata.d.ts +7 -0
  211. package/dist/utils/fetch-token-metadata.d.ts.map +1 -0
  212. package/dist/utils/fetch-token-metadata.js +29 -0
  213. package/dist/utils/fetch-token-metadata.js.map +1 -0
  214. package/dist/utils/fetch-with-retry.d.ts +7 -0
  215. package/dist/utils/fetch-with-retry.d.ts.map +1 -0
  216. package/dist/utils/fetch-with-retry.js +38 -0
  217. package/dist/utils/fetch-with-retry.js.map +1 -0
  218. package/dist/utils/query-subgraph.d.ts +7 -0
  219. package/dist/utils/query-subgraph.d.ts.map +1 -0
  220. package/dist/utils/query-subgraph.js +25 -0
  221. package/dist/utils/query-subgraph.js.map +1 -0
  222. package/dist/utils/validate-price-control.d.ts +3 -0
  223. package/dist/utils/validate-price-control.d.ts.map +1 -0
  224. package/dist/utils/validate-price-control.js +6 -0
  225. package/dist/utils/validate-price-control.js.map +1 -0
  226. package/dist/vote-lock/build-vote-lock.d.ts +10 -0
  227. package/dist/vote-lock/build-vote-lock.d.ts.map +1 -0
  228. package/dist/vote-lock/build-vote-lock.js +73 -0
  229. package/dist/vote-lock/build-vote-lock.js.map +1 -0
  230. package/dist/vote-lock/read-vote-lock.d.ts +7 -0
  231. package/dist/vote-lock/read-vote-lock.d.ts.map +1 -0
  232. package/dist/vote-lock/read-vote-lock.js +64 -0
  233. package/dist/vote-lock/read-vote-lock.js.map +1 -0
  234. package/package.json +28 -0
@@ -0,0 +1,546 @@
1
+ import type { Address, Hex } from 'viem';
2
+ export type SupportedChainId = 1 | 56 | 8453;
3
+ export type PriceControl = 0 | 1 | 2;
4
+ export type RebalanceControl = {
5
+ weightControl: boolean;
6
+ priceControl: PriceControl;
7
+ };
8
+ export type BasketToken = {
9
+ address: Address;
10
+ symbol: string;
11
+ decimals: number;
12
+ };
13
+ export type GovernanceConfig = {
14
+ address: Address;
15
+ timelockAddress: Address;
16
+ votingDelay: number;
17
+ votingPeriod: number;
18
+ executionDelay: number;
19
+ };
20
+ export type DtfOnchainConfig = {
21
+ tokens: BasketToken[];
22
+ auctionLength: number;
23
+ ownerGovernance: GovernanceConfig | null;
24
+ tradingGovernance: GovernanceConfig | null;
25
+ stTokenGovernance: GovernanceConfig | null;
26
+ stTokenAddress: Address | null;
27
+ mandate: string;
28
+ tvlFee: string;
29
+ mintingFee: string;
30
+ auctionLaunchers: Address[];
31
+ brandManagers: Address[];
32
+ };
33
+ export type DtfRoles = {
34
+ isAdmin: boolean;
35
+ isRebalanceManager: boolean;
36
+ isAuctionLauncher: boolean;
37
+ isBrandManager: boolean;
38
+ };
39
+ export type BasketInfo = {
40
+ tokens: BasketToken[];
41
+ balances: bigint[];
42
+ totalSupply: bigint;
43
+ };
44
+ export type DtfBasketAsset = {
45
+ address: string;
46
+ symbol?: string;
47
+ amount: number;
48
+ amountRaw: string;
49
+ decimals: number;
50
+ price: number;
51
+ weight: string;
52
+ priceSource?: string;
53
+ };
54
+ export type DtfBasketResponse = {
55
+ price: number;
56
+ marketCap: number;
57
+ totalSupply: number;
58
+ basket: DtfBasketAsset[];
59
+ };
60
+ export type DtfDiscoverItem = {
61
+ address: string;
62
+ name: string;
63
+ symbol: string;
64
+ price: number;
65
+ marketCap: number;
66
+ tvl?: number;
67
+ fee: number;
68
+ basket: {
69
+ address: string;
70
+ symbol: string;
71
+ name: string;
72
+ weight: string;
73
+ }[];
74
+ performance: {
75
+ value: number;
76
+ timestamp: number;
77
+ }[];
78
+ chainId: number;
79
+ mandate?: string;
80
+ brand?: {
81
+ icon?: string;
82
+ cover?: string;
83
+ tags?: string[];
84
+ about?: string;
85
+ };
86
+ };
87
+ export type ProposalState = 'PENDING' | 'ACTIVE' | 'CANCELED' | 'DEFEATED' | 'QUORUM_NOT_REACHED' | 'SUCCEEDED' | 'QUEUED' | 'EXPIRED' | 'EXECUTED';
88
+ export type ComputedProposalState = {
89
+ /** Computed state — may differ from subgraph state */
90
+ state: ProposalState;
91
+ /** Seconds until next state transition, or null if terminal */
92
+ deadline: number | null;
93
+ /** Whether quorum was reached (for + abstain >= quorumVotes) */
94
+ quorumReached: boolean;
95
+ /** Vote percentages (0-100) */
96
+ forPercent: number;
97
+ againstPercent: number;
98
+ abstainPercent: number;
99
+ };
100
+ export type ProposalInfo = {
101
+ proposalId: bigint;
102
+ state: ProposalState;
103
+ eta: bigint;
104
+ deadline: bigint;
105
+ snapshot: bigint;
106
+ };
107
+ export type ProposalActions = {
108
+ targets: Address[];
109
+ values: bigint[];
110
+ calldatas: Hex[];
111
+ description: string;
112
+ };
113
+ export type RebalanceInfo = {
114
+ nonce: bigint;
115
+ priceControl: PriceControl;
116
+ bidsEnabled: boolean;
117
+ isActive: boolean;
118
+ isInLauncherWindow: boolean;
119
+ isInCommunityWindow: boolean;
120
+ isExpired: boolean;
121
+ tokens: {
122
+ address: Address;
123
+ weight: {
124
+ low: bigint;
125
+ spot: bigint;
126
+ high: bigint;
127
+ };
128
+ price: {
129
+ low: bigint;
130
+ high: bigint;
131
+ };
132
+ maxAuctionSize: bigint;
133
+ inRebalance: boolean;
134
+ }[];
135
+ limits: {
136
+ low: bigint;
137
+ spot: bigint;
138
+ high: bigint;
139
+ };
140
+ timestamps: {
141
+ startedAt: bigint;
142
+ restrictedUntil: bigint;
143
+ availableUntil: bigint;
144
+ };
145
+ };
146
+ export type AuctionInfo = {
147
+ auctionId: bigint;
148
+ rebalanceNonce: bigint;
149
+ startTime: bigint;
150
+ endTime: bigint;
151
+ isActive: boolean;
152
+ };
153
+ export type TransactionRequest = {
154
+ to: Address;
155
+ data: Hex;
156
+ value?: bigint;
157
+ };
158
+ export type MintQuote = {
159
+ shares: bigint;
160
+ assets: Address[];
161
+ amounts: bigint[];
162
+ mintFee: bigint;
163
+ minSharesOut: bigint;
164
+ };
165
+ export type RedeemQuote = {
166
+ shares: bigint;
167
+ assets: Address[];
168
+ amounts: bigint[];
169
+ };
170
+ export type FeeRecipient = {
171
+ recipient: Address;
172
+ portion: bigint;
173
+ };
174
+ export type PendingFees = {
175
+ total: bigint;
176
+ folio: bigint;
177
+ dao: bigint;
178
+ };
179
+ export type VoteSupport = 0 | 1 | 2;
180
+ export type ProposalVotes = {
181
+ againstVotes: bigint;
182
+ forVotes: bigint;
183
+ abstainVotes: bigint;
184
+ };
185
+ export type GovernanceSettings = {
186
+ votingDelay: bigint;
187
+ votingPeriod: bigint;
188
+ proposalThreshold: bigint;
189
+ quorumNumerator: bigint;
190
+ quorumDenominator: bigint;
191
+ timelockMinDelay: bigint;
192
+ };
193
+ export type VoteLockInfo = {
194
+ balance: bigint;
195
+ delegatee: Address;
196
+ votingPower: bigint;
197
+ unstakingDelay: bigint;
198
+ };
199
+ export type RebalanceHistoryItem = {
200
+ nonce: number;
201
+ timestamp: number;
202
+ availableUntil: number;
203
+ totalRebalancedUsd?: number;
204
+ rebalanceGainLossUsd?: number;
205
+ rebalanceAccuracy?: number;
206
+ isNative?: boolean;
207
+ };
208
+ export type RebalanceDetail = {
209
+ nonce: number;
210
+ timestamp: number;
211
+ auctions?: {
212
+ startTime: number;
213
+ endTime: number;
214
+ bids: {
215
+ bidder: string;
216
+ sellToken: {
217
+ address: string;
218
+ symbol: string;
219
+ decimals: number;
220
+ };
221
+ buyToken: {
222
+ address: string;
223
+ symbol: string;
224
+ decimals: number;
225
+ };
226
+ sellAmount: string;
227
+ buyAmount: string;
228
+ sellAmountUsd?: number;
229
+ buyAmountUsd?: number;
230
+ priceImpactUsd?: number;
231
+ }[];
232
+ totalSellAmountUsd?: number;
233
+ totalBuyAmountUsd?: number;
234
+ }[];
235
+ totalRebalancedUsd?: number;
236
+ rebalanceGainLossUsd?: number;
237
+ rebalanceGainLossPercent?: number;
238
+ marketCapAtStart?: number;
239
+ rebalanceAccuracy?: number;
240
+ isNative?: boolean;
241
+ };
242
+ export type HistoricalDtfPoint = {
243
+ timestamp: number;
244
+ price: number;
245
+ totalSupply: number;
246
+ };
247
+ export type HistoricalPricePoint = {
248
+ timestamp: number;
249
+ price: number;
250
+ };
251
+ export type DeployBasicDetails = {
252
+ name: string;
253
+ symbol: string;
254
+ assets: Address[];
255
+ amounts: bigint[];
256
+ initialShares: bigint;
257
+ };
258
+ export type DeployAdditionalDetails = {
259
+ auctionLength: bigint;
260
+ feeRecipients: {
261
+ recipient: Address;
262
+ portion: bigint;
263
+ }[];
264
+ tvlFee: bigint;
265
+ mintFee: bigint;
266
+ mandate: string;
267
+ };
268
+ export type DeployFlags = {
269
+ trustedFillerEnabled: boolean;
270
+ rebalanceControl: {
271
+ weightControl: boolean;
272
+ priceControl: PriceControl;
273
+ };
274
+ bidsEnabled: boolean;
275
+ };
276
+ export type DeployGovParams = {
277
+ votingDelay: number;
278
+ votingPeriod: number;
279
+ proposalThreshold: bigint;
280
+ quorumThreshold: bigint;
281
+ timelockDelay: bigint;
282
+ guardians: Address[];
283
+ };
284
+ export type DeployGovRoles = {
285
+ existingBasketManagers: Address[];
286
+ auctionLaunchers: Address[];
287
+ brandManagers: Address[];
288
+ };
289
+ export type ZapQuoteParams = {
290
+ tokenIn: Address;
291
+ tokenOut: Address;
292
+ amountIn: bigint;
293
+ slippage: number;
294
+ sender: Address;
295
+ recipient: Address;
296
+ };
297
+ export type ZapQuote = {
298
+ amountOut: bigint;
299
+ to: Address;
300
+ data: Hex;
301
+ value: bigint;
302
+ };
303
+ export type ZapDeployBasicDetails = {
304
+ assets: Address[];
305
+ amounts: string[];
306
+ name: string;
307
+ symbol: string;
308
+ };
309
+ export type ZapDeployAdditionalDetails = {
310
+ auctionLength: string;
311
+ feeRecipients: {
312
+ recipient: Address;
313
+ portion: string;
314
+ }[];
315
+ tvlFee: string;
316
+ mintFee: string;
317
+ mandate: string;
318
+ };
319
+ export type ZapDeployFlags = {
320
+ trustedFillerEnabled: boolean;
321
+ rebalanceControl: {
322
+ weightControl: boolean;
323
+ priceControl: PriceControl;
324
+ };
325
+ bidsEnabled: boolean;
326
+ };
327
+ export type ZapDeployGovParams = {
328
+ votingDelay: string;
329
+ votingPeriod: string;
330
+ proposalThreshold: string;
331
+ quorumThreshold: string;
332
+ timelockDelay: string;
333
+ guardians: Address[];
334
+ };
335
+ export type ZapDeployParams = {
336
+ chainId: SupportedChainId;
337
+ tokenIn: Address;
338
+ amountIn: string;
339
+ signer: Address;
340
+ slippage?: number;
341
+ basicDetails: ZapDeployBasicDetails;
342
+ additionalDetails: ZapDeployAdditionalDetails;
343
+ folioFlags: ZapDeployFlags;
344
+ stToken?: Address;
345
+ ownerGovParams?: ZapDeployGovParams;
346
+ tradingGovParams?: ZapDeployGovParams;
347
+ basketManagers?: Address[];
348
+ auctionLaunchers?: Address[];
349
+ brandManagers?: Address[];
350
+ };
351
+ export type ZapDeployResult = {
352
+ tokenOut: Address;
353
+ amountOut: string;
354
+ approvalAddress: Address;
355
+ approvalNeeded: boolean;
356
+ insufficientFunds: boolean;
357
+ tx: {
358
+ data: Hex;
359
+ to: Address;
360
+ value: string;
361
+ } | null;
362
+ priceImpact: number;
363
+ gas: string | null;
364
+ };
365
+ export type DecodedProposalAction = {
366
+ target: Address;
367
+ targetLabel: string;
368
+ functionName: string;
369
+ parameters: {
370
+ name: string;
371
+ type: string;
372
+ value: unknown;
373
+ }[];
374
+ rawCalldata: Hex;
375
+ value: bigint;
376
+ decoded: boolean;
377
+ };
378
+ export type ProposalPreview = {
379
+ actions: DecodedProposalAction[];
380
+ unknownTargets: Address[];
381
+ };
382
+ export type DtfAddressMap = {
383
+ folio: Address;
384
+ proxyAdmin?: Address;
385
+ ownerGovernor?: Address;
386
+ ownerTimelock?: Address;
387
+ tradingGovernor?: Address;
388
+ tradingTimelock?: Address;
389
+ stTokenGovernor?: Address;
390
+ stTokenTimelock?: Address;
391
+ stToken?: Address;
392
+ };
393
+ export type VoteLockPosition = {
394
+ chainId: number;
395
+ token: {
396
+ address: string;
397
+ name: string;
398
+ symbol: string;
399
+ decimals: number;
400
+ price: number;
401
+ };
402
+ underlying: {
403
+ token: {
404
+ address: string;
405
+ name: string;
406
+ symbol: string;
407
+ decimals: number;
408
+ price: number;
409
+ };
410
+ };
411
+ rewards: {
412
+ token: {
413
+ address: string;
414
+ name: string;
415
+ symbol: string;
416
+ decimals: number;
417
+ price: number;
418
+ };
419
+ amount: number;
420
+ amountUsd: number;
421
+ }[];
422
+ dtfs: {
423
+ address: string;
424
+ name: string;
425
+ symbol: string;
426
+ decimals: number;
427
+ price: number;
428
+ }[];
429
+ lockedAmount: number;
430
+ lockedAmountUsd: number;
431
+ totalRewardAmountUsd: number;
432
+ avgDailyRewardAmountUsd: number;
433
+ apr: number;
434
+ };
435
+ export type Volatility = 'low' | 'medium' | 'high' | 'degen';
436
+ export type PriceRecord = {
437
+ roundId: string;
438
+ priceUsd: number;
439
+ timestamp: number;
440
+ };
441
+ export type DtfRevenueRaw = {
442
+ address: string;
443
+ chainId: number;
444
+ totalRevenue: string;
445
+ protocolRevenue: string;
446
+ governanceRevenue: string;
447
+ externalRevenue: string;
448
+ mintingFee: string;
449
+ tvlFee: string;
450
+ annualizedTvlFee: string;
451
+ token: {
452
+ decimals: number;
453
+ symbol: string;
454
+ totalSupply: string;
455
+ };
456
+ stToken?: {
457
+ id: string;
458
+ token: {
459
+ totalSupply: string;
460
+ decimals: number;
461
+ };
462
+ underlying: {
463
+ symbol: string;
464
+ address: string;
465
+ decimals: number;
466
+ };
467
+ };
468
+ };
469
+ export type DtfRevenueUsd = {
470
+ address: string;
471
+ chainId: number;
472
+ symbol: string;
473
+ totalUsd: number;
474
+ protocolUsd: number;
475
+ governanceUsd: number;
476
+ externalUsd: number;
477
+ };
478
+ export type EcosystemRevenue = {
479
+ totalUsd: number;
480
+ protocolUsd: number;
481
+ governanceUsd: number;
482
+ externalUsd: number;
483
+ protocolPercent: number;
484
+ governancePercent: number;
485
+ externalPercent: number;
486
+ dtfCount: number;
487
+ topDtfs: DtfRevenueUsd[];
488
+ };
489
+ export type FeeMetrics = {
490
+ weightedMintingFee: number;
491
+ weightedTvlFee: number;
492
+ averageMintingFee: number;
493
+ averageTvlFee: number;
494
+ };
495
+ export type RevenueSnapshot = {
496
+ timestamp: number;
497
+ totalRevenue: string;
498
+ protocolRevenue: string;
499
+ governanceRevenue: string;
500
+ externalRevenue: string;
501
+ period: 'daily' | 'monthly';
502
+ };
503
+ export type RsrBurnEvent = {
504
+ amount: string;
505
+ burner: string;
506
+ timestamp: number;
507
+ transactionHash: string;
508
+ chainId: number;
509
+ };
510
+ export type RsrBurnData = {
511
+ burns: RsrBurnEvent[];
512
+ totalBurned: string;
513
+ totalBurnCount: number;
514
+ monthlySnapshots: {
515
+ timestamp: number;
516
+ monthlyBurnAmount: string;
517
+ monthlyBurnCount: number;
518
+ cumulativeBurned: string;
519
+ }[];
520
+ };
521
+ export type RsrBurnProjection = {
522
+ trailing: {
523
+ monthlyBurnRsr: number;
524
+ monthlyBurnUsd: number;
525
+ annualBurnRsr: number;
526
+ annualBurnUsd: number;
527
+ monthsUsed: number;
528
+ };
529
+ theoretical: {
530
+ annualBurnUsd: number;
531
+ monthlyBurnUsd: number;
532
+ monthlyBurnRsr: number;
533
+ platformTierPercent: number;
534
+ };
535
+ effectiveBurnRate: number;
536
+ totalBurnedRsr: number;
537
+ totalBurnedUsd: number;
538
+ };
539
+ export type BurnAccuracy = {
540
+ trailingMonthlyRsr: number;
541
+ latestMonthlyRsr: number;
542
+ latestVsTrailingPct: number;
543
+ totalBurnedRsr: number;
544
+ totalBurnedUsd: number;
545
+ };
546
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare function assert(condition: boolean, message: string): asserts condition;
2
+ //# sourceMappingURL=assert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/utils/assert.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAE7E"}
@@ -0,0 +1,5 @@
1
+ export function assert(condition, message) {
2
+ if (!condition)
3
+ throw new Error(message);
4
+ }
5
+ //# sourceMappingURL=assert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.js","sourceRoot":"","sources":["../../src/utils/assert.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAAC,SAAkB,EAAE,OAAe;IACxD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;AAC1C,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Address, PublicClient } from 'viem';
2
+ import type { BasketToken } from '../types';
3
+ /**
4
+ * Batch-fetch symbol + decimals for multiple tokens in a single multicall.
5
+ */
6
+ export declare function fetchTokenMetadata(publicClient: PublicClient, addresses: Address[]): Promise<BasketToken[]>;
7
+ //# sourceMappingURL=fetch-token-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-token-metadata.d.ts","sourceRoot":"","sources":["../../src/utils/fetch-token-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,OAAO,EAAE,GACnB,OAAO,CAAC,WAAW,EAAE,CAAC,CA+BxB"}
@@ -0,0 +1,29 @@
1
+ import { ERC20_META_ABI } from '../abi/erc20';
2
+ /**
3
+ * Batch-fetch symbol + decimals for multiple tokens in a single multicall.
4
+ */
5
+ export async function fetchTokenMetadata(publicClient, addresses) {
6
+ if (addresses.length === 0)
7
+ return [];
8
+ const contracts = addresses.flatMap((addr) => [
9
+ { address: addr, abi: ERC20_META_ABI, functionName: 'symbol' },
10
+ { address: addr, abi: ERC20_META_ABI, functionName: 'decimals' },
11
+ ]);
12
+ const results = await publicClient.multicall({ contracts });
13
+ const tokens = [];
14
+ for (let i = 0; i < addresses.length; i++) {
15
+ const symbolResult = results[i * 2];
16
+ const decimalsResult = results[i * 2 + 1];
17
+ const symbol = symbolResult.status === 'success'
18
+ ? symbolResult.result
19
+ : 'UNKNOWN';
20
+ // WHY: Silently defaulting to 18 is dangerous — 6-decimal tokens (USDC, USDT) would be off by 1e12
21
+ if (decimalsResult.status !== 'success') {
22
+ throw new Error(`Failed to read decimals() for token ${addresses[i]} — cannot safely assume default`);
23
+ }
24
+ const decimals = Number(decimalsResult.result);
25
+ tokens.push({ address: addresses[i], symbol, decimals });
26
+ }
27
+ return tokens;
28
+ }
29
+ //# sourceMappingURL=fetch-token-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-token-metadata.js","sourceRoot":"","sources":["../../src/utils/fetch-token-metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAG7C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,YAA0B,EAC1B,SAAoB;IAEpB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAErC,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5C,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,QAAiB,EAAE;QACvE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,UAAmB,EAAE;KAC1E,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IAE3D,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAE,CAAA;QACpC,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAA;QAE1C,MAAM,MAAM,GACV,YAAY,CAAC,MAAM,KAAK,SAAS;YAC/B,CAAC,CAAE,YAAY,CAAC,MAAiB;YACjC,CAAC,CAAC,SAAS,CAAA;QACf,mGAAmG;QACnG,IAAI,cAAc,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,uCAAuC,SAAS,CAAC,CAAC,CAAE,iCAAiC,CACtF,CAAA;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAE9C,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type FetchWithRetryOptions = {
2
+ retries?: number;
3
+ timeoutMs?: number;
4
+ backoffMs?: number;
5
+ };
6
+ export declare function fetchWithRetry(url: string, init?: RequestInit, opts?: FetchWithRetryOptions): Promise<Response>;
7
+ //# sourceMappingURL=fetch-with-retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-with-retry.d.ts","sourceRoot":"","sources":["../../src/utils/fetch-with-retry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAQD,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,WAAW,EAClB,IAAI,CAAC,EAAE,qBAAqB,GAC3B,OAAO,CAAC,QAAQ,CAAC,CAsCnB"}
@@ -0,0 +1,38 @@
1
+ const DEFAULTS = {
2
+ retries: 2,
3
+ timeoutMs: 15_000,
4
+ backoffMs: 1_000,
5
+ };
6
+ export async function fetchWithRetry(url, init, opts) {
7
+ const { retries, timeoutMs, backoffMs } = { ...DEFAULTS, ...opts };
8
+ let lastError;
9
+ for (let attempt = 0; attempt <= retries; attempt++) {
10
+ let timer;
11
+ try {
12
+ const controller = new AbortController();
13
+ timer = setTimeout(() => controller.abort(), timeoutMs);
14
+ // WHY: Combine caller's signal with our timeout signal so both can abort.
15
+ const signal = init?.signal
16
+ ? AbortSignal.any([controller.signal, init.signal])
17
+ : controller.signal;
18
+ const response = await fetch(url, {
19
+ ...init,
20
+ signal,
21
+ });
22
+ clearTimeout(timer);
23
+ return response;
24
+ }
25
+ catch (err) {
26
+ clearTimeout(timer);
27
+ lastError = err instanceof Error ? err : new Error(String(err));
28
+ // Don't retry if caller explicitly aborted
29
+ if (init?.signal?.aborted)
30
+ throw lastError;
31
+ if (attempt < retries) {
32
+ await new Promise((r) => setTimeout(r, backoffMs * (attempt + 1)));
33
+ }
34
+ }
35
+ }
36
+ throw lastError;
37
+ }
38
+ //# sourceMappingURL=fetch-with-retry.js.map