@steerprotocol/sdk 0.1.4 → 1.0.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 (35) hide show
  1. package/dist/cjs/base/SmartRewards.js +465 -0
  2. package/dist/cjs/base/SmartRewards.js.map +1 -0
  3. package/dist/cjs/base/SubgraphClient.js.map +1 -1
  4. package/dist/cjs/base/VaultClient.js +87 -0
  5. package/dist/cjs/base/VaultClient.js.map +1 -1
  6. package/dist/cjs/client.js +37 -0
  7. package/dist/cjs/client.js.map +1 -1
  8. package/dist/cjs/const/abis/UniswapPool.js +5 -0
  9. package/dist/cjs/const/abis/UniswapPool.js.map +1 -0
  10. package/dist/cjs/index.js +59 -0
  11. package/dist/cjs/index.js.map +1 -1
  12. package/dist/esm/base/SmartRewards.js +461 -0
  13. package/dist/esm/base/SmartRewards.js.map +1 -0
  14. package/dist/esm/base/SubgraphClient.js.map +1 -1
  15. package/dist/esm/base/VaultClient.js +87 -0
  16. package/dist/esm/base/VaultClient.js.map +1 -1
  17. package/dist/esm/client.js +37 -0
  18. package/dist/esm/client.js.map +1 -1
  19. package/dist/esm/const/abis/UniswapPool.js +2 -0
  20. package/dist/esm/const/abis/UniswapPool.js.map +1 -0
  21. package/dist/esm/index.js +59 -0
  22. package/dist/esm/index.js.map +1 -1
  23. package/dist/types/base/SmartRewards.d.ts +278 -0
  24. package/dist/types/base/SmartRewards.d.ts.map +1 -0
  25. package/dist/types/base/SubgraphClient.d.ts +1 -1
  26. package/dist/types/base/SubgraphClient.d.ts.map +1 -1
  27. package/dist/types/base/VaultClient.d.ts +2 -0
  28. package/dist/types/base/VaultClient.d.ts.map +1 -1
  29. package/dist/types/client.d.ts +39 -0
  30. package/dist/types/client.d.ts.map +1 -1
  31. package/dist/types/const/abis/UniswapPool.d.ts +36 -0
  32. package/dist/types/const/abis/UniswapPool.d.ts.map +1 -0
  33. package/dist/types/index.d.ts +59 -0
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/package.json +23 -3
@@ -1,6 +1,35 @@
1
1
  import { SubgraphClient } from './base/SubgraphClient';
2
2
  import { VaultClient } from './base/VaultClient';
3
+ /**
4
+ * The main client for interacting with the Steer Protocol.
5
+ * This client provides access to vault operations and smart rewards functionality.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { createPublicClient, http } from 'viem';
10
+ * import { mainnet } from 'viem/chains';
11
+ * import { SteerClient } from '@steerprotocol/sdk';
12
+ *
13
+ * // Create viem client
14
+ * const client = createPublicClient({
15
+ * chain: mainnet,
16
+ * transport: http()
17
+ * });
18
+ *
19
+ * // Initialize the Steer client
20
+ * const steerClient = new SteerClient({
21
+ * environment: 'production',
22
+ * client: client
23
+ * });
24
+ * ```
25
+ *
26
+ * @group Client
27
+ */
3
28
  export class SteerClient extends SubgraphClient {
29
+ /**
30
+ * Creates a new instance of the SteerClient
31
+ * @param config - The configuration object for the client
32
+ */
4
33
  constructor(config) {
5
34
  super(config.client);
6
35
  this.environment = config.environment || 'production';
@@ -8,6 +37,14 @@ export class SteerClient extends SubgraphClient {
8
37
  }
9
38
  /**
10
39
  * Gets the active chain ID from the client
40
+ * @returns A promise that resolves to the active chain ID
41
+ * @throws Error if no active chain is found
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * const chainId = await steerClient.getActiveChain();
46
+ * console.log(chainId.data); // e.g., 1 for Ethereum mainnet
47
+ * ```
11
48
  */
12
49
  async getActiveChain() {
13
50
  const activeChain = await this.client.chain?.id;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,OAAO,WAAY,SAAQ,cAAc;IAK7C,YAAY,MAAmB;QAC7B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,YAAY,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,MAAqC,CAAC,CAAC;IAE9E,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc;QACzB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO;YACL,IAAI,EAAE,WAA2B;YACjC,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,WAAY,SAAQ,cAAc;IAO7C;;;OAGG;IACH,YAAY,MAAmB;QAC7B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,YAAY,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,MAAqC,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,cAAc;QACzB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO;YACL,IAAI,EAAE,WAA2B;YACjC,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export const UniswapV3PoolABI = [{ "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "int24", "name": "tickLower", "type": "int24" }, { "indexed": true, "internalType": "int24", "name": "tickUpper", "type": "int24" }, { "indexed": false, "internalType": "uint128", "name": "amount", "type": "uint128" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" }], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": true, "internalType": "int24", "name": "tickLower", "type": "int24" }, { "indexed": true, "internalType": "int24", "name": "tickUpper", "type": "int24" }, { "indexed": false, "internalType": "uint128", "name": "amount0", "type": "uint128" }, { "indexed": false, "internalType": "uint128", "name": "amount1", "type": "uint128" }], "name": "Collect", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint128", "name": "amount0", "type": "uint128" }, { "indexed": false, "internalType": "uint128", "name": "amount1", "type": "uint128" }], "name": "CollectProtocol", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "paid0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "paid1", "type": "uint256" }], "name": "Flash", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": false, "internalType": "uint16", "name": "observationCardinalityNextOld", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "observationCardinalityNextNew", "type": "uint16" }], "name": "IncreaseObservationCardinalityNext", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": false, "internalType": "uint160", "name": "sqrtPriceX96", "type": "uint160" }, { "indexed": false, "internalType": "int24", "name": "tick", "type": "int24" }], "name": "Initialize", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": false, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "int24", "name": "tickLower", "type": "int24" }, { "indexed": true, "internalType": "int24", "name": "tickUpper", "type": "int24" }, { "indexed": false, "internalType": "uint128", "name": "amount", "type": "uint128" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" }], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": false, "internalType": "uint8", "name": "feeProtocol0Old", "type": "uint8" }, { "indexed": false, "internalType": "uint8", "name": "feeProtocol1Old", "type": "uint8" }, { "indexed": false, "internalType": "uint8", "name": "feeProtocol0New", "type": "uint8" }, { "indexed": false, "internalType": "uint8", "name": "feeProtocol1New", "type": "uint8" }], "name": "SetFeeProtocol", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "int256", "name": "amount0", "type": "int256" }, { "indexed": false, "internalType": "int256", "name": "amount1", "type": "int256" }, { "indexed": false, "internalType": "uint160", "name": "sqrtPriceX96", "type": "uint160" }, { "indexed": false, "internalType": "uint128", "name": "liquidity", "type": "uint128" }, { "indexed": false, "internalType": "int24", "name": "tick", "type": "int24" }], "name": "Swap", "type": "event" }, { "inputs": [{ "internalType": "int24", "name": "tickLower", "type": "int24" }, { "internalType": "int24", "name": "tickUpper", "type": "int24" }, { "internalType": "uint128", "name": "amount", "type": "uint128" }], "name": "burn", "outputs": [{ "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "internalType": "uint256", "name": "amount1", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "int24", "name": "tickLower", "type": "int24" }, { "internalType": "int24", "name": "tickUpper", "type": "int24" }, { "internalType": "uint128", "name": "amount0Requested", "type": "uint128" }, { "internalType": "uint128", "name": "amount1Requested", "type": "uint128" }], "name": "collect", "outputs": [{ "internalType": "uint128", "name": "amount0", "type": "uint128" }, { "internalType": "uint128", "name": "amount1", "type": "uint128" }], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint128", "name": "amount0Requested", "type": "uint128" }, { "internalType": "uint128", "name": "amount1Requested", "type": "uint128" }], "name": "collectProtocol", "outputs": [{ "internalType": "uint128", "name": "amount0", "type": "uint128" }, { "internalType": "uint128", "name": "amount1", "type": "uint128" }], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "factory", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "fee", "outputs": [{ "internalType": "uint24", "name": "", "type": "uint24" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeGrowthGlobal0X128", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeGrowthGlobal1X128", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "internalType": "uint256", "name": "amount1", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" }], "name": "flash", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint16", "name": "observationCardinalityNext", "type": "uint16" }], "name": "increaseObservationCardinalityNext", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint160", "name": "sqrtPriceX96", "type": "uint160" }], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "liquidity", "outputs": [{ "internalType": "uint128", "name": "", "type": "uint128" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxLiquidityPerTick", "outputs": [{ "internalType": "uint128", "name": "", "type": "uint128" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "int24", "name": "tickLower", "type": "int24" }, { "internalType": "int24", "name": "tickUpper", "type": "int24" }, { "internalType": "uint128", "name": "amount", "type": "uint128" }, { "internalType": "bytes", "name": "data", "type": "bytes" }], "name": "mint", "outputs": [{ "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "internalType": "uint256", "name": "amount1", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "name": "observations", "outputs": [{ "internalType": "uint32", "name": "blockTimestamp", "type": "uint32" }, { "internalType": "int56", "name": "tickCumulative", "type": "int56" }, { "internalType": "uint160", "name": "secondsPerLiquidityCumulativeX128", "type": "uint160" }, { "internalType": "bool", "name": "initialized", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint32[]", "name": "secondsAgos", "type": "uint32[]" }], "name": "observe", "outputs": [{ "internalType": "int56[]", "name": "tickCumulatives", "type": "int56[]" }, { "internalType": "uint160[]", "name": "secondsPerLiquidityCumulativeX128s", "type": "uint160[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "name": "positions", "outputs": [{ "internalType": "uint128", "name": "liquidity", "type": "uint128" }, { "internalType": "uint256", "name": "feeGrowthInside0LastX128", "type": "uint256" }, { "internalType": "uint256", "name": "feeGrowthInside1LastX128", "type": "uint256" }, { "internalType": "uint128", "name": "tokensOwed0", "type": "uint128" }, { "internalType": "uint128", "name": "tokensOwed1", "type": "uint128" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "protocolFees", "outputs": [{ "internalType": "uint128", "name": "token0", "type": "uint128" }, { "internalType": "uint128", "name": "token1", "type": "uint128" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint8", "name": "feeProtocol0", "type": "uint8" }, { "internalType": "uint8", "name": "feeProtocol1", "type": "uint8" }], "name": "setFeeProtocol", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "slot0", "outputs": [{ "internalType": "uint160", "name": "sqrtPriceX96", "type": "uint160" }, { "internalType": "int24", "name": "tick", "type": "int24" }, { "internalType": "uint16", "name": "observationIndex", "type": "uint16" }, { "internalType": "uint16", "name": "observationCardinality", "type": "uint16" }, { "internalType": "uint16", "name": "observationCardinalityNext", "type": "uint16" }, { "internalType": "uint8", "name": "feeProtocol", "type": "uint8" }, { "internalType": "bool", "name": "unlocked", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "int24", "name": "tickLower", "type": "int24" }, { "internalType": "int24", "name": "tickUpper", "type": "int24" }], "name": "snapshotCumulativesInside", "outputs": [{ "internalType": "int56", "name": "tickCumulativeInside", "type": "int56" }, { "internalType": "uint160", "name": "secondsPerLiquidityInsideX128", "type": "uint160" }, { "internalType": "uint32", "name": "secondsInside", "type": "uint32" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "bool", "name": "zeroForOne", "type": "bool" }, { "internalType": "int256", "name": "amountSpecified", "type": "int256" }, { "internalType": "uint160", "name": "sqrtPriceLimitX96", "type": "uint160" }, { "internalType": "bytes", "name": "data", "type": "bytes" }], "name": "swap", "outputs": [{ "internalType": "int256", "name": "amount0", "type": "int256" }, { "internalType": "int256", "name": "amount1", "type": "int256" }], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "int16", "name": "", "type": "int16" }], "name": "tickBitmap", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tickSpacing", "outputs": [{ "internalType": "int24", "name": "", "type": "int24" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "int24", "name": "", "type": "int24" }], "name": "ticks", "outputs": [{ "internalType": "uint128", "name": "liquidityGross", "type": "uint128" }, { "internalType": "int128", "name": "liquidityNet", "type": "int128" }, { "internalType": "uint256", "name": "feeGrowthOutside0X128", "type": "uint256" }, { "internalType": "uint256", "name": "feeGrowthOutside1X128", "type": "uint256" }, { "internalType": "int56", "name": "tickCumulativeOutside", "type": "int56" }, { "internalType": "uint160", "name": "secondsPerLiquidityOutsideX128", "type": "uint160" }, { "internalType": "uint32", "name": "secondsOutside", "type": "uint32" }, { "internalType": "bool", "name": "initialized", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token0", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token1", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }];
2
+ //# sourceMappingURL=UniswapPool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniswapPool.js","sourceRoot":"","sources":["../../../../src/const/abis/UniswapPool.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -1,4 +1,63 @@
1
+ export * from './base/SmartRewards';
1
2
  export * from './client';
2
3
  export * from './types';
3
4
  export * from './const';
5
+ export * from './const/subgraph';
6
+ /**
7
+ * @packageDocumentation
8
+ *
9
+ * The Steer Protocol SDK provides a comprehensive interface for interacting with Steer Protocol's smart contracts and services.
10
+ *
11
+ * ## Key Features
12
+ *
13
+ * - Smart Rewards Management
14
+ * - Campaign Interactions
15
+ * - Claim Management
16
+ * - Multi-chain Support
17
+ *
18
+ * ## Quick Start
19
+ *
20
+ * ```typescript
21
+ * import { createClient, SmartRewards } from '@steerprotocol/sdk';
22
+ * import { createPublicClient, createWalletClient, http } from 'viem';
23
+ *
24
+ * // Initialize the clients
25
+ * const client = createClient();
26
+ * const publicClient = createPublicClient({
27
+ * chain: mainnet,
28
+ * transport: http()
29
+ * });
30
+ * const walletClient = createWalletClient({
31
+ * chain: mainnet,
32
+ * transport: http()
33
+ * });
34
+ *
35
+ * // Create SmartRewards instance
36
+ * class MySmartRewards extends SmartRewards {
37
+ * constructor() {
38
+ * super(client, publicClient, walletClient);
39
+ * }
40
+ * }
41
+ *
42
+ * // Use SmartRewards functionality
43
+ * const rewards = new MySmartRewards();
44
+ *
45
+ * // Get user's reward summary
46
+ * const summary = await rewards.getRewardSummary(userAddress, chainId);
47
+ *
48
+ * // Claim rewards
49
+ * const tx = await rewards.claimCampaignRewards(userAddress, chainId);
50
+ * ```
51
+ *
52
+ * ## Smart Rewards
53
+ *
54
+ * The {@link SmartRewards} class provides comprehensive functionality for managing rewards:
55
+ *
56
+ * - View reward balances and claim history
57
+ * - Claim rewards across multiple campaigns
58
+ * - Track historical claims
59
+ * - Get comprehensive reward summaries
60
+ *
61
+ * See {@link SmartRewards} for detailed API documentation.
62
+ */
4
63
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG"}
@@ -0,0 +1,278 @@
1
+ import { Campaign, createClient } from '@steerprotocol/api-sdk';
2
+ import type { Address, Hash, PublicClient, WalletClient } from 'viem';
3
+ import { SteerResponse } from '../types';
4
+ /**
5
+ * Represents a node in the claim proof data structure
6
+ * @property chainId - The ID of the chain where the claim exists
7
+ * @property lastBlockUpdatedTo - The last block number this claim was updated to
8
+ * @property user - The address of the user who can claim
9
+ * @property campaignId - The ID of the campaign this claim belongs to
10
+ * @property amount - The claimable amount as a string (may include decimals)
11
+ * @property proof - The merkle proof array required for claiming
12
+ */
13
+ export interface ClaimProofNode {
14
+ chainId: number;
15
+ lastBlockUpdatedTo: number;
16
+ user: string;
17
+ campaignId: number;
18
+ amount: string;
19
+ proof: readonly string[];
20
+ }
21
+ export interface ClaimProofEdge {
22
+ node: ClaimProofNode;
23
+ cursor: string;
24
+ }
25
+ /**
26
+ * Represents a historical claim reward record
27
+ * @property id - Unique identifier for the claim
28
+ * @property user - Address of the user who claimed
29
+ * @property amount - Amount that was claimed (may include decimals)
30
+ * @property campaign - Campaign identifier
31
+ * @property chainId - Chain ID where the claim occurred
32
+ * @property timestamp - Unix timestamp of when the claim occurred
33
+ */
34
+ export interface ClaimRewardNode {
35
+ id: string;
36
+ user: string;
37
+ amount: string;
38
+ campaign: string;
39
+ chainId: number;
40
+ timestamp: number;
41
+ }
42
+ export interface ClaimRewardEdge {
43
+ cursor: string;
44
+ node: ClaimRewardNode;
45
+ }
46
+ /**
47
+ * Pagination information for paginated queries
48
+ * @property hasNextPage - Whether there are more results available
49
+ * @property endCursor - Cursor to use for fetching next page, if available
50
+ */
51
+ export interface PageInfo {
52
+ hasNextPage: boolean;
53
+ endCursor: string | null | undefined;
54
+ }
55
+ /**
56
+ * Connection type for claim rewards, following the Relay specification
57
+ * @property edges - Array of claim reward records with cursors
58
+ * @property pageInfo - Pagination information
59
+ * @property totalCount - Total number of records available
60
+ */
61
+ export interface ClaimRewardsConnection {
62
+ edges: readonly ClaimRewardEdge[];
63
+ pageInfo: PageInfo;
64
+ totalCount: number;
65
+ }
66
+ export interface ClaimProofsPageInfo {
67
+ hasNextPage: boolean;
68
+ endCursor?: string;
69
+ }
70
+ export interface ClaimProofsResponse {
71
+ totalCount: number;
72
+ edges: readonly ClaimProofEdge[];
73
+ pageInfo: ClaimProofsPageInfo;
74
+ }
75
+ export interface SmartRewarderContract {
76
+ chainId: number;
77
+ address: string;
78
+ }
79
+ /**
80
+ * Parameters required for claiming rewards
81
+ * @property users - Array of user addresses who are claiming
82
+ * @property campaignIds - Array of campaign IDs corresponding to each claim
83
+ * @property amounts - Array of amounts to claim
84
+ * @property proofs - Array of merkle proofs for verification
85
+ * @property rewarderAddress - Address of the smart rewarder contract
86
+ */
87
+ export interface ClaimRewardParams {
88
+ users: readonly Address[];
89
+ campaignIds: readonly bigint[];
90
+ amounts: readonly bigint[];
91
+ proofs: readonly (readonly `0x${string}`[])[];
92
+ rewarderAddress: Address;
93
+ }
94
+ /**
95
+ * Represents a reward balance with both native and formatted values
96
+ * @property formatted - Human-readable string format with proper decimals
97
+ * @property native - Raw bigint value
98
+ */
99
+ export interface RewardBalance {
100
+ formatted: string;
101
+ native: bigint;
102
+ }
103
+ /**
104
+ * Comprehensive summary of a user's reward status
105
+ * @property totalEarned - Total rewards earned (claimed + claimable)
106
+ * @property totalClaimed - Total rewards already claimed
107
+ * @property claimable - Rewards available to claim
108
+ */
109
+ export interface RewardSummary {
110
+ totalEarned: RewardBalance;
111
+ totalClaimed: RewardBalance;
112
+ claimable: RewardBalance;
113
+ }
114
+ export declare abstract class SmartRewards {
115
+ protected readonly client: ReturnType<typeof createClient>;
116
+ protected readonly publicClient: PublicClient;
117
+ protected readonly walletClient: WalletClient;
118
+ constructor(client: ReturnType<typeof createClient>, publicClient: PublicClient, walletClient: WalletClient);
119
+ getCampaigns(chainId: number): Promise<SteerResponse<Campaign[]>>;
120
+ /**
121
+ * Retrieves claim proofs for a user that can be used to claim rewards
122
+ * @param user - Address of the user to get proofs for
123
+ * @param chainId - Chain ID where the claims exist
124
+ * @param campaignId - Optional campaign ID to filter claims
125
+ * @returns Promise resolving to claim proof data with pagination support
126
+ */
127
+ getClaimProofs(user: Address, chainId: number, campaignId?: number): Promise<SteerResponse<ClaimProofsResponse>>;
128
+ /**
129
+ * Retrieves historical claim data for a specific pool
130
+ * @param chainId - Chain ID where the pool exists
131
+ * @param pool - Address or identifier of the pool
132
+ * @param user - Optional user address to filter claims
133
+ * @returns Promise resolving to paginated claim history data
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * // Get all claims for a pool
138
+ * const allClaims = await smartRewards.getClaimRewardsByPool(1, poolAddress);
139
+ *
140
+ * // Get claims for a specific user in a pool
141
+ * const userClaims = await smartRewards.getClaimRewardsByPool(1, poolAddress, userAddress);
142
+ * ```
143
+ */
144
+ getClaimRewardsByPool(chainId: number, pool: string, user?: Address): Promise<SteerResponse<ClaimRewardsConnection>>;
145
+ /**
146
+ * Gets a comprehensive summary of a user's reward status
147
+ * @param user - Address of the user
148
+ * @param chainId - Chain ID to check rewards on
149
+ * @param campaignId - Optional campaign ID to filter rewards
150
+ * @param decimals - Number of decimals for formatting (default: 18)
151
+ * @returns Promise resolving to reward summary with both native and formatted values
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * const summary = await smartRewards.getRewardSummary(userAddress, chainId);
156
+ * console.log('Total earned:', summary.data.totalEarned.formatted);
157
+ * console.log('Available to claim:', summary.data.claimable.formatted);
158
+ * ```
159
+ */
160
+ getRewardSummary(user: Address, chainId: number, campaignId?: number, decimals?: number): Promise<SteerResponse<RewardSummary>>;
161
+ getSmartRewarderContracts(): Promise<SteerResponse<readonly SmartRewarderContract[]>>;
162
+ /**
163
+ * Claims rewards from the smart rewarder contract
164
+ * @param params - Parameters required for claiming rewards
165
+ * @returns Promise resolving to transaction hash if successful
166
+ *
167
+ * @remarks
168
+ * This method handles the low-level interaction with the smart contract.
169
+ * For a higher-level interface, consider using {@link claimCampaignRewards} instead.
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * // Get claim proofs
174
+ * const claimProofs = await smartRewards.getClaimProofs(userAddress, chainId, campaignId);
175
+ *
176
+ * // Get smart rewarder contract
177
+ * const rewarders = await smartRewards.getSmartRewarderContracts();
178
+ * const rewarder = rewarders.data?.find(r => r.chainId === chainId);
179
+ *
180
+ * if (claimProofs.data && rewarder) {
181
+ * // Prepare claim data
182
+ * const claimData = smartRewards.prepareClaimData(claimProofs.data);
183
+ * claimData.rewarderAddress = rewarder.address as Address;
184
+ *
185
+ * // Claim rewards
186
+ * const tx = await smartRewards.claimReward(claimData);
187
+ * }
188
+ * ```
189
+ *
190
+ * @throws Will throw an error if no wallet account is found
191
+ * @throws Will throw an error if contract simulation fails
192
+ */
193
+ claimReward(params: ClaimRewardParams): Promise<SteerResponse<Hash>>;
194
+ /**
195
+ * Helper function to prepare claim data from claim proofs
196
+ * @param proofs - The claim proofs response from getClaimProofs
197
+ * @returns ClaimRewardParams object ready for use with claimReward
198
+ *
199
+ * @remarks
200
+ * This helper function transforms the claim proofs into the format required by the smart contract.
201
+ * Note that the returned object's rewarderAddress is empty and must be set before using with claimReward.
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * // Get claim proofs and rewarder contract
206
+ * const proofs = await smartRewards.getClaimProofs(userAddress, chainId);
207
+ * const rewarders = await smartRewards.getSmartRewarderContracts();
208
+ * const rewarder = rewarders.data?.find(r => r.chainId === chainId);
209
+ *
210
+ * if (proofs.data && rewarder) {
211
+ * // Prepare the claim data
212
+ * const claimData = smartRewards.prepareClaimData(proofs.data);
213
+ *
214
+ * // Set the rewarder address (required)
215
+ * claimData.rewarderAddress = rewarder.address as Address;
216
+ *
217
+ * // Now the data is ready for claiming
218
+ * const tx = await smartRewards.claimReward(claimData);
219
+ * }
220
+ * ```
221
+ */
222
+ prepareClaimData(proofs: ClaimProofsResponse): ClaimRewardParams;
223
+ /**
224
+ * Convenience function to handle the entire claim process
225
+ * @param userAddress The address of the user claiming rewards
226
+ * @param chainId The chain ID where the campaign exists
227
+ * @param campaignId Optional campaign ID to filter claims
228
+ * @returns Transaction hash if successful, or error details if failed
229
+ */
230
+ claimCampaignRewards(userAddress: Address, chainId: number, campaignId?: number): Promise<SteerResponse<Hash>>;
231
+ /**
232
+ * Prepares the claim rewards campaign object with all necessary data for contract interaction
233
+ * @param userAddress The address of the user claiming rewards
234
+ * @param chainId The chain ID where the campaign exists
235
+ * @param campaignId Optional campaign ID to filter claims
236
+ * @returns Promise resolving to an object containing all necessary data for claiming rewards
237
+ *
238
+ * @example
239
+ * ```typescript
240
+ * // Get the prepared claim data
241
+ * const claimData = await smartRewards.prepareClaimRewardsCampaign(userAddress, chainId, campaignId);
242
+ *
243
+ * if (claimData.success) {
244
+ * // Use the data with your own contract interaction methods
245
+ * const { address, abi, functionName, args } = claimData.data;
246
+ * // Execute the contract call using your preferred method
247
+ * }
248
+ * ```
249
+ */
250
+ prepareClaimRewardsCampaign(userAddress: Address, chainId: number, campaignId?: number): Promise<SteerResponse<{
251
+ address: Address;
252
+ abi: {
253
+ type: string;
254
+ inputs: {
255
+ name: string;
256
+ internalType: string;
257
+ type: string;
258
+ }[];
259
+ name: string;
260
+ outputs: never[];
261
+ stateMutability: string;
262
+ }[];
263
+ functionName: string;
264
+ args: readonly [
265
+ readonly Address[],
266
+ readonly bigint[],
267
+ readonly bigint[],
268
+ readonly (readonly `0x${string}`[])[]
269
+ ];
270
+ }>>;
271
+ /**
272
+ * Checks if a chain is supported by checking if it has a subgraph URL
273
+ * @param chainId The chain ID to check
274
+ * @returns boolean indicating if the chain is supported
275
+ */
276
+ supportsChain(chainId: number): boolean;
277
+ }
278
+ //# sourceMappingURL=SmartRewards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartRewards.d.ts","sourceRoot":"","sources":["../../../src/base/SmartRewards.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export declare abstract class SubgraphClient {
9
9
  * @param variables Optional variables for the query
10
10
  * @returns Promise with the query result
11
11
  */
12
- protected executeSubgraphQuery<T>(query: string, variables?: Record<string, any>): Promise<SteerResponse<T>>;
12
+ protected executeSubgraphQuery<T>(query: string, variables?: Record<string, unknown>): Promise<SteerResponse<T>>;
13
13
  /**
14
14
  * Gets the subgraph URL for a given chain ID
15
15
  * @param chainId The chain ID to get the subgraph URL for
@@ -1 +1 @@
1
- {"version":3,"file":"SubgraphClient.d.ts","sourceRoot":"","sources":["../../../src/base/SubgraphClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,8BAAsB,cAAc;IAClC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEtB,MAAM,EAAE,MAAM;IAI1B;;;;;OAKG;cACa,oBAAoB,CAAC,CAAC,EACpC,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAiD5B;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI7D;;;;OAIG;IACI,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAG/C"}
1
+ {"version":3,"file":"SubgraphClient.d.ts","sourceRoot":"","sources":["../../../src/base/SubgraphClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,8BAAsB,cAAc;IAClC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEtB,MAAM,EAAE,MAAM;IAI1B;;;;;OAKG;cACa,oBAAoB,CAAC,CAAC,EACpC,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAiD5B;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI7D;;;;OAIG;IACI,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAG/C"}
@@ -42,6 +42,7 @@ export declare class VaultClient extends SubgraphClient {
42
42
  * @param params The deposit parameters
43
43
  */
44
44
  deposit(params: VaultDepositParams): Promise<SteerResponse<Hash>>;
45
+ getDepositRatio(vaultAddress: Address): Promise<SteerResponse<bigint>>;
45
46
  /**
46
47
  * Withdraws tokens from a vault
47
48
  * @param params The withdrawal parameters
@@ -82,5 +83,6 @@ export declare class VaultClient extends SubgraphClient {
82
83
  * @param vaultAddress The vault address
83
84
  */
84
85
  name(vaultAddress: Address): Promise<SteerResponse<string>>;
86
+ pool(vaultAddress: Address): Promise<SteerResponse<Address>>;
85
87
  }
86
88
  //# sourceMappingURL=VaultClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VaultClient.d.ts","sourceRoot":"","sources":["../../../src/base/VaultClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,WAAY,SAAQ,cAAc;IAC7C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;gBAElC,MAAM,EAAE,YAAY,GAAG,YAAY;IAM/C;;OAEG;IACU,eAAe,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IA8B5D;;;OAGG;IACU,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAyC9E;;;OAGG;IACU,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAmChF;;;OAGG;IACU,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IA8B9E;;;OAGG;IACU,SAAS,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAwBpF;;;OAGG;IACU,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAwBlF;;;OAGG;IACU,WAAW,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAuB/E;;;OAGG;IACU,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAuB5E;;;OAGG;IACU,MAAM,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAuB1E;;;OAGG;IACU,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;CAsBzE"}
1
+ {"version":3,"file":"VaultClient.d.ts","sourceRoot":"","sources":["../../../src/base/VaultClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOlD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,WAAY,SAAQ,cAAc;IAC7C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;gBAElC,MAAM,EAAE,YAAY,GAAG,YAAY;IAM/C;;OAEG;IACU,eAAe,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IA8B5D;;;OAGG;IACU,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAyCjE,eAAe,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IA8EnF;;;OAGG;IACU,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAmChF;;;OAGG;IACU,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IA8B9E;;;OAGG;IACU,SAAS,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAwBpF;;;OAGG;IACU,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAwBlF;;;OAGG;IACU,WAAW,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAuB/E;;;OAGG;IACU,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAuB5E;;;OAGG;IACU,MAAM,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAuB1E;;;OAGG;IACU,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAuB3D,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;CAsB1E"}
@@ -1,12 +1,51 @@
1
1
  import { SteerConfig, SteerResponse } from './types';
2
2
  import { SubgraphClient } from './base/SubgraphClient';
3
3
  import { VaultClient } from './base/VaultClient';
4
+ /**
5
+ * The main client for interacting with the Steer Protocol.
6
+ * This client provides access to vault operations and smart rewards functionality.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { createPublicClient, http } from 'viem';
11
+ * import { mainnet } from 'viem/chains';
12
+ * import { SteerClient } from '@steerprotocol/sdk';
13
+ *
14
+ * // Create viem client
15
+ * const client = createPublicClient({
16
+ * chain: mainnet,
17
+ * transport: http()
18
+ * });
19
+ *
20
+ * // Initialize the Steer client
21
+ * const steerClient = new SteerClient({
22
+ * environment: 'production',
23
+ * client: client
24
+ * });
25
+ * ```
26
+ *
27
+ * @group Client
28
+ */
4
29
  export declare class SteerClient extends SubgraphClient {
30
+ /** The environment the client is configured for */
5
31
  private readonly environment;
32
+ /** The vault client instance for interacting with Steer vaults */
6
33
  readonly vaults: VaultClient;
34
+ /**
35
+ * Creates a new instance of the SteerClient
36
+ * @param config - The configuration object for the client
37
+ */
7
38
  constructor(config: SteerConfig);
8
39
  /**
9
40
  * Gets the active chain ID from the client
41
+ * @returns A promise that resolves to the active chain ID
42
+ * @throws Error if no active chain is found
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const chainId = await steerClient.getActiveChain();
47
+ * console.log(chainId.data); // e.g., 1 for Ethereum mainnet
48
+ * ```
10
49
  */
11
50
  getActiveChain<T>(): Promise<SteerResponse<T>>;
12
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,qBAAa,WAAY,SAAQ,cAAc;IAE7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,SAAgB,MAAM,EAAE,WAAW,CAAC;gBAExB,MAAM,EAAE,WAAW;IAO/B;;OAEG;IACU,cAAc,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAa5D"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,WAAY,SAAQ,cAAc;IAC7C,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAE3D,kEAAkE;IAClE,SAAgB,MAAM,EAAE,WAAW,CAAC;IAEpC;;;OAGG;gBACS,MAAM,EAAE,WAAW;IAM/B;;;;;;;;;;OAUG;IACU,cAAc,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAa5D"}
@@ -0,0 +1,36 @@
1
+ export declare const UniswapV3PoolABI: ({
2
+ inputs: never[];
3
+ stateMutability: string;
4
+ type: string;
5
+ anonymous?: undefined;
6
+ name?: undefined;
7
+ outputs?: undefined;
8
+ } | {
9
+ anonymous: boolean;
10
+ inputs: {
11
+ indexed: boolean;
12
+ internalType: string;
13
+ name: string;
14
+ type: string;
15
+ }[];
16
+ name: string;
17
+ type: string;
18
+ stateMutability?: undefined;
19
+ outputs?: undefined;
20
+ } | {
21
+ inputs: {
22
+ internalType: string;
23
+ name: string;
24
+ type: string;
25
+ }[];
26
+ name: string;
27
+ outputs: {
28
+ internalType: string;
29
+ name: string;
30
+ type: string;
31
+ }[];
32
+ stateMutability: string;
33
+ type: string;
34
+ anonymous?: undefined;
35
+ })[];
36
+ //# sourceMappingURL=UniswapPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniswapPool.d.ts","sourceRoot":"","sources":["../../../../src/const/abis/UniswapPool.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA2qX,CAAA"}