@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 +182 -0
- package/dist/accounts.js +7 -7
- package/dist/client.d.ts +9 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +19 -2
- package/dist/client.js.map +1 -1
- package/dist/composer.d.ts.map +1 -1
- package/dist/composer.js +1 -1
- package/dist/composer.js.map +1 -1
- package/dist/idl-json.d.ts +57 -11
- package/dist/idl-json.d.ts.map +1 -1
- package/dist/idl-json.js +84 -16
- package/dist/idl-json.js.map +1 -1
- package/dist/idl.d.ts +191 -112
- package/dist/idl.d.ts.map +1 -1
- package/dist/instructions.d.ts +74 -46
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +5 -3
- package/dist/instructions.js.map +1 -1
- package/dist/types.d.ts +9 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
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.
|
|
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.
|
|
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.
|
|
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.
|
|
48
|
+
return (await program.account.SessionAuthority.fetch(sessionPda));
|
|
49
49
|
}
|
|
50
50
|
async function fetchVaultByAddress(program, address) {
|
|
51
|
-
return (await program.account.
|
|
51
|
+
return (await program.account.AgentVault.fetch(address));
|
|
52
52
|
}
|
|
53
53
|
async function fetchPolicyByAddress(program, address) {
|
|
54
|
-
return (await program.account.
|
|
54
|
+
return (await program.account.PolicyConfig.fetch(address));
|
|
55
55
|
}
|
|
56
56
|
async function fetchTrackerByAddress(program, address) {
|
|
57
|
-
return (await program.account.
|
|
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>;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,sBAAsB,EACtB,oBAAoB,EAEpB,MAAM,EAEP,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
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;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,6CAQyB;AACzB,8CAAwE;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/composer.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
/**
|
package/dist/composer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composer.js","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":";;AAqBA,
|
|
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"}
|
package/dist/idl-json.d.ts
CHANGED
|
@@ -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 ["
|
|
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: "
|
|
776
|
-
readonly msg: "
|
|
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 ["
|
|
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
|
|
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: "
|
|
991
|
+
readonly name: "protocol_fee_amount";
|
|
958
992
|
readonly type: "u64";
|
|
959
993
|
}, {
|
|
960
|
-
readonly name: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
1057
|
-
readonly docs: readonly ["
|
|
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";
|
package/dist/idl-json.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idl-json.d.ts","sourceRoot":"","sources":["../src/idl-json.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"idl-json.d.ts","sourceRoot":"","sources":["../src/idl-json.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAk/EN,CAAC"}
|