@agent-shield/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.
package/README.md ADDED
@@ -0,0 +1,182 @@
1
+ # @agent-shield/sdk
2
+
3
+ TypeScript SDK for AgentShield — permission-guarded DeFi access for AI agents on Solana.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @agent-shield/sdk @coral-xyz/anchor @solana/web3.js
9
+ ```
10
+
11
+ Peer dependencies: `@coral-xyz/anchor ^0.32.1`, `@solana/web3.js ^1.95.0`
12
+
13
+ Optional: `flash-sdk ^12.0.3` (only needed for Flash Trade perpetuals)
14
+
15
+ ## Quick Start
16
+
17
+ ```typescript
18
+ import { AgentShieldClient } from "@agent-shield/sdk";
19
+ import { Connection, Keypair, PublicKey } from "@solana/web3.js";
20
+ import { Wallet, BN } from "@coral-xyz/anchor";
21
+
22
+ const connection = new Connection("https://api.devnet.solana.com");
23
+ const wallet = new Wallet(ownerKeypair);
24
+ const client = new AgentShieldClient(connection, wallet);
25
+
26
+ // 1. Create a vault with policy
27
+ await client.createVault({
28
+ vaultId: new BN(1),
29
+ dailySpendingCap: new BN(500_000_000), // 500 USDC (6 decimals)
30
+ maxTransactionSize: new BN(100_000_000), // 100 USDC per tx
31
+ allowedTokens: [USDC_MINT, SOL_MINT],
32
+ allowedProtocols: [JUPITER_PROGRAM_ID],
33
+ maxLeverageBps: 0,
34
+ maxConcurrentPositions: 0,
35
+ feeDestination: feeWallet.publicKey,
36
+ });
37
+
38
+ // 2. Deposit funds
39
+ const [vaultPDA] = client.getVaultPDA(wallet.publicKey, new BN(1));
40
+ await client.deposit(vaultPDA, USDC_MINT, new BN(1_000_000_000));
41
+
42
+ // 3. Register an agent
43
+ await client.registerAgent(vaultPDA, agentKeypair.publicKey);
44
+
45
+ // 4. Agent executes a swap through Jupiter
46
+ const sig = await client.executeJupiterSwap({
47
+ vault: vaultPDA,
48
+ owner: wallet.publicKey,
49
+ vaultId: new BN(1),
50
+ agent: agentKeypair.publicKey,
51
+ inputMint: USDC_MINT,
52
+ outputMint: SOL_MINT,
53
+ amount: new BN(10_000_000),
54
+ slippageBps: 50,
55
+ });
56
+ ```
57
+
58
+ ## API Reference
59
+
60
+ ### Vault Management
61
+
62
+ | Method | Description |
63
+ |--------|-------------|
64
+ | `createVault(params)` | Create a new vault with policy, tracker, and fee destination |
65
+ | `deposit(vault, mint, amount)` | Deposit SPL tokens into the vault |
66
+ | `registerAgent(vault, agent)` | Register an agent signing key on the vault |
67
+ | `updatePolicy(vault, params)` | Update policy fields (owner only) |
68
+ | `revokeAgent(vault)` | Freeze the vault — kill switch |
69
+ | `reactivateVault(vault, newAgent?)` | Unfreeze and optionally rotate agent key |
70
+ | `withdraw(vault, mint, amount)` | Withdraw tokens to owner (owner only) |
71
+ | `closeVault(vault)` | Close vault and reclaim rent |
72
+
73
+ ### Permission Engine
74
+
75
+ | Method | Description |
76
+ |--------|-------------|
77
+ | `authorizeAction(vault, params)` | Validate an agent action against policy and create a session |
78
+ | `finalizeSession(vault, agent, success, ...)` | Close session, record audit, collect fees |
79
+
80
+ ### Transaction Composition
81
+
82
+ These methods build atomic transactions in the pattern `[ValidateAndAuthorize, DeFi_ix, FinalizeSession]`:
83
+
84
+ | Method | Description |
85
+ |--------|-------------|
86
+ | `composePermittedAction(params, computeUnits?)` | Build instruction array for any DeFi action |
87
+ | `composePermittedTransaction(params, computeUnits?)` | Build a complete `VersionedTransaction` |
88
+ | `composePermittedSwap(params, computeUnits?)` | Shorthand for swap-type actions |
89
+ | `composeAndSend(params, signers?, computeUnits?)` | Compose, sign, send, and confirm in one call |
90
+
91
+ ### Jupiter Integration
92
+
93
+ | Method | Description |
94
+ |--------|-------------|
95
+ | `getJupiterQuote(params)` | Fetch a swap quote from Jupiter V6 API |
96
+ | `jupiterSwap(params)` | Build an unsigned `VersionedTransaction` for a Jupiter swap |
97
+ | `executeJupiterSwap(params, signers?)` | Quote, compose, sign, send, and confirm |
98
+
99
+ ### Flash Trade Integration
100
+
101
+ | Method | Description |
102
+ |--------|-------------|
103
+ | `flashTradeOpen(params, poolConfig?)` | Compose an open position through Flash Trade |
104
+ | `flashTradeClose(params, poolConfig?)` | Compose a close position |
105
+ | `flashTradeIncrease(params, poolConfig?)` | Compose an increase position |
106
+ | `flashTradeDecrease(params, poolConfig?)` | Compose a decrease position |
107
+ | `executeFlashTrade(result, agent, signers?)` | Sign, send, and confirm a Flash Trade transaction |
108
+ | `createFlashTradeClient(config?)` | Create/cache a `PerpetualsClient` |
109
+ | `getFlashPoolConfig(poolName?, cluster?)` | Get/cache Flash Trade pool config |
110
+
111
+ ### PDA Helpers
112
+
113
+ ```typescript
114
+ const [vaultPDA, bump] = client.getVaultPDA(owner, vaultId);
115
+ const [policyPDA] = client.getPolicyPDA(vaultPDA);
116
+ const [trackerPDA] = client.getTrackerPDA(vaultPDA);
117
+ const [sessionPDA] = client.getSessionPDA(vaultPDA, agent);
118
+ ```
119
+
120
+ ### Account Fetchers
121
+
122
+ ```typescript
123
+ const vault = await client.fetchVault(owner, vaultId);
124
+ const policy = await client.fetchPolicy(vaultPDA);
125
+ const tracker = await client.fetchTracker(vaultPDA);
126
+
127
+ // Or fetch by address directly
128
+ const vault = await client.fetchVaultByAddress(vaultPDA);
129
+ const policy = await client.fetchPolicyByAddress(policyPDA);
130
+ const tracker = await client.fetchTrackerByAddress(trackerPDA);
131
+ ```
132
+
133
+ ## Types
134
+
135
+ ### Instruction Parameters
136
+
137
+ - **`InitializeVaultParams`** — `vaultId`, `dailySpendingCap`, `maxTransactionSize`, `allowedTokens`, `allowedProtocols`, `maxLeverageBps`, `maxConcurrentPositions`, `feeDestination`
138
+ - **`UpdatePolicyParams`** — All policy fields as optionals (only set fields are updated)
139
+ - **`AuthorizeParams`** — `actionType`, `tokenMint`, `amount`, `targetProtocol`, `leverageBps?`
140
+ - **`ComposeActionParams`** — Full params for composed transactions including `defiInstructions`, `success?`, token accounts
141
+
142
+ ### Account Types
143
+
144
+ - **`AgentVaultAccount`** — owner, agent, feeDestination, vaultId, status, stats
145
+ - **`PolicyConfigAccount`** — caps, whitelists, leverage limits, fee BPS
146
+ - **`SpendTrackerAccount`** — rolling spends, recent transactions
147
+ - **`SessionAuthorityAccount`** — ephemeral session with action type and expiry
148
+
149
+ ### Enums
150
+
151
+ - **`VaultStatus`** — `{ active: {} }`, `{ frozen: {} }`, `{ closed: {} }`
152
+ - **`ActionType`** — `{ swap: {} }`, `{ openPosition: {} }`, `{ closePosition: {} }`, `{ increasePosition: {} }`, `{ decreasePosition: {} }`, `{ deposit: {} }`, `{ withdraw: {} }`
153
+
154
+ ## Constants
155
+
156
+ ```typescript
157
+ import {
158
+ AGENT_SHIELD_PROGRAM_ID, // 4ZeVCqnjUgUtFrHHPG7jELUxvJeoVGHhGNgPrhBPwrHL
159
+ JUPITER_V6_API, // https://quote-api.jup.ag/v6
160
+ JUPITER_PROGRAM_ID, // JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4
161
+ FLASH_TRADE_PROGRAM_ID, // PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJu
162
+ } from "@agent-shield/sdk";
163
+ ```
164
+
165
+ ## Architecture
166
+
167
+ The SDK uses **instruction composition** rather than CPI wrapping. This avoids Solana's 4-level CPI depth limit and keeps the compute budget manageable:
168
+
169
+ ```
170
+ Transaction = [
171
+ SetComputeUnitLimit(1_400_000),
172
+ ValidateAndAuthorize, // AgentShield: check policy, create session
173
+ ...DeFi instructions, // Jupiter swap / Flash Trade open / etc.
174
+ FinalizeSession // AgentShield: audit, fees, close session
175
+ ]
176
+ ```
177
+
178
+ All instructions in the transaction succeed or fail atomically.
179
+
180
+ ## License
181
+
182
+ MIT
package/dist/accounts.js CHANGED
@@ -33,27 +33,27 @@ function getSessionPDA(vault, agent, programId = types_1.AGENT_SHIELD_PROGRAM_ID
33
33
  // --- Account Fetching ---
34
34
  async function fetchVault(program, owner, vaultId) {
35
35
  const [vaultPda] = getVaultPDA(owner, vaultId, program.programId);
36
- return (await program.account.agentVault.fetch(vaultPda));
36
+ return (await program.account.AgentVault.fetch(vaultPda));
37
37
  }
38
38
  async function fetchPolicy(program, vault) {
39
39
  const [policyPda] = getPolicyPDA(vault, program.programId);
40
- return (await program.account.policyConfig.fetch(policyPda));
40
+ return (await program.account.PolicyConfig.fetch(policyPda));
41
41
  }
42
42
  async function fetchTracker(program, vault) {
43
43
  const [trackerPda] = getTrackerPDA(vault, program.programId);
44
- return (await program.account.spendTracker.fetch(trackerPda));
44
+ return (await program.account.SpendTracker.fetch(trackerPda));
45
45
  }
46
46
  async function fetchSession(program, vault, agent) {
47
47
  const [sessionPda] = getSessionPDA(vault, agent, program.programId);
48
- return (await program.account.sessionAuthority.fetch(sessionPda));
48
+ return (await program.account.SessionAuthority.fetch(sessionPda));
49
49
  }
50
50
  async function fetchVaultByAddress(program, address) {
51
- return (await program.account.agentVault.fetch(address));
51
+ return (await program.account.AgentVault.fetch(address));
52
52
  }
53
53
  async function fetchPolicyByAddress(program, address) {
54
- return (await program.account.policyConfig.fetch(address));
54
+ return (await program.account.PolicyConfig.fetch(address));
55
55
  }
56
56
  async function fetchTrackerByAddress(program, address) {
57
- return (await program.account.spendTracker.fetch(address));
57
+ return (await program.account.SpendTracker.fetch(address));
58
58
  }
59
59
  //# sourceMappingURL=accounts.js.map
package/dist/client.d.ts CHANGED
@@ -23,7 +23,15 @@ export declare class AgentShieldClient {
23
23
  registerAgent(vault: PublicKey, agent: PublicKey): Promise<string>;
24
24
  updatePolicy(vault: PublicKey, params: UpdatePolicyParams): Promise<string>;
25
25
  authorizeAction(vault: PublicKey, params: AuthorizeParams): Promise<string>;
26
- finalizeSession(vault: PublicKey, agent: PublicKey, success: boolean, vaultTokenAccount?: PublicKey | null, feeDestinationTokenAccount?: PublicKey | null): Promise<string>;
26
+ finalizeSession(vault: PublicKey, agent: PublicKey, success: boolean, vaultTokenAccount?: PublicKey | null, feeDestinationTokenAccount?: PublicKey | null, protocolTreasuryTokenAccount?: PublicKey | null): Promise<string>;
27
+ /**
28
+ * Calculate protocol and developer fees for a given amount.
29
+ */
30
+ static calculateFees(amount: BN, developerFeeRate: number): {
31
+ protocolFee: BN;
32
+ developerFee: BN;
33
+ totalFee: BN;
34
+ };
27
35
  revokeAgent(vault: PublicKey): Promise<string>;
28
36
  reactivateVault(vault: PublicKey, newAgent?: PublicKey | null): Promise<string>;
29
37
  withdraw(vault: PublicKey, mint: PublicKey, amount: BN): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AgentShieldClient = void 0;
4
4
  const web3_js_1 = require("@solana/web3.js");
5
5
  const anchor_1 = require("@coral-xyz/anchor");
6
+ const types_1 = require("./types");
6
7
  const accounts_1 = require("./accounts");
7
8
  const instructions_1 = require("./instructions");
8
9
  const composer_1 = require("./composer");
@@ -76,9 +77,25 @@ class AgentShieldClient {
76
77
  const agent = this.provider.wallet.publicKey;
77
78
  return (0, instructions_1.buildValidateAndAuthorize)(this.program, agent, vault, params).rpc();
78
79
  }
79
- async finalizeSession(vault, agent, success, vaultTokenAccount, feeDestinationTokenAccount) {
80
+ async finalizeSession(vault, agent, success, vaultTokenAccount, feeDestinationTokenAccount, protocolTreasuryTokenAccount) {
80
81
  const payer = this.provider.wallet.publicKey;
81
- return (0, instructions_1.buildFinalizeSession)(this.program, payer, vault, agent, success, vaultTokenAccount, feeDestinationTokenAccount).rpc();
82
+ return (0, instructions_1.buildFinalizeSession)(this.program, payer, vault, agent, success, vaultTokenAccount, feeDestinationTokenAccount, protocolTreasuryTokenAccount).rpc();
83
+ }
84
+ /**
85
+ * Calculate protocol and developer fees for a given amount.
86
+ */
87
+ static calculateFees(amount, developerFeeRate) {
88
+ const protocolFee = amount
89
+ .mul(new anchor_1.BN(types_1.PROTOCOL_FEE_RATE))
90
+ .div(new anchor_1.BN(types_1.FEE_RATE_DENOMINATOR));
91
+ const developerFee = amount
92
+ .mul(new anchor_1.BN(developerFeeRate))
93
+ .div(new anchor_1.BN(types_1.FEE_RATE_DENOMINATOR));
94
+ return {
95
+ protocolFee,
96
+ developerFee,
97
+ totalFee: protocolFee.add(developerFee),
98
+ };
82
99
  }
83
100
  async revokeAgent(vault) {
84
101
  const owner = this.provider.wallet.publicKey;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,6CAQyB;AACzB,8CAAwE;AAWxE,yCAWoB;AACpB,iDAWwB;AACxB,yCAIoB;AACpB,oDAOgC;AAChC,4DAcoC;AAEpC,yCAAmD;AAEnD,MAAa,iBAAiB;IAI5B,YACE,UAAsB,EACtB,MAAc,EACd,SAAqB,EACrB,GAAS;QAyPX,kCAAkC;QAE1B,gBAAW,GAA4B,IAAI,CAAC;QAC5C,gBAAW,GAAsB,IAAI,CAAC;QA1P5C,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAc,CAAC,UAAU,EAAE,MAAM,EAAE;YACrD,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,GAAG,IAAI,cAAc,CAAC;QAC1C,IAAI,SAAS,EAAE,CAAC;YACd,WAAW,CAAC,OAAO,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAO,CACxB,WAAW,EACX,IAAI,CAAC,QAAQ,CACP,CAAC;IACX,CAAC;IAED,sBAAsB;IAEtB,WAAW,CAAC,KAAgB,EAAE,OAAW;QACvC,OAAO,IAAA,sBAAW,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,YAAY,CAAC,KAAgB;QAC3B,OAAO,IAAA,uBAAY,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,aAAa,CAAC,KAAgB;QAC5B,OAAO,IAAA,wBAAa,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,aAAa,CAAC,KAAgB,EAAE,KAAgB;QAC9C,OAAO,IAAA,wBAAa,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,2BAA2B;IAE3B,KAAK,CAAC,UAAU,CAAC,KAAgB,EAAE,OAAW;QAC5C,OAAO,IAAA,qBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAAkB;QAC1C,OAAO,IAAA,8BAAmB,EAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAgB;QAChC,OAAO,IAAA,sBAAW,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAkB;QAC3C,OAAO,IAAA,+BAAoB,EAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAgB;QACjC,OAAO,IAAA,uBAAY,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,OAAkB;QAC5C,OAAO,IAAA,gCAAqB,EAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,mDAAmD;IAEnD,KAAK,CAAC,WAAW,CAAC,MAA6B;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7C,OAAO,IAAA,mCAAoB,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAgB,EAAE,IAAe,EAAE,MAAU;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7C,OAAO,IAAA,gCAAiB,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAgB,EAAE,KAAgB;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7C,OAAO,IAAA,iCAAkB,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAgB,EAAE,MAA0B;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7C,OAAO,IAAA,gCAAiB,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAgB,EAAE,MAAuB;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7C,OAAO,IAAA,wCAAyB,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAgB,EAChB,KAAgB,EAChB,OAAgB,EAChB,iBAAoC,EACpC,0BAA6C;QAE7C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7C,OAAO,IAAA,mCAAoB,EACzB,IAAI,CAAC,OAAO,EACZ,KAAK,EACL,KAAK,EACL,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,0BAA0B,CAC3B,CAAC,GAAG,EAAE,CAAC;IACV,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAgB;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7C,OAAO,IAAA,+BAAgB,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAgB,EAAE,QAA2B;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7C,OAAO,IAAA,mCAAoB,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAgB,EAAE,IAAe,EAAE,MAAU;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7C,OAAO,IAAA,iCAAkB,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAgB;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7C,OAAO,IAAA,8BAAe,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3D,CAAC;IAED,sBAAsB;IAEtB,KAAK,CAAC,sBAAsB,CAC1B,MAA2B,EAC3B,YAAqB;QAErB,OAAO,IAAA,iCAAsB,EAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,2BAA2B,CAC/B,MAA2B,EAC3B,YAAqB;QAErB,OAAO,IAAA,sCAA2B,EAChC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,CAAC,UAAU,EACxB,MAAM,EACN,YAAY,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,MAA+C,EAC/C,YAAqB;QAErB,OAAO,IAAA,+BAAoB,EAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAClB,MAA2B,EAC3B,OAAkB,EAClB,YAAqB;QAErB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7E,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,GACvC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;QAEtD,MAAM,SAAS,GAAG,IAAI,4BAAkB,CAAC;YACvC,QAAQ,EAAE,MAAM,CAAC,KAAK;YACtB,eAAe,EAAE,SAAS;YAC1B,YAAY;SACb,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAExB,MAAM,EAAE,GAAG,IAAI,8BAAoB,CAAC,SAAS,CAAC,CAAC;QAE/C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAClF,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAC/C,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,oBAAoB,EAAE,EACnD,WAAW,CACZ,CAAC;QAEF,OAAO,GAAG,CAAC;IACb,CAAC;IAED,8BAA8B;IAE9B;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,MAA0B;QAC9C,OAAO,IAAA,2BAAiB,EAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,OAAO,IAAA,uCAA6B,EAClC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,CAAC,UAAU,EACxB,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CACtB,MAAyB,EACzB,OAAkB;QAElB,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,MAAM,IAAA,4BAAkB,EACpE,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,CAAC,UAAU,EACxB,MAAM,CACP,CAAC;QAEF,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,GACvC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;QAEtD,MAAM,SAAS,GAAG,IAAI,4BAAkB,CAAC;YACvC,QAAQ,EAAE,MAAM,CAAC,KAAK;YACtB,eAAe,EAAE,SAAS;YAC1B,YAAY;SACb,CAAC,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;QAE3C,MAAM,EAAE,GAAG,IAAI,8BAAoB,CAAC,SAAS,CAAC,CAAC;QAE/C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAClF,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAC/C,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,oBAAoB,EAAE,EACnD,WAAW,CACZ,CAAC;QAEF,OAAO,GAAG,CAAC;IACb,CAAC;IAOD;;OAEG;IACH,sBAAsB,CAAC,MAAkC;QACvD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAA,oCAAuB,EAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,kBAAkB,CAChB,WAAmB,UAAU,EAC7B,UAAqC,cAAc;QAEnD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAA,2BAAa,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,MAA+B,EAC/B,UAAuB;QAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,UAAU,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvD,OAAO,IAAA,mCAAqB,EAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,MAAgC,EAChC,UAAuB;QAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,UAAU,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvD,OAAO,IAAA,oCAAsB,EAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACtB,MAAmC,EACnC,UAAuB;QAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,UAAU,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvD,OAAO,IAAA,uCAAyB,EAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACtB,MAAmC,EACnC,UAAuB;QAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,UAAU,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvD,OAAO,IAAA,uCAAyB,EAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,MAAwB,EACxB,KAAgB,EAChB,OAAkB;QAElB,MAAM,EAAE,GAAG,MAAM,IAAA,0CAA4B,EAC3C,IAAI,CAAC,QAAQ,CAAC,UAAU,EACxB,KAAK,EACL,MAAM,CACP,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAClF,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,GACvC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;QACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAC/C,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,oBAAoB,EAAE,EACnD,WAAW,CACZ,CAAC;QAEF,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA3WD,8CA2WC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EAEtB,oBAAoB,EAEpB,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAMhE;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,MAAM,EAAE,mBAAmB,EAC3B,YAAY,GAAE,MAA8B,GAC3C,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAwBnC;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,mBAAmB,EAC3B,YAAY,GAAE,MAA8B,GAC3C,OAAO,CAAC,oBAAoB,CAAC,CAW/B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,EAC/C,YAAY,GAAE,MAA8B,GAC3C,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAMnC"}
1
+ {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EAEtB,oBAAoB,EAEpB,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAMhE;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,MAAM,EAAE,mBAAmB,EAC3B,YAAY,GAAE,MAA8B,GAC3C,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAyBnC;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,mBAAmB,EAC3B,YAAY,GAAE,MAA8B,GAC3C,OAAO,CAAC,oBAAoB,CAAC,CAW/B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,EAC/C,YAAY,GAAE,MAA8B,GAC3C,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAMnC"}
package/dist/composer.js CHANGED
@@ -24,7 +24,7 @@ async function composePermittedAction(program, params, computeUnits = DEFAULT_CO
24
24
  targetProtocol: params.targetProtocol,
25
25
  leverageBps: params.leverageBps,
26
26
  }).instruction();
27
- const finalizeIx = await (0, instructions_1.buildFinalizeSession)(program, params.agent, params.vault, params.agent, params.success ?? true, params.vaultTokenAccount, params.feeDestinationTokenAccount).instruction();
27
+ const finalizeIx = await (0, instructions_1.buildFinalizeSession)(program, params.agent, params.vault, params.agent, params.success ?? true, params.vaultTokenAccount, params.feeDestinationTokenAccount, params.protocolTreasuryTokenAccount).instruction();
28
28
  return [computeBudgetIx, validateIx, ...params.defiInstructions, finalizeIx];
29
29
  }
30
30
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"composer.js","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":";;AAqBA,wDA4BC;AAMD,kEAgBC;AAMD,oDAUC;AAvFD,6CAOyB;AAGzB,iDAAiF;AAEjF,iEAAiE;AACjE,MAAM,qBAAqB,GAAG,OAAS,CAAC;AAExC;;;;;GAKG;AACI,KAAK,UAAU,sBAAsB,CAC1C,OAA6B,EAC7B,MAA2B,EAC3B,eAAuB,qBAAqB;IAE5C,MAAM,eAAe,GAAG,8BAAoB,CAAC,mBAAmB,CAAC;QAC/D,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,IAAA,wCAAyB,EAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;QACtF,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC,WAAW,EAAE,CAAC;IAEjB,MAAM,UAAU,GAAG,MAAM,IAAA,mCAAoB,EAC3C,OAAO,EACP,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,OAAO,IAAI,IAAI,EACtB,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,0BAA0B,CAClC,CAAC,WAAW,EAAE,CAAC;IAEhB,OAAO,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,2BAA2B,CAC/C,OAA6B,EAC7B,UAAsB,EACtB,MAA2B,EAC3B,eAAuB,qBAAqB;IAE5C,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACjF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAE5D,MAAM,SAAS,GAAG,IAAI,4BAAkB,CAAC;QACvC,QAAQ,EAAE,MAAM,CAAC,KAAK;QACtB,eAAe,EAAE,SAAS;QAC1B,YAAY;KACb,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAExB,OAAO,IAAI,8BAAoB,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,oBAAoB,CACxC,OAA6B,EAC7B,MAA+C,EAC/C,eAAuB,qBAAqB;IAE5C,OAAO,sBAAsB,CAC3B,OAAO,EACP,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EACvC,YAAY,CACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"composer.js","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":";;AAqBA,wDA6BC;AAMD,kEAgBC;AAMD,oDAUC;AAxFD,6CAOyB;AAGzB,iDAAiF;AAEjF,iEAAiE;AACjE,MAAM,qBAAqB,GAAG,OAAS,CAAC;AAExC;;;;;GAKG;AACI,KAAK,UAAU,sBAAsB,CAC1C,OAA6B,EAC7B,MAA2B,EAC3B,eAAuB,qBAAqB;IAE5C,MAAM,eAAe,GAAG,8BAAoB,CAAC,mBAAmB,CAAC;QAC/D,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,IAAA,wCAAyB,EAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;QACtF,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC,WAAW,EAAE,CAAC;IAEjB,MAAM,UAAU,GAAG,MAAM,IAAA,mCAAoB,EAC3C,OAAO,EACP,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,OAAO,IAAI,IAAI,EACtB,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,0BAA0B,EACjC,MAAM,CAAC,4BAA4B,CACpC,CAAC,WAAW,EAAE,CAAC;IAEhB,OAAO,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,2BAA2B,CAC/C,OAA6B,EAC7B,UAAsB,EACtB,MAA2B,EAC3B,eAAuB,qBAAqB;IAE5C,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACjF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAE5D,MAAM,SAAS,GAAG,IAAI,4BAAkB,CAAC;QACvC,QAAQ,EAAE,MAAM,CAAC,KAAK;QACtB,eAAe,EAAE,SAAS;QAC1B,YAAY;KACb,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAExB,OAAO,IAAI,8BAAoB,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,oBAAoB,CACxC,OAA6B,EAC7B,MAA+C,EAC/C,eAAuB,qBAAqB;IAE5C,OAAO,sBAAsB,CAC3B,OAAO,EACP,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EACvC,YAAY,CACb,CAAC;AACJ,CAAC"}
@@ -192,6 +192,7 @@ export declare const IDL: {
192
192
  };
193
193
  }, {
194
194
  readonly name: "session";
195
+ readonly docs: readonly ["Session rent is returned to the session's agent (who paid for it),", "not the arbitrary payer, to prevent rent theft."];
195
196
  readonly writable: true;
196
197
  readonly pda: {
197
198
  readonly seeds: readonly [{
@@ -206,6 +207,10 @@ export declare const IDL: {
206
207
  readonly account: "SessionAuthority";
207
208
  }];
208
209
  };
210
+ }, {
211
+ readonly name: "session_rent_recipient";
212
+ readonly docs: readonly ["Validated in handler to equal session.agent."];
213
+ readonly writable: true;
209
214
  }, {
210
215
  readonly name: "vault_token_account";
211
216
  readonly docs: readonly ["Vault's PDA token account for the session's token (fee source)"];
@@ -213,7 +218,12 @@ export declare const IDL: {
213
218
  readonly optional: true;
214
219
  }, {
215
220
  readonly name: "fee_destination_token_account";
216
- readonly docs: readonly ["Fee destination token account — must match vault.fee_destination"];
221
+ readonly docs: readonly ["Developer fee destination token account — must match vault.fee_destination"];
222
+ readonly writable: true;
223
+ readonly optional: true;
224
+ }, {
225
+ readonly name: "protocol_treasury_token_account";
226
+ readonly docs: readonly ["Protocol treasury token account — must be owned by PROTOCOL_TREASURY"];
217
227
  readonly writable: true;
218
228
  readonly optional: true;
219
229
  }, {
@@ -306,6 +316,9 @@ export declare const IDL: {
306
316
  }, {
307
317
  readonly name: "max_concurrent_positions";
308
318
  readonly type: "u8";
319
+ }, {
320
+ readonly name: "developer_fee_rate";
321
+ readonly type: "u16";
309
322
  }];
310
323
  }, {
311
324
  readonly name: "reactivate_vault";
@@ -469,6 +482,11 @@ export declare const IDL: {
469
482
  readonly type: {
470
483
  readonly option: "u8";
471
484
  };
485
+ }, {
486
+ readonly name: "developer_fee_rate";
487
+ readonly type: {
488
+ readonly option: "u16";
489
+ };
472
490
  }];
473
491
  }, {
474
492
  readonly name: "validate_and_authorize";
@@ -772,14 +790,30 @@ export declare const IDL: {
772
790
  readonly msg: "Insufficient vault balance for withdrawal";
773
791
  }, {
774
792
  readonly code: 6021;
775
- readonly name: "FeeBpsTooHigh";
776
- readonly msg: "Fee basis points exceed maximum (500 bps / 5%)";
793
+ readonly name: "DeveloperFeeTooHigh";
794
+ readonly msg: "Developer fee rate exceeds maximum (50 / 1,000,000 = 0.5 BPS)";
777
795
  }, {
778
796
  readonly code: 6022;
779
797
  readonly name: "InvalidFeeDestination";
780
798
  readonly msg: "Fee destination account invalid";
781
799
  }, {
782
800
  readonly code: 6023;
801
+ readonly name: "InvalidProtocolTreasury";
802
+ readonly msg: "Protocol treasury account does not match expected address";
803
+ }, {
804
+ readonly code: 6024;
805
+ readonly name: "TooManySpendEntries";
806
+ readonly msg: "Spend entry limit reached (too many active entries in rolling window)";
807
+ }, {
808
+ readonly code: 6025;
809
+ readonly name: "InvalidAgentKey";
810
+ readonly msg: "Invalid agent: cannot be the zero address";
811
+ }, {
812
+ readonly code: 6026;
813
+ readonly name: "AgentIsOwner";
814
+ readonly msg: "Invalid agent: agent cannot be the vault owner";
815
+ }, {
816
+ readonly code: 6027;
783
817
  readonly name: "Overflow";
784
818
  readonly msg: "Arithmetic overflow";
785
819
  }];
@@ -903,7 +937,7 @@ export declare const IDL: {
903
937
  readonly type: "pubkey";
904
938
  }, {
905
939
  readonly name: "fee_destination";
906
- readonly docs: readonly ["Protocol fee destination — the AgentShield treasury wallet that receives", "basis-point fees on every finalized transaction. Set at vault creation,", "immutable after initialization."];
940
+ readonly docs: readonly ["Developer fee destination — the wallet that receives developer fees", "on every finalized transaction. Set at vault creation, immutable after", "initialization. Protocol fees go to PROTOCOL_TREASURY separately."];
907
941
  readonly type: "pubkey";
908
942
  }, {
909
943
  readonly name: "vault_id";
@@ -939,7 +973,7 @@ export declare const IDL: {
939
973
  readonly type: "u8";
940
974
  }, {
941
975
  readonly name: "total_fees_collected";
942
- readonly docs: readonly ["Cumulative protocol fees collected from this vault (token base units)"];
976
+ readonly docs: readonly ["Cumulative developer fees collected from this vault (token base units).", "Protocol fees are tracked separately via events."];
943
977
  readonly type: "u64";
944
978
  }];
945
979
  };
@@ -954,19 +988,28 @@ export declare const IDL: {
954
988
  readonly name: "token_mint";
955
989
  readonly type: "pubkey";
956
990
  }, {
957
- readonly name: "fee_amount";
991
+ readonly name: "protocol_fee_amount";
958
992
  readonly type: "u64";
959
993
  }, {
960
- readonly name: "fee_bps";
994
+ readonly name: "developer_fee_amount";
995
+ readonly type: "u64";
996
+ }, {
997
+ readonly name: "protocol_fee_rate";
998
+ readonly type: "u16";
999
+ }, {
1000
+ readonly name: "developer_fee_rate";
961
1001
  readonly type: "u16";
962
1002
  }, {
963
1003
  readonly name: "transaction_amount";
964
1004
  readonly type: "u64";
965
1005
  }, {
966
- readonly name: "fee_destination";
1006
+ readonly name: "protocol_treasury";
1007
+ readonly type: "pubkey";
1008
+ }, {
1009
+ readonly name: "developer_fee_destination";
967
1010
  readonly type: "pubkey";
968
1011
  }, {
969
- readonly name: "cumulative_fees";
1012
+ readonly name: "cumulative_developer_fees";
970
1013
  readonly type: "u64";
971
1014
  }, {
972
1015
  readonly name: "timestamp";
@@ -1053,8 +1096,8 @@ export declare const IDL: {
1053
1096
  readonly docs: readonly ["Maximum number of concurrent open positions"];
1054
1097
  readonly type: "u8";
1055
1098
  }, {
1056
- readonly name: "fee_bps";
1057
- readonly docs: readonly ["Protocol fee in basis points (1 bps = 0.01%). Applied to every finalized", "transaction. Fee deducted from vault, transferred to fee_destination.", "Max MAX_FEE_BPS (500 = 5%). Set to 0 for no fee."];
1099
+ readonly name: "developer_fee_rate";
1100
+ readonly docs: readonly ["Developer fee rate (rate / 1,000,000). Applied to every finalized", "transaction. Fee deducted from vault, transferred to vault's", "fee_destination. Max MAX_DEVELOPER_FEE_RATE (50 = 0.5 BPS).", "Set to 0 for no developer fee. Protocol fee is always applied", "separately at PROTOCOL_FEE_RATE."];
1058
1101
  readonly type: "u16";
1059
1102
  }, {
1060
1103
  readonly name: "bump";
@@ -1084,6 +1127,9 @@ export declare const IDL: {
1084
1127
  }, {
1085
1128
  readonly name: "max_leverage_bps";
1086
1129
  readonly type: "u16";
1130
+ }, {
1131
+ readonly name: "developer_fee_rate";
1132
+ readonly type: "u16";
1087
1133
  }, {
1088
1134
  readonly name: "timestamp";
1089
1135
  readonly type: "i64";
@@ -1 +1 @@
1
- {"version":3,"file":"idl-json.d.ts","sourceRoot":"","sources":["../src/idl-json.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA86EN,CAAC"}
1
+ {"version":3,"file":"idl-json.d.ts","sourceRoot":"","sources":["../src/idl-json.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAk/EN,CAAC"}