@waiaas/actions 2.6.0-rc.9 → 2.6.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 (38) hide show
  1. package/README.md +51 -3
  2. package/dist/index.d.ts +8 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +48 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/providers/jito-staking/config.d.ts +41 -0
  7. package/dist/providers/jito-staking/config.d.ts.map +1 -0
  8. package/dist/providers/jito-staking/config.js +50 -0
  9. package/dist/providers/jito-staking/config.js.map +1 -0
  10. package/dist/providers/jito-staking/epoch-tracker.d.ts +22 -0
  11. package/dist/providers/jito-staking/epoch-tracker.d.ts.map +1 -0
  12. package/dist/providers/jito-staking/epoch-tracker.js +48 -0
  13. package/dist/providers/jito-staking/epoch-tracker.js.map +1 -0
  14. package/dist/providers/jito-staking/index.d.ts +12 -0
  15. package/dist/providers/jito-staking/index.d.ts.map +1 -0
  16. package/dist/providers/jito-staking/index.js +89 -0
  17. package/dist/providers/jito-staking/index.js.map +1 -0
  18. package/dist/providers/jito-staking/jito-stake-pool.d.ts +100 -0
  19. package/dist/providers/jito-staking/jito-stake-pool.d.ts.map +1 -0
  20. package/dist/providers/jito-staking/jito-stake-pool.js +355 -0
  21. package/dist/providers/jito-staking/jito-stake-pool.js.map +1 -0
  22. package/dist/providers/lido-staking/config.d.ts +29 -0
  23. package/dist/providers/lido-staking/config.d.ts.map +1 -0
  24. package/dist/providers/lido-staking/config.js +40 -0
  25. package/dist/providers/lido-staking/config.js.map +1 -0
  26. package/dist/providers/lido-staking/index.d.ts +12 -0
  27. package/dist/providers/lido-staking/index.d.ts.map +1 -0
  28. package/dist/providers/lido-staking/index.js +129 -0
  29. package/dist/providers/lido-staking/index.js.map +1 -0
  30. package/dist/providers/lido-staking/lido-contract.d.ts +43 -0
  31. package/dist/providers/lido-staking/lido-contract.d.ts.map +1 -0
  32. package/dist/providers/lido-staking/lido-contract.js +83 -0
  33. package/dist/providers/lido-staking/lido-contract.js.map +1 -0
  34. package/dist/providers/lido-staking/withdrawal-tracker.d.ts +21 -0
  35. package/dist/providers/lido-staking/withdrawal-tracker.d.ts.map +1 -0
  36. package/dist/providers/lido-staking/withdrawal-tracker.js +46 -0
  37. package/dist/providers/lido-staking/withdrawal-tracker.js.map +1 -0
  38. package/package.json +2 -2
package/README.md CHANGED
@@ -25,22 +25,69 @@ WAIaaS is a local daemon that sits between your AI agent and the blockchain:
25
25
 
26
26
  See [Security Model](docs/security-model.md) for full details.
27
27
 
28
+ ## Architecture
29
+
30
+ ```mermaid
31
+ graph LR
32
+ subgraph Interfaces
33
+ SDK["TypeScript SDK"]
34
+ MCP["MCP Server"]
35
+ CLI["CLI"]
36
+ Admin["Admin UI"]
37
+ Skills["Skill Files"]
38
+ WalletSDK["Wallet SDK"]
39
+ end
40
+
41
+ subgraph Daemon
42
+ API["API Layer<br>(Hono + Middleware)"]
43
+ Services["Service Layer<br>(Policy, Notifications, Kill Switch)"]
44
+ Pipeline["Transaction Pipeline<br>(6-stage + 8-state)"]
45
+ Infra["Infrastructure<br>(SQLite, Keystore, Config)"]
46
+ end
47
+
48
+ subgraph Blockchain
49
+ Solana["Solana"]
50
+ EVM["EVM Chains"]
51
+ end
52
+
53
+ SDK & MCP & CLI & Admin & Skills & WalletSDK --> API
54
+ API --> Services --> Pipeline --> Infra
55
+ Infra --> Solana & EVM
56
+ ```
57
+
58
+ **12 packages** in a monorepo:
59
+
60
+ - **@waiaas/core** — Shared types, Zod schemas, enums, and interfaces
61
+ - **@waiaas/daemon** — Self-hosted wallet daemon (Hono HTTP server)
62
+ - **@waiaas/adapter-solana** — Solana chain adapter (SPL / Token-2022)
63
+ - **@waiaas/adapter-evm** — EVM chain adapter (ERC-20 via viem)
64
+ - **@waiaas/actions** — DeFi Action Providers (Jupiter, 0x, LI.FI, Lido, Jito)
65
+ - **@waiaas/sdk** — TypeScript client library
66
+ - **@waiaas/mcp** — Model Context Protocol server for AI agents
67
+ - **@waiaas/cli** — Command-line interface
68
+ - **@waiaas/admin** — Preact-based Admin Web UI
69
+ - **@waiaas/wallet-sdk** — Wallet Signing SDK for wallet app integration
70
+ - **@waiaas/push-relay** — Push Relay Server (ntfy → push services)
71
+ - **@waiaas/skills** — Pre-built `.skill.md` instruction files for AI agents
72
+
73
+ See [Architecture](docs/architecture.md) for the full technical deep-dive.
74
+
28
75
  ## Quick Start
29
76
 
30
77
  ```bash
31
78
  npm install -g @waiaas/cli
32
79
  waiaas init # Create data directory + config.toml
33
80
  waiaas start # Start daemon (sets master password on first run)
34
- waiaas quickset --mode testnet # Create wallets + MCP sessions in one step
81
+ waiaas quickset --mode mainnet # Create wallets + MCP sessions in one step
35
82
  ```
36
83
 
37
84
  The `quickset` command does everything you need to get started:
38
85
 
39
- 1. Creates **Solana Devnet + EVM Sepolia** wallets automatically
86
+ 1. Creates **Solana Mainnet + EVM Ethereum Mainnet** wallets automatically
40
87
  2. Issues **MCP session tokens** for each wallet
41
88
  3. Outputs a **Claude Desktop MCP config** snippet -- just copy and paste
42
89
 
43
- > Starting with mainnet? Use `waiaas quickset --mode mainnet` to create Solana Mainnet + EVM Ethereum Mainnet wallets instead. Mainnet mode recommends configuring spending limits and registering an owner wallet for high-value transaction approval.
90
+ > We recommend configuring spending limits and registering an owner wallet for high-value transaction approval. For testing, use `waiaas quickset --mode testnet` to create Solana Devnet + EVM Sepolia wallets instead.
44
91
 
45
92
  ### Admin UI
46
93
 
@@ -143,6 +190,7 @@ Enabled by default (`admin_ui = true` in config.toml).
143
190
 
144
191
  | Document | Description |
145
192
  |----------|-------------|
193
+ | [Architecture](docs/architecture.md) | System overview, package structure, pipeline, chain adapters |
146
194
  | [Security Model](docs/security-model.md) | Authentication, policy engine, Kill Switch, AutoStop |
147
195
  | [Deployment Guide](docs/deployment.md) | Docker, npm, configuration reference |
148
196
  | [API Reference](docs/api-reference.md) | REST API endpoints and authentication |
package/dist/index.d.ts CHANGED
@@ -16,6 +16,14 @@ export { LIFI_DEFAULTS, LIFI_CHAIN_MAP, getLiFiChainId } from './providers/lifi/
16
16
  export type { LiFiConfig } from './providers/lifi/config.js';
17
17
  export { LiFiApiClient } from './providers/lifi/lifi-api-client.js';
18
18
  export { BridgeStatusTracker, BridgeMonitoringTracker } from './providers/lifi/bridge-status-tracker.js';
19
+ export { LidoStakingActionProvider } from './providers/lido-staking/index.js';
20
+ export { LIDO_STAKING_DEFAULTS, LIDO_MAINNET_ADDRESSES, LIDO_TESTNET_ADDRESSES, getLidoAddresses } from './providers/lido-staking/config.js';
21
+ export type { LidoStakingConfig } from './providers/lido-staking/config.js';
22
+ export { LidoWithdrawalTracker } from './providers/lido-staking/withdrawal-tracker.js';
23
+ export { JitoStakingActionProvider } from './providers/jito-staking/index.js';
24
+ export { JITO_STAKING_DEFAULTS, JITO_MAINNET_ADDRESSES, getJitoAddresses } from './providers/jito-staking/config.js';
25
+ export type { JitoStakingConfig } from './providers/jito-staking/config.js';
26
+ export { JitoEpochTracker } from './providers/jito-staking/epoch-tracker.js';
19
27
  export { ActionApiClient } from './common/action-api-client.js';
20
28
  export { asBps, asPct, clampSlippageBps, bpsToPct, pctToBps } from './common/slippage.js';
21
29
  export type { SlippageBps, SlippagePct } from './common/slippage.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAMpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC/F,YAAY,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC5I,YAAY,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC3F,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAGzG,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1F,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,GACb,MAAM,kCAAkC,CAAC;AAM1C,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;CAC3C;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,cAAc,GAC7B;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA6EzC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,cAAc,CAAC;AAWjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC/F,YAAY,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC5I,YAAY,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC3F,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEzG,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC7I,YAAY,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAEvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACrH,YAAY,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1F,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,GACb,MAAM,kCAAkC,CAAC;AAM1C,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;CAC3C;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,cAAc,GAC7B;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAsHzC"}
package/dist/index.js CHANGED
@@ -1,6 +1,11 @@
1
+ import { deriveEnvironment } from '@waiaas/core';
1
2
  import { JupiterSwapActionProvider } from './providers/jupiter-swap/index.js';
2
3
  import { ZeroExSwapActionProvider } from './providers/zerox-swap/index.js';
3
4
  import { LiFiActionProvider } from './providers/lifi/index.js';
5
+ import { LidoStakingActionProvider } from './providers/lido-staking/index.js';
6
+ import { getLidoAddresses } from './providers/lido-staking/config.js';
7
+ import { JitoStakingActionProvider } from './providers/jito-staking/index.js';
8
+ import { getJitoAddresses } from './providers/jito-staking/config.js';
4
9
  // Re-export provider classes
5
10
  export { JupiterSwapActionProvider } from './providers/jupiter-swap/index.js';
6
11
  export { JUPITER_PROGRAM_ID, JUPITER_SWAP_DEFAULTS } from './providers/jupiter-swap/config.js';
@@ -10,6 +15,12 @@ export { LiFiActionProvider } from './providers/lifi/index.js';
10
15
  export { LIFI_DEFAULTS, LIFI_CHAIN_MAP, getLiFiChainId } from './providers/lifi/config.js';
11
16
  export { LiFiApiClient } from './providers/lifi/lifi-api-client.js';
12
17
  export { BridgeStatusTracker, BridgeMonitoringTracker } from './providers/lifi/bridge-status-tracker.js';
18
+ export { LidoStakingActionProvider } from './providers/lido-staking/index.js';
19
+ export { LIDO_STAKING_DEFAULTS, LIDO_MAINNET_ADDRESSES, LIDO_TESTNET_ADDRESSES, getLidoAddresses } from './providers/lido-staking/config.js';
20
+ export { LidoWithdrawalTracker } from './providers/lido-staking/withdrawal-tracker.js';
21
+ export { JitoStakingActionProvider } from './providers/jito-staking/index.js';
22
+ export { JITO_STAKING_DEFAULTS, JITO_MAINNET_ADDRESSES, getJitoAddresses } from './providers/jito-staking/config.js';
23
+ export { JitoEpochTracker } from './providers/jito-staking/epoch-tracker.js';
13
24
  // Re-export common utilities
14
25
  export { ActionApiClient } from './common/action-api-client.js';
15
26
  export { asBps, asPct, clampSlippageBps, bpsToPct, pctToBps } from './common/slippage.js';
@@ -71,6 +82,43 @@ export function registerBuiltInProviders(registry, settingsReader) {
71
82
  return new LiFiActionProvider(config);
72
83
  },
73
84
  },
85
+ {
86
+ key: 'lido_staking',
87
+ enabledKey: 'actions.lido_staking_enabled',
88
+ factory: () => {
89
+ // Resolve environment from registered rpc.evm_default_network setting
90
+ const evmNetwork = settingsReader.get('rpc.evm_default_network') || 'ethereum-mainnet';
91
+ const isTestnet = deriveEnvironment(evmNetwork) === 'testnet';
92
+ const addresses = getLidoAddresses(isTestnet ? 'testnet' : 'mainnet');
93
+ // Admin Settings overrides individual addresses; empty string falls back to environment default
94
+ const stethOverride = settingsReader.get('actions.lido_staking_steth_address');
95
+ const withdrawalOverride = settingsReader.get('actions.lido_staking_withdrawal_queue_address');
96
+ const config = {
97
+ enabled: true,
98
+ stethAddress: stethOverride || addresses.stethAddress,
99
+ withdrawalQueueAddress: withdrawalOverride || addresses.withdrawalQueueAddress,
100
+ };
101
+ return new LidoStakingActionProvider(config);
102
+ },
103
+ },
104
+ {
105
+ key: 'jito_staking',
106
+ enabledKey: 'actions.jito_staking_enabled',
107
+ factory: () => {
108
+ // Jito is mainnet-only -- no testnet pool exists.
109
+ // Read admin override addresses; empty string falls back to mainnet defaults.
110
+ const stakePoolOverride = settingsReader.get('actions.jito_staking_stake_pool_address');
111
+ const jitosolMintOverride = settingsReader.get('actions.jito_staking_jitosol_mint');
112
+ const addresses = getJitoAddresses('mainnet');
113
+ const config = {
114
+ enabled: true,
115
+ stakePoolAddress: stakePoolOverride || addresses.stakePoolAddress,
116
+ jitosolMint: jitosolMintOverride || addresses.jitosolMint,
117
+ stakePoolProgram: addresses.stakePoolProgram,
118
+ };
119
+ return new JitoStakingActionProvider(config);
120
+ },
121
+ },
74
122
  ];
75
123
  for (const { key, enabledKey, factory } of providers) {
76
124
  if (settingsReader.get(enabledKey) === 'true') {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Jito Staking configuration type, defaults, and address maps.
3
+ *
4
+ * Supports Solana mainnet only (Jito has no official devnet/testnet deployment).
5
+ * See: https://www.jito.network/
6
+ */
7
+ export interface JitoStakingConfig {
8
+ enabled: boolean;
9
+ stakePoolAddress: string;
10
+ jitosolMint: string;
11
+ stakePoolProgram: string;
12
+ }
13
+ export declare const JITO_MAINNET_ADDRESSES: {
14
+ readonly stakePoolAddress: "Jito4APyf642JPZPx3hGc6WWJ8zPKtRbRs4P815Awbb";
15
+ readonly jitosolMint: "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn";
16
+ readonly stakePoolProgram: "SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy";
17
+ };
18
+ /** Stake Pool withdraw authority (PDA derived from stake pool address). */
19
+ export declare const JITO_WITHDRAW_AUTHORITY = "6iQKfEyhr3bZMotVkW6beNZz5CPAkiwvgV2CTje9pVSS";
20
+ /** Reserve stake account for the Jito Stake Pool. */
21
+ export declare const JITO_RESERVE_STAKE = "BgKUXdS2jFbByBaPQRf6eSCjMH3mRLDPH1MCVLhEAD3c";
22
+ /** Manager fee account for the Jito Stake Pool. */
23
+ export declare const JITO_MANAGER_FEE = "B1aLzaNMeFVAyQ6f3XbbUyKcH2YPHu2fqiEagmiF23VR";
24
+ /** SPL Token Program. */
25
+ export declare const SPL_TOKEN_PROGRAM = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
26
+ /** System Program. */
27
+ export declare const SYSTEM_PROGRAM = "11111111111111111111111111111111";
28
+ export declare const JITO_STAKING_DEFAULTS: JitoStakingConfig;
29
+ /**
30
+ * Get Jito addresses for a given environment type.
31
+ *
32
+ * Jito Stake Pool is mainnet-only. Testnet falls back to mainnet addresses.
33
+ *
34
+ * @param environment - 'mainnet' or 'testnet'
35
+ */
36
+ export declare function getJitoAddresses(environment: 'mainnet' | 'testnet'): {
37
+ stakePoolAddress: string;
38
+ jitosolMint: string;
39
+ stakePoolProgram: string;
40
+ };
41
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/providers/jito-staking/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAMD,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAC;AAMX,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB,iDAAiD,CAAC;AAEtF,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,iDAAiD,CAAC;AAEjF,mDAAmD;AACnD,eAAO,MAAM,gBAAgB,iDAAiD,CAAC;AAE/E,yBAAyB;AACzB,eAAO,MAAM,iBAAiB,gDAAgD,CAAC;AAE/E,sBAAsB;AACtB,eAAO,MAAM,cAAc,qCAAqC,CAAC;AAMjE,eAAO,MAAM,qBAAqB,EAAE,iBAGnC,CAAC;AAMF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,SAAS,GAAG,SAAS,GACjC;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAI7E"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Jito Staking configuration type, defaults, and address maps.
3
+ *
4
+ * Supports Solana mainnet only (Jito has no official devnet/testnet deployment).
5
+ * See: https://www.jito.network/
6
+ */
7
+ // ---------------------------------------------------------------------------
8
+ // Mainnet addresses (Solana)
9
+ // ---------------------------------------------------------------------------
10
+ export const JITO_MAINNET_ADDRESSES = {
11
+ stakePoolAddress: 'Jito4APyf642JPZPx3hGc6WWJ8zPKtRbRs4P815Awbb',
12
+ jitosolMint: 'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn',
13
+ stakePoolProgram: 'SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy',
14
+ };
15
+ // ---------------------------------------------------------------------------
16
+ // Well-known PDA and program addresses
17
+ // ---------------------------------------------------------------------------
18
+ /** Stake Pool withdraw authority (PDA derived from stake pool address). */
19
+ export const JITO_WITHDRAW_AUTHORITY = '6iQKfEyhr3bZMotVkW6beNZz5CPAkiwvgV2CTje9pVSS';
20
+ /** Reserve stake account for the Jito Stake Pool. */
21
+ export const JITO_RESERVE_STAKE = 'BgKUXdS2jFbByBaPQRf6eSCjMH3mRLDPH1MCVLhEAD3c';
22
+ /** Manager fee account for the Jito Stake Pool. */
23
+ export const JITO_MANAGER_FEE = 'B1aLzaNMeFVAyQ6f3XbbUyKcH2YPHu2fqiEagmiF23VR';
24
+ /** SPL Token Program. */
25
+ export const SPL_TOKEN_PROGRAM = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';
26
+ /** System Program. */
27
+ export const SYSTEM_PROGRAM = '11111111111111111111111111111111';
28
+ // ---------------------------------------------------------------------------
29
+ // Defaults (disabled, mainnet addresses)
30
+ // ---------------------------------------------------------------------------
31
+ export const JITO_STAKING_DEFAULTS = {
32
+ enabled: false,
33
+ ...JITO_MAINNET_ADDRESSES,
34
+ };
35
+ // ---------------------------------------------------------------------------
36
+ // Helper to select addresses by environment
37
+ // ---------------------------------------------------------------------------
38
+ /**
39
+ * Get Jito addresses for a given environment type.
40
+ *
41
+ * Jito Stake Pool is mainnet-only. Testnet falls back to mainnet addresses.
42
+ *
43
+ * @param environment - 'mainnet' or 'testnet'
44
+ */
45
+ export function getJitoAddresses(environment) {
46
+ // Jito Stake Pool is mainnet-only. Testnet falls back to mainnet addresses.
47
+ void environment;
48
+ return { ...JITO_MAINNET_ADDRESSES };
49
+ }
50
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/providers/jito-staking/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,gBAAgB,EAAE,6CAA6C;IAC/D,WAAW,EAAE,8CAA8C;IAC3D,gBAAgB,EAAE,6CAA6C;CACvD,CAAC;AAEX,8EAA8E;AAC9E,uCAAuC;AACvC,8EAA8E;AAE9E,2EAA2E;AAC3E,MAAM,CAAC,MAAM,uBAAuB,GAAG,8CAA8C,CAAC;AAEtF,qDAAqD;AACrD,MAAM,CAAC,MAAM,kBAAkB,GAAG,8CAA8C,CAAC;AAEjF,mDAAmD;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,8CAA8C,CAAC;AAE/E,yBAAyB;AACzB,MAAM,CAAC,MAAM,iBAAiB,GAAG,6CAA6C,CAAC;AAE/E,sBAAsB;AACtB,MAAM,CAAC,MAAM,cAAc,GAAG,kCAAkC,CAAC;AAEjE,8EAA8E;AAC9E,yCAAyC;AACzC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,OAAO,EAAE,KAAK;IACd,GAAG,sBAAsB;CAC1B,CAAC;AAEF,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAkC;IAElC,4EAA4E;IAC5E,KAAK,WAAW,CAAC;IACjB,OAAO,EAAE,GAAG,sBAAsB,EAAE,CAAC;AACvC,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * JitoEpochTracker - IAsyncStatusTracker for Jito SOL unstake epoch boundary.
3
+ *
4
+ * Tracks Jito unstake requests via metadata-based polling (v1 implementation).
5
+ * Active polling: 30s x 240 = 2 hours, then TIMEOUT (terminal).
6
+ *
7
+ * Solana epoch boundaries occur every ~2-3 days. Jito unstake deactivates
8
+ * the stake account, and cooldown completes at the next epoch boundary.
9
+ * This tracker monitors metadata state and emits STAKING_UNSTAKE_COMPLETED
10
+ * or STAKING_UNSTAKE_TIMEOUT notifications.
11
+ *
12
+ * @see packages/actions/src/common/async-status-tracker.ts
13
+ */
14
+ import type { IAsyncStatusTracker, AsyncTrackingResult } from '../../common/async-status-tracker.js';
15
+ export declare class JitoEpochTracker implements IAsyncStatusTracker {
16
+ readonly name = "jito-epoch";
17
+ readonly maxAttempts = 240;
18
+ readonly pollIntervalMs = 30000;
19
+ readonly timeoutTransition: "TIMEOUT";
20
+ checkStatus(_txId: string, metadata: Record<string, unknown>): Promise<AsyncTrackingResult>;
21
+ }
22
+ //# sourceMappingURL=epoch-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"epoch-tracker.d.ts","sourceRoot":"","sources":["../../../src/providers/jito-staking/epoch-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAKrG,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,OAAO;IAC3B,QAAQ,CAAC,cAAc,SAAU;IACjC,QAAQ,CAAC,iBAAiB,EAAG,SAAS,CAAU;IAE1C,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA4BlG"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * JitoEpochTracker - IAsyncStatusTracker for Jito SOL unstake epoch boundary.
3
+ *
4
+ * Tracks Jito unstake requests via metadata-based polling (v1 implementation).
5
+ * Active polling: 30s x 240 = 2 hours, then TIMEOUT (terminal).
6
+ *
7
+ * Solana epoch boundaries occur every ~2-3 days. Jito unstake deactivates
8
+ * the stake account, and cooldown completes at the next epoch boundary.
9
+ * This tracker monitors metadata state and emits STAKING_UNSTAKE_COMPLETED
10
+ * or STAKING_UNSTAKE_TIMEOUT notifications.
11
+ *
12
+ * @see packages/actions/src/common/async-status-tracker.ts
13
+ */
14
+ /** Expected days for Solana epoch boundary (~2-3 days). */
15
+ const JITO_EXPECTED_DAYS = 3;
16
+ export class JitoEpochTracker {
17
+ name = 'jito-epoch';
18
+ maxAttempts = 240; // 240 x 30s = 2 hours active polling
19
+ pollIntervalMs = 30_000; // 30 seconds
20
+ timeoutTransition = 'TIMEOUT';
21
+ async checkStatus(_txId, metadata) {
22
+ // If metadata.status is 'deactivated', unstake is complete
23
+ if (metadata.status === 'deactivated') {
24
+ return {
25
+ state: 'COMPLETED',
26
+ details: {
27
+ completedAt: Date.now(),
28
+ protocol: 'jito',
29
+ notificationEvent: 'STAKING_UNSTAKE_COMPLETED',
30
+ },
31
+ };
32
+ }
33
+ // Calculate estimated days remaining based on unstake request time
34
+ const requestedAt = metadata.unstakeRequestedAt;
35
+ const estimatedDaysRemaining = requestedAt
36
+ ? Math.max(0, JITO_EXPECTED_DAYS - (Date.now() - requestedAt) / (1000 * 60 * 60 * 24))
37
+ : JITO_EXPECTED_DAYS;
38
+ return {
39
+ state: 'PENDING',
40
+ details: {
41
+ estimatedDaysRemaining: Math.round(estimatedDaysRemaining * 10) / 10,
42
+ protocol: 'jito',
43
+ targetEpoch: metadata.targetEpoch ?? null,
44
+ },
45
+ };
46
+ }
47
+ }
48
+ //# sourceMappingURL=epoch-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"epoch-tracker.js","sourceRoot":"","sources":["../../../src/providers/jito-staking/epoch-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,2DAA2D;AAC3D,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,YAAY,CAAC;IACpB,WAAW,GAAG,GAAG,CAAC,CAAU,qCAAqC;IACjE,cAAc,GAAG,MAAM,CAAC,CAAI,aAAa;IACzC,iBAAiB,GAAG,SAAkB,CAAC;IAEhD,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,QAAiC;QAChE,2DAA2D;QAC3D,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACtC,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,OAAO,EAAE;oBACP,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;oBACvB,QAAQ,EAAE,MAAM;oBAChB,iBAAiB,EAAE,2BAA2B;iBAC/C;aACF,CAAC;QACJ,CAAC;QAED,mEAAmE;QACnE,MAAM,WAAW,GAAG,QAAQ,CAAC,kBAAwC,CAAC;QACtE,MAAM,sBAAsB,GAAG,WAAW;YACxC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACtF,CAAC,CAAC,kBAAkB,CAAC;QAEvB,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;gBACP,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC,GAAG,EAAE;gBACpE,QAAQ,EAAE,MAAM;gBAChB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI;aAC1C;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import type { IActionProvider, ActionProviderMetadata, ActionDefinition, ActionContext, ContractCallRequest } from '@waiaas/core';
2
+ import { type JitoStakingConfig } from './config.js';
3
+ export declare class JitoStakingActionProvider implements IActionProvider {
4
+ readonly metadata: ActionProviderMetadata;
5
+ readonly actions: readonly ActionDefinition[];
6
+ private readonly config;
7
+ constructor(config?: Partial<JitoStakingConfig>);
8
+ resolve(actionName: string, params: Record<string, unknown>, context: ActionContext): Promise<ContractCallRequest>;
9
+ private resolveStake;
10
+ private resolveUnstake;
11
+ }
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/jito-staking/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,iBAAiB,EAAyB,MAAM,aAAa,CAAC;AAuB5E,qBAAa,yBAA0B,YAAW,eAAe;IAC/D,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAE9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAE/B,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAiCzC,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,mBAAmB,CAAC;YAkBjB,YAAY;YAcZ,cAAc;CAS7B"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Jito Staking Action Provider.
3
+ *
4
+ * Implements IActionProvider to resolve Jito liquid staking requests
5
+ * into ContractCallRequest objects for the sequential pipeline.
6
+ *
7
+ * Actions:
8
+ * - stake: SOL -> JitoSOL via SPL Stake Pool depositSol
9
+ * - unstake: JitoSOL -> SOL via SPL Stake Pool withdrawSol
10
+ */
11
+ import { z } from 'zod';
12
+ import { ChainError } from '@waiaas/core';
13
+ import { JITO_STAKING_DEFAULTS } from './config.js';
14
+ import { buildDepositSolRequest, buildWithdrawSolRequest, parseSolAmount, } from './jito-stake-pool.js';
15
+ // ---------------------------------------------------------------------------
16
+ // Input schemas (Zod SSoT)
17
+ // ---------------------------------------------------------------------------
18
+ const JitoStakeInputSchema = z.object({
19
+ amount: z.string().min(1, 'amount is required (SOL, e.g. "1.0")'),
20
+ });
21
+ const JitoUnstakeInputSchema = z.object({
22
+ amount: z.string().min(1, 'amount is required (JitoSOL, e.g. "1.0")'),
23
+ });
24
+ // ---------------------------------------------------------------------------
25
+ // Provider implementation
26
+ // ---------------------------------------------------------------------------
27
+ export class JitoStakingActionProvider {
28
+ metadata;
29
+ actions;
30
+ config;
31
+ constructor(config) {
32
+ this.config = { ...JITO_STAKING_DEFAULTS, ...config };
33
+ this.metadata = {
34
+ name: 'jito_staking',
35
+ description: 'Jito liquid staking protocol for SOL to JitoSOL conversion via SPL Stake Pool',
36
+ version: '1.0.0',
37
+ chains: ['solana'],
38
+ mcpExpose: true,
39
+ requiresApiKey: false,
40
+ requiredApis: [],
41
+ };
42
+ this.actions = [
43
+ {
44
+ name: 'stake',
45
+ description: 'Stake SOL to receive JitoSOL via Jito Stake Pool (DepositSol). Immediate, no lock-up.',
46
+ chain: 'solana',
47
+ inputSchema: JitoStakeInputSchema,
48
+ riskLevel: 'medium',
49
+ defaultTier: 'DELAY',
50
+ },
51
+ {
52
+ name: 'unstake',
53
+ description: 'Withdraw SOL from Jito Stake Pool by burning JitoSOL (WithdrawSol). Epoch boundary delay.',
54
+ chain: 'solana',
55
+ inputSchema: JitoUnstakeInputSchema,
56
+ riskLevel: 'medium',
57
+ defaultTier: 'DELAY',
58
+ },
59
+ ];
60
+ }
61
+ async resolve(actionName, params, context) {
62
+ if (actionName === 'stake') {
63
+ return this.resolveStake(params, context);
64
+ }
65
+ if (actionName === 'unstake') {
66
+ return this.resolveUnstake(params, context);
67
+ }
68
+ throw new ChainError('INVALID_INSTRUCTION', 'solana', {
69
+ message: `Unknown action: ${actionName}`,
70
+ });
71
+ }
72
+ // -------------------------------------------------------------------------
73
+ // Stake: SOL -> JitoSOL via DepositSol
74
+ // -------------------------------------------------------------------------
75
+ async resolveStake(params, context) {
76
+ const input = JitoStakeInputSchema.parse(params);
77
+ const amountLamports = await parseSolAmount(input.amount);
78
+ return buildDepositSolRequest(this.config, amountLamports, context.walletAddress);
79
+ }
80
+ // -------------------------------------------------------------------------
81
+ // Unstake: JitoSOL -> SOL via WithdrawSol
82
+ // -------------------------------------------------------------------------
83
+ async resolveUnstake(params, context) {
84
+ const input = JitoUnstakeInputSchema.parse(params);
85
+ const amountLamports = await parseSolAmount(input.amount);
86
+ return buildWithdrawSolRequest(this.config, amountLamports, context.walletAddress);
87
+ }
88
+ }
89
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/jito-staking/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { type JitoStakingConfig } from './config.js';
2
+ /**
3
+ * Decode a base58 string to bytes.
4
+ */
5
+ export declare function base58Decode(str: string): Uint8Array;
6
+ /**
7
+ * Encode bytes to a base58 string.
8
+ */
9
+ export declare function base58Encode(bytes: Uint8Array): string;
10
+ /**
11
+ * Find a program-derived address (PDA) for the given seeds and program ID.
12
+ *
13
+ * @param seeds - Array of seed buffers
14
+ * @param programId - Program ID as bytes (32 bytes)
15
+ * @returns [address_bytes (32), bump (number)]
16
+ */
17
+ export declare function findProgramAddress(seeds: Uint8Array[], programId: Uint8Array): Promise<[Uint8Array, number]>;
18
+ /**
19
+ * Derive the Associated Token Address (ATA) for a wallet and mint.
20
+ *
21
+ * @param wallet - Wallet public key (base58)
22
+ * @param mint - Token mint address (base58)
23
+ * @param tokenProgram - Token program ID (base58), defaults to SPL Token
24
+ * @returns ATA public key as base58 string
25
+ */
26
+ export declare function getAssociatedTokenAddress(wallet: string, mint: string, tokenProgram?: string): Promise<string>;
27
+ /**
28
+ * Encode DepositSol instruction data (index 14 + LE u64 amount).
29
+ * @returns base64-encoded instruction data
30
+ */
31
+ export declare function encodeDepositSolData(amountLamports: bigint): string;
32
+ /**
33
+ * Encode WithdrawSol instruction data (index 16 + LE u64 amount).
34
+ * @returns base64-encoded instruction data
35
+ */
36
+ export declare function encodeWithdrawSolData(amountLamports: bigint): string;
37
+ /**
38
+ * Parse a human-readable SOL amount string to lamports (bigint).
39
+ * SOL has 9 decimals (not 18 like ETH).
40
+ *
41
+ * "1.5" -> 1500000000n (1.5 SOL in lamports)
42
+ *
43
+ * @throws ChainError if amount is zero or negative
44
+ */
45
+ export declare function parseSolAmount(amount: string): Promise<bigint>;
46
+ /** Account meta for Solana instruction accounts. */
47
+ interface AccountMeta {
48
+ pubkey: string;
49
+ isSigner: boolean;
50
+ isWritable: boolean;
51
+ }
52
+ /**
53
+ * Build a ContractCallRequest for SPL Stake Pool DepositSol.
54
+ *
55
+ * SPL Stake Pool DepositSol accounts (in order):
56
+ * 0. stakePool (writable)
57
+ * 1. withdrawAuthority (PDA, read-only)
58
+ * 2. reserveStake (writable)
59
+ * 3. fundingAccount (signer, writable) = wallet
60
+ * 4. destTokenAccount (writable) = wallet's JitoSOL ATA
61
+ * 5. managerFeeAccount (writable)
62
+ * 6. referralFeeAccount (writable) = same as managerFeeAccount (no referral)
63
+ * 7. poolMint (writable) = JitoSOL mint
64
+ * 8. systemProgram (read-only)
65
+ * 9. tokenProgram (read-only)
66
+ */
67
+ export declare function buildDepositSolRequest(config: JitoStakingConfig, amountLamports: bigint, walletAddress: string): Promise<{
68
+ type: 'CONTRACT_CALL';
69
+ to: string;
70
+ programId: string;
71
+ instructionData: string;
72
+ accounts: AccountMeta[];
73
+ value: string;
74
+ }>;
75
+ /**
76
+ * Build a ContractCallRequest for SPL Stake Pool WithdrawSol.
77
+ *
78
+ * SPL Stake Pool WithdrawSol accounts (in order):
79
+ * 0. stakePool (writable)
80
+ * 1. withdrawAuthority (PDA, read-only)
81
+ * 2. userTransferAuthority (signer) = wallet
82
+ * 3. sourceTokenAccount (writable) = wallet's JitoSOL ATA
83
+ * 4. reserveStake (writable)
84
+ * 5. destSolAccount (writable) = wallet (receives SOL)
85
+ * 6. managerFeeAccount (writable)
86
+ * 7. poolMint (writable) = JitoSOL mint
87
+ * 8. clock (read-only)
88
+ * 9. stakeHistory (read-only)
89
+ * 10. stakeProgram (read-only)
90
+ * 11. tokenProgram (read-only)
91
+ */
92
+ export declare function buildWithdrawSolRequest(config: JitoStakingConfig, amountLamports: bigint, walletAddress: string): Promise<{
93
+ type: 'CONTRACT_CALL';
94
+ to: string;
95
+ programId: string;
96
+ instructionData: string;
97
+ accounts: AccountMeta[];
98
+ }>;
99
+ export {};
100
+ //# sourceMappingURL=jito-stake-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jito-stake-pool.d.ts","sourceRoot":"","sources":["../../../src/providers/jito-staking/jito-stake-pool.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,KAAK,iBAAiB,EAMvB,MAAM,aAAa,CAAC;AAsBrB;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAiCpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CA8BtD;AA6ED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,UAAU,EAAE,EACnB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CA8B/B;AASD;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,YAAY,GAAE,MAA0B,GACvC,OAAO,CAAC,MAAM,CAAC,CAYjB;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAMpE;AAMD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAcpE;AAcD,oDAAoD;AACpD,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,iBAAiB,EACzB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC;IACT,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CA4BD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,iBAAiB,EACzB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC;IACT,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC,CA6BD"}