@reserve-protocol/dtf-sdk 0.1.0 → 0.1.2

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 (158) hide show
  1. package/dist/abi/distributor.d.ts +21 -0
  2. package/dist/abi/distributor.d.ts.map +1 -0
  3. package/dist/abi/facade-read.d.ts +140 -0
  4. package/dist/abi/facade-read.d.ts.map +1 -0
  5. package/dist/abi/main.d.ts +102 -0
  6. package/dist/abi/main.d.ts.map +1 -0
  7. package/dist/abi/st-rsr.d.ts +104 -0
  8. package/dist/abi/st-rsr.d.ts.map +1 -0
  9. package/dist/ccip-9vnc6854.js +14 -0
  10. package/dist/ccip-tn8s4j8m.js +14 -0
  11. package/dist/constants.d.ts +2 -0
  12. package/dist/constants.d.ts.map +1 -1
  13. package/dist/index-aarnj29d.js +2889 -0
  14. package/dist/index-azrx1hqn.js +6105 -0
  15. package/dist/index-qp8fkhx7.js +2109 -0
  16. package/dist/index-sdksp5px.js +30 -0
  17. package/dist/index-tdmavmz7.js +6097 -0
  18. package/dist/index-wjqsw4fc.js +357 -0
  19. package/dist/index.d.ts +14 -2
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +18227 -73
  22. package/dist/secp256k1-53bx94th.js +16 -0
  23. package/dist/types.d.ts +51 -0
  24. package/dist/types.d.ts.map +1 -1
  25. package/dist/utils/query-subgraph.d.ts +2 -1
  26. package/dist/utils/query-subgraph.d.ts.map +1 -1
  27. package/dist/yield-dtf/detect-dtf-type.d.ts +13 -0
  28. package/dist/yield-dtf/detect-dtf-type.d.ts.map +1 -0
  29. package/dist/yield-dtf/issue.d.ts +22 -0
  30. package/dist/yield-dtf/issue.d.ts.map +1 -0
  31. package/dist/yield-dtf/read-backing.d.ts +15 -0
  32. package/dist/yield-dtf/read-backing.d.ts.map +1 -0
  33. package/dist/yield-dtf/read-basket.d.ts +10 -0
  34. package/dist/yield-dtf/read-basket.d.ts.map +1 -0
  35. package/dist/yield-dtf/read-components.d.ts +8 -0
  36. package/dist/yield-dtf/read-components.d.ts.map +1 -0
  37. package/dist/yield-dtf/read-config.d.ts +8 -0
  38. package/dist/yield-dtf/read-config.d.ts.map +1 -0
  39. package/dist/yield-dtf/read-distribution.d.ts +8 -0
  40. package/dist/yield-dtf/read-distribution.d.ts.map +1 -0
  41. package/dist/yield-dtf/read-st-rsr.d.ts +7 -0
  42. package/dist/yield-dtf/read-st-rsr.d.ts.map +1 -0
  43. package/package.json +5 -3
  44. package/dist/abi/deployer.js +0 -178
  45. package/dist/abi/deployer.js.map +0 -1
  46. package/dist/abi/erc20.js +0 -58
  47. package/dist/abi/erc20.js.map +0 -1
  48. package/dist/abi/folio.js +0 -1430
  49. package/dist/abi/folio.js.map +0 -1
  50. package/dist/abi/governance-deployer.js +0 -77
  51. package/dist/abi/governance-deployer.js.map +0 -1
  52. package/dist/abi/governor.js +0 -1661
  53. package/dist/abi/governor.js.map +0 -1
  54. package/dist/abi/proxy-admin.js +0 -42
  55. package/dist/abi/proxy-admin.js.map +0 -1
  56. package/dist/abi/spells.js +0 -61
  57. package/dist/abi/spells.js.map +0 -1
  58. package/dist/abi/timelock.js +0 -469
  59. package/dist/abi/timelock.js.map +0 -1
  60. package/dist/abi/vote-lock.js +0 -116
  61. package/dist/abi/vote-lock.js.map +0 -1
  62. package/dist/clients/chains.js +0 -23
  63. package/dist/clients/chains.js.map +0 -1
  64. package/dist/clients/create-clients.js +0 -32
  65. package/dist/clients/create-clients.js.map +0 -1
  66. package/dist/clients/create-price-client.js +0 -15
  67. package/dist/clients/create-price-client.js.map +0 -1
  68. package/dist/constants.js +0 -100
  69. package/dist/constants.js.map +0 -1
  70. package/dist/deploy/build-deploy.js +0 -84
  71. package/dist/deploy/build-deploy.js.map +0 -1
  72. package/dist/deploy/extract-deployed-address.js +0 -36
  73. package/dist/deploy/extract-deployed-address.js.map +0 -1
  74. package/dist/deploy/permissionless-defaults.js +0 -76
  75. package/dist/deploy/permissionless-defaults.js.map +0 -1
  76. package/dist/deploy/token-registry.js +0 -68
  77. package/dist/deploy/token-registry.js.map +0 -1
  78. package/dist/deploy/zap-deploy.js +0 -50
  79. package/dist/deploy/zap-deploy.js.map +0 -1
  80. package/dist/dtf/fees.js +0 -103
  81. package/dist/dtf/fees.js.map +0 -1
  82. package/dist/dtf/fetch-analytics.js +0 -63
  83. package/dist/dtf/fetch-analytics.js.map +0 -1
  84. package/dist/dtf/fetch-basket.js +0 -32
  85. package/dist/dtf/fetch-basket.js.map +0 -1
  86. package/dist/dtf/fetch-discover.js +0 -17
  87. package/dist/dtf/fetch-discover.js.map +0 -1
  88. package/dist/dtf/fetch-dtf.js +0 -39
  89. package/dist/dtf/fetch-dtf.js.map +0 -1
  90. package/dist/dtf/mint.js +0 -82
  91. package/dist/dtf/mint.js.map +0 -1
  92. package/dist/dtf/read-basket.js +0 -20
  93. package/dist/dtf/read-basket.js.map +0 -1
  94. package/dist/dtf/read-config.js +0 -80
  95. package/dist/dtf/read-config.js.map +0 -1
  96. package/dist/dtf/read-dtf.js +0 -32
  97. package/dist/dtf/read-dtf.js.map +0 -1
  98. package/dist/dtf/read-rebalance-control.js +0 -14
  99. package/dist/dtf/read-rebalance-control.js.map +0 -1
  100. package/dist/dtf/read-roles.js +0 -29
  101. package/dist/dtf/read-roles.js.map +0 -1
  102. package/dist/dtf/read-version.js +0 -9
  103. package/dist/dtf/read-version.js.map +0 -1
  104. package/dist/dtf/redeem.js +0 -27
  105. package/dist/dtf/redeem.js.map +0 -1
  106. package/dist/governance/build-proposal.js +0 -78
  107. package/dist/governance/build-proposal.js.map +0 -1
  108. package/dist/governance/build-settings-calldata.js +0 -145
  109. package/dist/governance/build-settings-calldata.js.map +0 -1
  110. package/dist/governance/compute-proposal-state.js +0 -87
  111. package/dist/governance/compute-proposal-state.js.map +0 -1
  112. package/dist/governance/decode-proposal.js +0 -164
  113. package/dist/governance/decode-proposal.js.map +0 -1
  114. package/dist/governance/fetch-proposals.js +0 -173
  115. package/dist/governance/fetch-proposals.js.map +0 -1
  116. package/dist/governance/read-governance.js +0 -97
  117. package/dist/governance/read-governance.js.map +0 -1
  118. package/dist/governance/read-proposals.js +0 -104
  119. package/dist/governance/read-proposals.js.map +0 -1
  120. package/dist/governance/read-voting-power.js +0 -25
  121. package/dist/governance/read-voting-power.js.map +0 -1
  122. package/dist/index.js.map +0 -1
  123. package/dist/prices/chainlink.js +0 -116
  124. package/dist/prices/chainlink.js.map +0 -1
  125. package/dist/prices/reserve-api.js +0 -47
  126. package/dist/prices/reserve-api.js.map +0 -1
  127. package/dist/rebalance/build-auction.js +0 -73
  128. package/dist/rebalance/build-auction.js.map +0 -1
  129. package/dist/rebalance/build-rebalance.js +0 -30
  130. package/dist/rebalance/build-rebalance.js.map +0 -1
  131. package/dist/rebalance/read-auction.js +0 -31
  132. package/dist/rebalance/read-auction.js.map +0 -1
  133. package/dist/rebalance/read-rebalance.js +0 -50
  134. package/dist/rebalance/read-rebalance.js.map +0 -1
  135. package/dist/rebalance/transform.js +0 -47
  136. package/dist/rebalance/transform.js.map +0 -1
  137. package/dist/revenue/compute-revenue.js +0 -216
  138. package/dist/revenue/compute-revenue.js.map +0 -1
  139. package/dist/revenue/fetch-revenue.js +0 -182
  140. package/dist/revenue/fetch-revenue.js.map +0 -1
  141. package/dist/revenue/fetch-rsr-burns.js +0 -106
  142. package/dist/revenue/fetch-rsr-burns.js.map +0 -1
  143. package/dist/types.js +0 -2
  144. package/dist/types.js.map +0 -1
  145. package/dist/utils/assert.js +0 -5
  146. package/dist/utils/assert.js.map +0 -1
  147. package/dist/utils/fetch-token-metadata.js +0 -29
  148. package/dist/utils/fetch-token-metadata.js.map +0 -1
  149. package/dist/utils/fetch-with-retry.js +0 -38
  150. package/dist/utils/fetch-with-retry.js.map +0 -1
  151. package/dist/utils/query-subgraph.js +0 -25
  152. package/dist/utils/query-subgraph.js.map +0 -1
  153. package/dist/utils/validate-price-control.js +0 -6
  154. package/dist/utils/validate-price-control.js.map +0 -1
  155. package/dist/vote-lock/build-vote-lock.js +0 -73
  156. package/dist/vote-lock/build-vote-lock.js.map +0 -1
  157. package/dist/vote-lock/read-vote-lock.js +0 -64
  158. package/dist/vote-lock/read-vote-lock.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch-revenue.js","sourceRoot":"","sources":["../../src/revenue/fetch-revenue.ts"],"names":[],"mappings":"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"}
@@ -1,106 +0,0 @@
1
- import { createPriceClient } from '../clients/create-price-client';
2
- import { CHAINLINK_RSR_USD, SUPPORTED_CHAINS } from '../constants';
3
- import { backfillChainlinkPrices } from '../prices/chainlink';
4
- import { querySubgraph } from '../utils/query-subgraph';
5
- const RSR_BURNS_QUERY = `
6
- query GetRsrBurns {
7
- rsrburns(first: 1000, orderBy: timestamp, orderDirection: desc) {
8
- amount
9
- burner
10
- timestamp
11
- transactionHash
12
- }
13
- rsrburnGlobal(id: "1") {
14
- totalBurned
15
- totalBurnCount
16
- }
17
- rsrburnMonthlySnapshots(first: 12, orderBy: timestamp, orderDirection: desc) {
18
- timestamp
19
- monthlyBurnAmount
20
- monthlyBurnCount
21
- cumulativeBurned
22
- }
23
- }
24
- `;
25
- export async function fetchRsrBurns(chains) {
26
- const targetChains = chains ?? SUPPORTED_CHAINS;
27
- const results = await Promise.allSettled(targetChains.map(async (chainId) => {
28
- const data = await querySubgraph(chainId, RSR_BURNS_QUERY);
29
- return { data, chainId };
30
- }));
31
- const allBurns = [];
32
- let totalBurned = 0n;
33
- let totalBurnCount = 0;
34
- const monthlyByTimestamp = new Map();
35
- for (const result of results) {
36
- if (result.status !== 'fulfilled')
37
- continue;
38
- const { data, chainId } = result.value;
39
- // Burns
40
- const burns = data?.rsrburns ?? [];
41
- for (const b of burns) {
42
- allBurns.push({
43
- amount: b.amount ?? '0',
44
- burner: b.burner ?? '',
45
- timestamp: Number(b.timestamp ?? 0),
46
- transactionHash: b.transactionHash ?? '',
47
- chainId,
48
- });
49
- }
50
- // Global
51
- const global = data?.rsrburnGlobal;
52
- if (global) {
53
- totalBurned += BigInt(global.totalBurned ?? '0');
54
- totalBurnCount += Number(global.totalBurnCount ?? 0);
55
- }
56
- // Monthly snapshots — merge by timestamp, sum amounts
57
- const snapshots = data?.rsrburnMonthlySnapshots ?? [];
58
- for (const s of snapshots) {
59
- const ts = Number(s.timestamp ?? 0);
60
- const existing = monthlyByTimestamp.get(ts);
61
- const amount = BigInt(s.monthlyBurnAmount ?? '0');
62
- const count = Number(s.monthlyBurnCount ?? 0);
63
- const cumulative = BigInt(s.cumulativeBurned ?? '0');
64
- if (existing) {
65
- existing.amount += amount;
66
- existing.count += count;
67
- existing.cumulative += cumulative;
68
- }
69
- else {
70
- monthlyByTimestamp.set(ts, { amount, count, cumulative });
71
- }
72
- }
73
- }
74
- // Sort burns by timestamp desc
75
- allBurns.sort((a, b) => b.timestamp - a.timestamp);
76
- // Convert monthly map to sorted array
77
- const monthlySnapshots = Array.from(monthlyByTimestamp.entries())
78
- .sort((a, b) => b[0] - a[0])
79
- .map(([timestamp, v]) => ({
80
- timestamp,
81
- monthlyBurnAmount: v.amount.toString(),
82
- monthlyBurnCount: v.count,
83
- cumulativeBurned: v.cumulative.toString(),
84
- }));
85
- return {
86
- burns: allBurns,
87
- totalBurned: totalBurned.toString(),
88
- totalBurnCount,
89
- monthlySnapshots,
90
- };
91
- }
92
- /**
93
- * Fetch historical RSR/USD prices from Chainlink covering the burn timespan.
94
- * Creates its own Ethereum mainnet client internally.
95
- * WHY: Ethereum mainnet price is accurate for all chains — RSR is the same token.
96
- */
97
- export async function fetchRsrPriceHistory(burns) {
98
- if (burns.length === 0)
99
- return [];
100
- const oldestTimestamp = Math.min(...burns.map((b) => b.timestamp));
101
- const now = Math.floor(Date.now() / 1000);
102
- const days = Math.ceil((now - oldestTimestamp) / 86400) + 1;
103
- const priceClient = createPriceClient();
104
- return backfillChainlinkPrices(priceClient, days, 50, CHAINLINK_RSR_USD);
105
- }
106
- //# sourceMappingURL=fetch-rsr-burns.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch-rsr-burns.js","sourceRoot":"","sources":["../../src/revenue/fetch-rsr-burns.ts"],"names":[],"mappings":"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"}
package/dist/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- export function assert(condition, message) {
2
- if (!condition)
3
- throw new Error(message);
4
- }
5
- //# sourceMappingURL=assert.js.map
@@ -1 +0,0 @@
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"}
@@ -1,29 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,38 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch-with-retry.js","sourceRoot":"","sources":["../../src/utils/fetch-with-retry.ts"],"names":[],"mappings":"AAMA,MAAM,QAAQ,GAAoC;IAChD,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,KAAK;CACjB,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,IAAkB,EAClB,IAA4B;IAE5B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAA;IAElE,IAAI,SAA4B,CAAA;IAEhC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;QACpD,IAAI,KAAgD,CAAA;QACpD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;YACxC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;YAEvD,0EAA0E;YAC1E,MAAM,MAAM,GACV,IAAI,EAAE,MAAM;gBACV,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnD,CAAC,CAAC,UAAU,CAAC,MAAM,CAAA;YAEvB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,GAAG,IAAI;gBACP,MAAM;aACP,CAAC,CAAA;YAEF,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO,QAAQ,CAAA;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YAE/D,2CAA2C;YAC3C,IAAI,IAAI,EAAE,MAAM,EAAE,OAAO;gBAAE,MAAM,SAAS,CAAA;YAE1C,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;gBACtB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAU,CAAA;AAClB,CAAC"}
@@ -1,25 +0,0 @@
1
- import { SUBGRAPH_URLS } from '../constants';
2
- import { fetchWithRetry } from './fetch-with-retry';
3
- /**
4
- * Query a Reserve Protocol subgraph (Goldsky).
5
- * Generic type parameter T describes the shape of the `data` field in the response.
6
- */
7
- export async function querySubgraph(chainId, query, variables = {}) {
8
- const url = SUBGRAPH_URLS[chainId];
9
- if (!url)
10
- throw new Error(`No subgraph URL for chainId ${chainId}`);
11
- const response = await fetchWithRetry(url, {
12
- method: 'POST',
13
- headers: { 'Content-Type': 'application/json' },
14
- body: JSON.stringify({ query, variables }),
15
- });
16
- if (!response.ok) {
17
- throw new Error(`Subgraph query failed (chain ${chainId}): ${response.status} ${response.statusText}`);
18
- }
19
- const json = (await response.json());
20
- if (json.errors?.length) {
21
- throw new Error(`Subgraph error (chain ${chainId}): ${json.errors.map((e) => e.message).join('; ')}`);
22
- }
23
- return json.data;
24
- }
25
- //# sourceMappingURL=query-subgraph.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-subgraph.js","sourceRoot":"","sources":["../../src/utils/query-subgraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAyB,EACzB,KAAa,EACb,YAAqC,EAAE;IAEvC,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAA;IAEnE,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE;QACzC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;KAC3C,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,gCAAgC,OAAO,MAAM,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACtF,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiD,CAAA;IACpF,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvG,CAAC;IAED,OAAO,IAAI,CAAC,IAAS,CAAA;AACvB,CAAC"}
@@ -1,6 +0,0 @@
1
- export function validatePriceControl(raw) {
2
- if (raw === 0 || raw === 1 || raw === 2)
3
- return raw;
4
- throw new Error(`Unknown PriceControl value: ${raw}`);
5
- }
6
- //# sourceMappingURL=validate-price-control.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-price-control.js","sourceRoot":"","sources":["../../src/utils/validate-price-control.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;QAAE,OAAO,GAAG,CAAA;IACnD,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAA;AACvD,CAAC"}
@@ -1,73 +0,0 @@
1
- import { encodeFunctionData } from 'viem';
2
- import voteLockAbi from '../abi/vote-lock';
3
- export function buildVoteLockCalldata(stToken, amount) {
4
- return {
5
- to: stToken,
6
- data: encodeFunctionData({
7
- abi: voteLockAbi,
8
- functionName: 'depositAndDelegate',
9
- args: [amount],
10
- }),
11
- };
12
- }
13
- export function buildVoteLockWithDelegateCalldata(stToken, amount, receiver) {
14
- return {
15
- to: stToken,
16
- data: encodeFunctionData({
17
- abi: voteLockAbi,
18
- functionName: 'deposit',
19
- args: [amount, receiver],
20
- }),
21
- };
22
- }
23
- export function buildDelegateCalldata(stToken, delegatee) {
24
- return {
25
- to: stToken,
26
- data: encodeFunctionData({
27
- abi: voteLockAbi,
28
- functionName: 'delegate',
29
- args: [delegatee],
30
- }),
31
- };
32
- }
33
- export function buildUnlockCalldata(stToken, amount, receiver, owner) {
34
- return {
35
- to: stToken,
36
- data: encodeFunctionData({
37
- abi: voteLockAbi,
38
- functionName: 'withdraw',
39
- args: [amount, receiver, owner],
40
- }),
41
- };
42
- }
43
- export function buildAddRewardTokenCalldata(stToken, token) {
44
- return {
45
- to: stToken,
46
- data: encodeFunctionData({
47
- abi: voteLockAbi,
48
- functionName: 'addRewardToken',
49
- args: [token],
50
- }),
51
- };
52
- }
53
- export function buildRemoveRewardTokenCalldata(stToken, token) {
54
- return {
55
- to: stToken,
56
- data: encodeFunctionData({
57
- abi: voteLockAbi,
58
- functionName: 'removeRewardToken',
59
- args: [token],
60
- }),
61
- };
62
- }
63
- export function buildClaimRewardsCalldata(stToken, rewardTokens) {
64
- return {
65
- to: stToken,
66
- data: encodeFunctionData({
67
- abi: voteLockAbi,
68
- functionName: 'claimRewards',
69
- args: [rewardTokens],
70
- }),
71
- };
72
- }
73
- //# sourceMappingURL=build-vote-lock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-vote-lock.js","sourceRoot":"","sources":["../../src/vote-lock/build-vote-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,MAAM,CAAA;AACvD,OAAO,WAAW,MAAM,kBAAkB,CAAA;AAG1C,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,MAAc;IAEd,OAAO;QACL,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,oBAAoB;YAClC,IAAI,EAAE,CAAC,MAAM,CAAC;SACf,CAAC;KACH,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,OAAgB,EAChB,MAAc,EACd,QAAiB;IAEjB,OAAO;QACL,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;SACzB,CAAC;KACH,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,SAAkB;IAElB,OAAO;QACL,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,UAAU;YACxB,IAAI,EAAE,CAAC,SAAS,CAAC;SAClB,CAAC;KACH,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,MAAc,EACd,QAAiB,EACjB,KAAc;IAEd,OAAO;QACL,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,UAAU;YACxB,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;SAChC,CAAC;KACH,CAAA;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAAgB,EAChB,KAAc;IAEd,OAAO;QACL,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,gBAAgB;YAC9B,IAAI,EAAE,CAAC,KAAK,CAAC;SACd,CAAC;KACH,CAAA;AACH,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,OAAgB,EAChB,KAAc;IAEd,OAAO;QACL,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,mBAAmB;YACjC,IAAI,EAAE,CAAC,KAAK,CAAC;SACd,CAAC;KACH,CAAA;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,OAAgB,EAChB,YAAuB;IAEvB,OAAO;QACL,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,cAAc;YAC5B,IAAI,EAAE,CAAC,YAAY,CAAC;SACrB,CAAC;KACH,CAAA;AACH,CAAC"}
@@ -1,64 +0,0 @@
1
- import voteLockAbi from '../abi/vote-lock';
2
- export async function readVoteLockInfo(publicClient, stToken, account) {
3
- const results = await publicClient.multicall({
4
- contracts: [
5
- {
6
- address: stToken,
7
- abi: voteLockAbi,
8
- functionName: 'balanceOf',
9
- args: [account],
10
- },
11
- {
12
- address: stToken,
13
- abi: voteLockAbi,
14
- functionName: 'delegates',
15
- args: [account],
16
- },
17
- {
18
- address: stToken,
19
- abi: voteLockAbi,
20
- functionName: 'getVotes',
21
- args: [account],
22
- },
23
- {
24
- address: stToken,
25
- abi: voteLockAbi,
26
- functionName: 'unstakingDelay',
27
- },
28
- ],
29
- });
30
- // WHY: Vote-lock info is display-only (account dashboard). Defaulting to 0n on failure
31
- // means "show zero balance/power" which is safe — user sees nothing rather than wrong data.
32
- // The delegatee zero address matches the contract's default for undelegated accounts.
33
- return {
34
- balance: results[0].status === 'success' ? results[0].result : 0n,
35
- delegatee: results[1].status === 'success'
36
- ? results[1].result
37
- : '0x0000000000000000000000000000000000000000',
38
- votingPower: results[2].status === 'success' ? results[2].result : 0n,
39
- unstakingDelay: results[3].status === 'success' ? results[3].result : 0n,
40
- };
41
- }
42
- export async function readMaxWithdraw(publicClient, stToken, account) {
43
- return (await publicClient.readContract({
44
- address: stToken,
45
- abi: voteLockAbi,
46
- functionName: 'maxWithdraw',
47
- args: [account],
48
- }));
49
- }
50
- export async function readRewardTokens(publicClient, stToken) {
51
- return (await publicClient.readContract({
52
- address: stToken,
53
- abi: voteLockAbi,
54
- functionName: 'getAllRewardTokens',
55
- }));
56
- }
57
- export async function readVoteLockAsset(publicClient, stToken) {
58
- return (await publicClient.readContract({
59
- address: stToken,
60
- abi: voteLockAbi,
61
- functionName: 'asset',
62
- }));
63
- }
64
- //# sourceMappingURL=read-vote-lock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-vote-lock.js","sourceRoot":"","sources":["../../src/vote-lock/read-vote-lock.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,kBAAkB,CAAA;AAG1C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAA0B,EAC1B,OAAgB,EAChB,OAAgB;IAEhB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC;QAC3C,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,OAAO;gBAChB,GAAG,EAAE,WAAW;gBAChB,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB;YACD;gBACE,OAAO,EAAE,OAAO;gBAChB,GAAG,EAAE,WAAW;gBAChB,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB;YACD;gBACE,OAAO,EAAE,OAAO;gBAChB,GAAG,EAAE,WAAW;gBAChB,YAAY,EAAE,UAAU;gBACxB,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB;YACD;gBACE,OAAO,EAAE,OAAO;gBAChB,GAAG,EAAE,WAAW;gBAChB,YAAY,EAAE,gBAAgB;aAC/B;SACF;KACF,CAAC,CAAA;IAEF,uFAAuF;IACvF,4FAA4F;IAC5F,sFAAsF;IACtF,OAAO;QACL,OAAO,EACL,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAiB,CAAC,CAAC,CAAC,EAAE;QACtE,SAAS,EACP,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS;YAC7B,CAAC,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAkB;YAChC,CAAC,CAAC,4CAA4C;QAClD,WAAW,EACT,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAiB,CAAC,CAAC,CAAC,EAAE;QACtE,cAAc,EACZ,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAiB,CAAC,CAAC,CAAC,EAAE;KACvE,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,YAA0B,EAC1B,OAAgB,EAChB,OAAgB;IAEhB,OAAO,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;QACtC,OAAO,EAAE,OAAO;QAChB,GAAG,EAAE,WAAW;QAChB,YAAY,EAAE,aAAa;QAC3B,IAAI,EAAE,CAAC,OAAO,CAAC;KAChB,CAAC,CAAW,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAA0B,EAC1B,OAAgB;IAEhB,OAAO,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;QACtC,OAAO,EAAE,OAAO;QAChB,GAAG,EAAE,WAAW;QAChB,YAAY,EAAE,oBAAoB;KACnC,CAAC,CAAc,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,YAA0B,EAC1B,OAAgB;IAEhB,OAAO,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;QACtC,OAAO,EAAE,OAAO;QAChB,GAAG,EAAE,WAAW;QAChB,YAAY,EAAE,OAAO;KACtB,CAAC,CAAY,CAAA;AAChB,CAAC"}