@agent-shield/sdk 0.1.6 → 0.2.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 (49) hide show
  1. package/README.md +14 -12
  2. package/dist/accounts.d.ts +5 -3
  3. package/dist/accounts.d.ts.map +1 -1
  4. package/dist/accounts.js +23 -4
  5. package/dist/accounts.js.map +1 -1
  6. package/dist/client.d.ts +16 -4
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +48 -7
  9. package/dist/client.js.map +1 -1
  10. package/dist/composer.d.ts.map +1 -1
  11. package/dist/composer.js +3 -3
  12. package/dist/composer.js.map +1 -1
  13. package/dist/idl-json.d.ts +655 -24
  14. package/dist/idl-json.d.ts.map +1 -1
  15. package/dist/idl-json.js +1174 -87
  16. package/dist/idl-json.js.map +1 -1
  17. package/dist/idl.d.ts +1283 -196
  18. package/dist/idl.d.ts.map +1 -1
  19. package/dist/index.d.ts +6 -3
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +25 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/instructions.d.ts +604 -61
  24. package/dist/instructions.d.ts.map +1 -1
  25. package/dist/instructions.js +76 -8
  26. package/dist/instructions.js.map +1 -1
  27. package/dist/integrations/flash-trade.d.ts.map +1 -1
  28. package/dist/integrations/flash-trade.js +14 -6
  29. package/dist/integrations/flash-trade.js.map +1 -1
  30. package/dist/integrations/jupiter.d.ts.map +1 -1
  31. package/dist/integrations/jupiter.js +4 -1
  32. package/dist/integrations/jupiter.js.map +1 -1
  33. package/dist/oracle.d.ts +31 -0
  34. package/dist/oracle.d.ts.map +1 -0
  35. package/dist/oracle.js +57 -0
  36. package/dist/oracle.js.map +1 -0
  37. package/dist/rewriter.d.ts +21 -0
  38. package/dist/rewriter.d.ts.map +1 -0
  39. package/dist/rewriter.js +33 -0
  40. package/dist/rewriter.js.map +1 -0
  41. package/dist/types.d.ts +82 -12
  42. package/dist/types.d.ts.map +1 -1
  43. package/dist/types.js +5 -1
  44. package/dist/types.js.map +1 -1
  45. package/dist/wrap.d.ts +60 -0
  46. package/dist/wrap.d.ts.map +1 -0
  47. package/dist/wrap.js +88 -0
  48. package/dist/wrap.js.map +1 -0
  49. package/package.json +9 -11
package/dist/types.d.ts CHANGED
@@ -7,6 +7,27 @@ export declare const FEE_RATE_DENOMINATOR = 1000000;
7
7
  export declare const PROTOCOL_FEE_RATE = 20;
8
8
  export declare const MAX_DEVELOPER_FEE_RATE = 50;
9
9
  export declare const PROTOCOL_TREASURY: PublicKey;
10
+ export declare const USD_DECIMALS = 6;
11
+ export declare const UNPRICED_SENTINEL: PublicKey;
12
+ /** Oracle source types */
13
+ export type OracleSource = "pyth" | "switchboard";
14
+ /** Per-token configuration stored in PolicyConfig */
15
+ export interface AllowedToken {
16
+ /** Token mint address */
17
+ mint: PublicKey;
18
+ /** Oracle feed account (Pyth PriceUpdateV2 or Switchboard PullFeed).
19
+ * Pubkey.default = stablecoin (1:1 USD).
20
+ * UNPRICED_SENTINEL = unpriced (receive-only). */
21
+ oracleFeed: PublicKey;
22
+ /** Token decimals (e.g., 6 for USDC, 9 for SOL) */
23
+ decimals: number;
24
+ /** Per-token daily cap in base units (0 = no per-token limit) */
25
+ dailyCapBase: BN;
26
+ /** Per-token max single tx in base units (0 = no per-token limit) */
27
+ maxTxBase: BN;
28
+ }
29
+ /** Token classification for oracle routing */
30
+ export type TokenClassification = "stablecoin" | "oracle-priced" | "unpriced";
10
31
  export type AgentVaultAccount = {
11
32
  owner: PublicKey;
12
33
  agent: PublicKey;
@@ -22,14 +43,32 @@ export type AgentVaultAccount = {
22
43
  };
23
44
  export type PolicyConfigAccount = {
24
45
  vault: PublicKey;
25
- dailySpendingCap: BN;
26
- maxTransactionSize: BN;
27
- allowedTokens: PublicKey[];
46
+ dailySpendingCapUsd: BN;
47
+ maxTransactionSizeUsd: BN;
48
+ allowedTokens: AllowedToken[];
28
49
  allowedProtocols: PublicKey[];
29
50
  maxLeverageBps: number;
30
51
  canOpenPositions: boolean;
31
52
  maxConcurrentPositions: number;
32
53
  developerFeeRate: number;
54
+ timelockDuration: BN;
55
+ allowedDestinations: PublicKey[];
56
+ bump: number;
57
+ };
58
+ export type PendingPolicyUpdateAccount = {
59
+ vault: PublicKey;
60
+ queuedAt: BN;
61
+ executesAt: BN;
62
+ dailySpendingCapUsd: BN | null;
63
+ maxTransactionAmountUsd: BN | null;
64
+ allowedTokens: AllowedToken[] | null;
65
+ allowedProtocols: PublicKey[] | null;
66
+ maxLeverageBps: number | null;
67
+ canOpenPositions: boolean | null;
68
+ maxConcurrentPositions: number | null;
69
+ developerFeeRate: number | null;
70
+ timelockDuration: BN | null;
71
+ allowedDestinations: PublicKey[] | null;
33
72
  bump: number;
34
73
  };
35
74
  export type SpendTrackerAccount = {
@@ -40,7 +79,8 @@ export type SpendTrackerAccount = {
40
79
  };
41
80
  export type SpendEntry = {
42
81
  tokenMint: PublicKey;
43
- amountSpent: BN;
82
+ usdAmount: BN;
83
+ baseAmount: BN;
44
84
  timestamp: BN;
45
85
  };
46
86
  export type TransactionRecord = {
@@ -61,6 +101,8 @@ export type SessionAuthorityAccount = {
61
101
  authorizedProtocol: PublicKey;
62
102
  actionType: ActionType;
63
103
  expiresAtSlot: BN;
104
+ delegated: boolean;
105
+ delegationTokenAccount: PublicKey;
64
106
  bump: number;
65
107
  };
66
108
  export type VaultStatus = {
@@ -84,27 +126,53 @@ export type ActionType = {
84
126
  deposit: Record<string, never>;
85
127
  } | {
86
128
  withdraw: Record<string, never>;
129
+ } | {
130
+ transfer: Record<string, never>;
87
131
  };
88
132
  export interface InitializeVaultParams {
89
133
  vaultId: BN;
90
- dailySpendingCap: BN;
91
- maxTransactionSize: BN;
92
- allowedTokens: PublicKey[];
134
+ dailySpendingCapUsd: BN;
135
+ maxTransactionSizeUsd: BN;
136
+ allowedTokens: AllowedToken[];
93
137
  allowedProtocols: PublicKey[];
94
138
  maxLeverageBps: number;
95
139
  maxConcurrentPositions: number;
96
140
  feeDestination: PublicKey;
97
141
  developerFeeRate?: number;
142
+ timelockDuration?: BN;
143
+ allowedDestinations?: PublicKey[];
98
144
  }
99
145
  export interface UpdatePolicyParams {
100
- dailySpendingCap?: BN | null;
101
- maxTransactionSize?: BN | null;
102
- allowedTokens?: PublicKey[] | null;
146
+ dailySpendingCapUsd?: BN | null;
147
+ maxTransactionSizeUsd?: BN | null;
148
+ allowedTokens?: AllowedToken[] | null;
103
149
  allowedProtocols?: PublicKey[] | null;
104
150
  maxLeverageBps?: number | null;
105
151
  canOpenPositions?: boolean | null;
106
152
  maxConcurrentPositions?: number | null;
107
153
  developerFeeRate?: number | null;
154
+ timelockDuration?: BN | null;
155
+ allowedDestinations?: PublicKey[] | null;
156
+ }
157
+ export interface QueuePolicyUpdateParams {
158
+ dailySpendingCapUsd?: BN | null;
159
+ maxTransactionAmountUsd?: BN | null;
160
+ allowedTokens?: AllowedToken[] | null;
161
+ allowedProtocols?: PublicKey[] | null;
162
+ maxLeverageBps?: number | null;
163
+ canOpenPositions?: boolean | null;
164
+ maxConcurrentPositions?: number | null;
165
+ developerFeeRate?: number | null;
166
+ timelockDuration?: BN | null;
167
+ allowedDestinations?: PublicKey[] | null;
168
+ }
169
+ export interface AgentTransferParams {
170
+ amount: BN;
171
+ vaultTokenAccount: PublicKey;
172
+ destinationTokenAccount: PublicKey;
173
+ feeDestinationTokenAccount?: PublicKey | null;
174
+ protocolTreasuryTokenAccount?: PublicKey | null;
175
+ oracleFeedAccount?: PublicKey;
108
176
  }
109
177
  export interface AuthorizeParams {
110
178
  actionType: ActionType;
@@ -127,11 +195,13 @@ export interface ComposeActionParams {
127
195
  defiInstructions: import("@solana/web3.js").TransactionInstruction[];
128
196
  /** Whether the finalize step should report success (default: true) */
129
197
  success?: boolean;
130
- /** Optional: vault token account for fee deduction */
131
- vaultTokenAccount?: PublicKey | null;
198
+ /** Vault's PDA-owned token account for the spend token (required for delegation) */
199
+ vaultTokenAccount: PublicKey;
132
200
  /** Optional: fee destination token account */
133
201
  feeDestinationTokenAccount?: PublicKey | null;
134
202
  /** Optional: protocol treasury token account for protocol fee */
135
203
  protocolTreasuryTokenAccount?: PublicKey | null;
204
+ /** Oracle feed account for oracle-priced tokens (Pyth or Switchboard) */
205
+ oracleFeedAccount?: PublicKey;
136
206
  }
137
207
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PROTOCOL_TREASURY = exports.MAX_DEVELOPER_FEE_RATE = exports.PROTOCOL_FEE_RATE = exports.FEE_RATE_DENOMINATOR = exports.AGENT_SHIELD_PROGRAM_ID = void 0;
3
+ exports.UNPRICED_SENTINEL = exports.USD_DECIMALS = exports.PROTOCOL_TREASURY = exports.MAX_DEVELOPER_FEE_RATE = exports.PROTOCOL_FEE_RATE = exports.FEE_RATE_DENOMINATOR = exports.AGENT_SHIELD_PROGRAM_ID = void 0;
4
4
  const web3_js_1 = require("@solana/web3.js");
5
5
  exports.AGENT_SHIELD_PROGRAM_ID = new web3_js_1.PublicKey("4ZeVCqnjUgUtFrHHPG7jELUxvJeoVGHhGNgPrhBPwrHL");
6
6
  // Fee constants matching on-chain values
@@ -8,4 +8,8 @@ exports.FEE_RATE_DENOMINATOR = 1000000;
8
8
  exports.PROTOCOL_FEE_RATE = 20; // 0.2 BPS
9
9
  exports.MAX_DEVELOPER_FEE_RATE = 50; // 0.5 BPS
10
10
  exports.PROTOCOL_TREASURY = new web3_js_1.PublicKey("ASHie1dFTnDSnrHMPGmniJhMgfJVGPm3rAaEPnrtWDiT");
11
+ // USD decimals (6) — $500 = 500_000_000
12
+ exports.USD_DECIMALS = 6;
13
+ // Sentinel for unpriced (receive-only) tokens — all 0xFF bytes
14
+ exports.UNPRICED_SENTINEL = new web3_js_1.PublicKey(new Uint8Array(32).fill(0xff));
11
15
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAM/B,QAAA,uBAAuB,GAAG,IAAI,mBAAS,CAClD,8CAA8C,CAC/C,CAAC;AAEF,yCAAyC;AAC5B,QAAA,oBAAoB,GAAG,OAAS,CAAC;AACjC,QAAA,iBAAiB,GAAG,EAAE,CAAC,CAAC,UAAU;AAClC,QAAA,sBAAsB,GAAG,EAAE,CAAC,CAAC,UAAU;AACvC,QAAA,iBAAiB,GAAG,IAAI,mBAAS,CAC5C,8CAA8C,CAC/C,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAM/B,QAAA,uBAAuB,GAAG,IAAI,mBAAS,CAClD,8CAA8C,CAC/C,CAAC;AAEF,yCAAyC;AAC5B,QAAA,oBAAoB,GAAG,OAAS,CAAC;AACjC,QAAA,iBAAiB,GAAG,EAAE,CAAC,CAAC,UAAU;AAClC,QAAA,sBAAsB,GAAG,EAAE,CAAC,CAAC,UAAU;AACvC,QAAA,iBAAiB,GAAG,IAAI,mBAAS,CAC5C,8CAA8C,CAC/C,CAAC;AAEF,wCAAwC;AAC3B,QAAA,YAAY,GAAG,CAAC,CAAC;AAE9B,+DAA+D;AAClD,QAAA,iBAAiB,GAAG,IAAI,mBAAS,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC"}
package/dist/wrap.d.ts ADDED
@@ -0,0 +1,60 @@
1
+ import { PublicKey, TransactionInstruction, VersionedTransaction, Connection, AddressLookupTableAccount } from "@solana/web3.js";
2
+ import { BN, Program } from "@coral-xyz/anchor";
3
+ import type { AgentShield, ActionType, AllowedToken } from "./types";
4
+ export interface WrapTransactionParams {
5
+ /** Vault PDA */
6
+ vault: PublicKey;
7
+ /** Vault owner pubkey */
8
+ owner: PublicKey;
9
+ /** Vault ID */
10
+ vaultId: BN;
11
+ /** Agent signer pubkey */
12
+ agent: PublicKey;
13
+ /** Raw DeFi instruction(s) — will be authority-rewritten */
14
+ defiInstructions: TransactionInstruction[];
15
+ /** Token mint being spent */
16
+ tokenMint: PublicKey;
17
+ /** Amount in base units */
18
+ amount: BN;
19
+ /** Target DeFi protocol program ID */
20
+ targetProtocol: PublicKey;
21
+ /** Action type (swap, openPosition, etc.) */
22
+ actionType: ActionType;
23
+ /** Leverage in basis points (for perp actions) */
24
+ leverageBps?: number | null;
25
+ /** Address lookup tables for compact transaction encoding */
26
+ addressLookupTables?: AddressLookupTableAccount[];
27
+ /** Compute unit budget override */
28
+ computeUnits?: number;
29
+ /** Fee destination token account (optional) */
30
+ feeDestinationTokenAccount?: PublicKey | null;
31
+ /** Protocol treasury token account (optional) */
32
+ protocolTreasuryTokenAccount?: PublicKey | null;
33
+ /** Oracle feed account for oracle-priced tokens (auto-resolved from policy if omitted) */
34
+ oracleFeedAccount?: PublicKey;
35
+ }
36
+ /**
37
+ * Wrap arbitrary DeFi instructions into a complete AgentShield transaction.
38
+ *
39
+ * This is the protocol-agnostic entry point. It:
40
+ * 1. Resolves the vault's token account
41
+ * 2. Rewrites authority in DeFi instructions (vault PDA → agent)
42
+ * 3. Builds: [ComputeBudget, ValidateAndAuthorize, ...defi, FinalizeSession]
43
+ * 4. Returns an unsigned VersionedTransaction
44
+ */
45
+ export declare function wrapTransaction(program: Program<AgentShield>, connection: Connection, params: WrapTransactionParams): Promise<VersionedTransaction>;
46
+ /**
47
+ * Build the instruction array for a wrapped transaction without
48
+ * creating the VersionedTransaction. Useful when the caller needs
49
+ * to compose further or use a different signing flow.
50
+ */
51
+ export declare function wrapInstructions(program: Program<AgentShield>, params: WrapTransactionParams): Promise<TransactionInstruction[]>;
52
+ /**
53
+ * Classify a token based on its AllowedToken oracle_feed value.
54
+ */
55
+ export declare function classifyToken(token: AllowedToken): "stablecoin" | "oracle-priced" | "unpriced";
56
+ /**
57
+ * Find an AllowedToken in a policy by mint address.
58
+ */
59
+ export declare function findAllowedToken(allowedTokens: AllowedToken[], mint: PublicKey): AllowedToken | undefined;
60
+ //# sourceMappingURL=wrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../src/wrap.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,sBAAsB,EAEtB,oBAAoB,EAEpB,UAAU,EACV,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAYrE,MAAM,WAAW,qBAAqB;IACpC,gBAAgB;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,yBAAyB;IACzB,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe;IACf,OAAO,EAAE,EAAE,CAAC;IACZ,0BAA0B;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,4DAA4D;IAC5D,gBAAgB,EAAE,sBAAsB,EAAE,CAAC;IAC3C,6BAA6B;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,2BAA2B;IAC3B,MAAM,EAAE,EAAE,CAAC;IACX,sCAAsC;IACtC,cAAc,EAAE,SAAS,CAAC;IAC1B,6CAA6C;IAC7C,UAAU,EAAE,UAAU,CAAC;IACvB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAClD,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,0BAA0B,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC9C,iDAAiD;IACjD,4BAA4B,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAChD,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAW/B;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CA8DnC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,GAClB,YAAY,GAAG,eAAe,GAAG,UAAU,CAQ7C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,YAAY,EAAE,EAC7B,IAAI,EAAE,SAAS,GACd,YAAY,GAAG,SAAS,CAE1B"}
package/dist/wrap.js ADDED
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.wrapTransaction = wrapTransaction;
4
+ exports.wrapInstructions = wrapInstructions;
5
+ exports.classifyToken = classifyToken;
6
+ exports.findAllowedToken = findAllowedToken;
7
+ const web3_js_1 = require("@solana/web3.js");
8
+ const spl_token_1 = require("@solana/spl-token");
9
+ const types_1 = require("./types");
10
+ const accounts_1 = require("./accounts");
11
+ const instructions_1 = require("./instructions");
12
+ const rewriter_1 = require("./rewriter");
13
+ /** Default compute budget for wrapped transactions (1.4M CU) */
14
+ const DEFAULT_COMPUTE_UNITS = 1400000;
15
+ /**
16
+ * Wrap arbitrary DeFi instructions into a complete AgentShield transaction.
17
+ *
18
+ * This is the protocol-agnostic entry point. It:
19
+ * 1. Resolves the vault's token account
20
+ * 2. Rewrites authority in DeFi instructions (vault PDA → agent)
21
+ * 3. Builds: [ComputeBudget, ValidateAndAuthorize, ...defi, FinalizeSession]
22
+ * 4. Returns an unsigned VersionedTransaction
23
+ */
24
+ async function wrapTransaction(program, connection, params) {
25
+ const instructions = await wrapInstructions(program, params);
26
+ const { blockhash } = await connection.getLatestBlockhash();
27
+ const messageV0 = new web3_js_1.TransactionMessage({
28
+ payerKey: params.agent,
29
+ recentBlockhash: blockhash,
30
+ instructions,
31
+ }).compileToV0Message(params.addressLookupTables);
32
+ return new web3_js_1.VersionedTransaction(messageV0);
33
+ }
34
+ /**
35
+ * Build the instruction array for a wrapped transaction without
36
+ * creating the VersionedTransaction. Useful when the caller needs
37
+ * to compose further or use a different signing flow.
38
+ */
39
+ async function wrapInstructions(program, params) {
40
+ const computeUnits = params.computeUnits ?? DEFAULT_COMPUTE_UNITS;
41
+ // Derive vault token account
42
+ const vaultTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(params.tokenMint, params.vault, true);
43
+ // Rewrite authority in DeFi instructions
44
+ const rewrittenDefi = (0, rewriter_1.rewriteVaultAuthority)(params.defiInstructions, params.vault, params.agent);
45
+ // Compute budget
46
+ const computeIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
47
+ units: computeUnits,
48
+ });
49
+ // Auto-resolve oracle feed from policy if not explicitly provided
50
+ let oracleFeed = params.oracleFeedAccount;
51
+ if (!oracleFeed) {
52
+ const policy = await (0, accounts_1.fetchPolicy)(program, params.vault);
53
+ const token = findAllowedToken(policy.allowedTokens, params.tokenMint);
54
+ if (token && classifyToken(token) === "oracle-priced") {
55
+ oracleFeed = token.oracleFeed;
56
+ }
57
+ }
58
+ // Validate and authorize (includes token delegation CPI)
59
+ const validateIx = await (0, instructions_1.buildValidateAndAuthorize)(program, params.agent, params.vault, vaultTokenAccount, {
60
+ actionType: params.actionType,
61
+ tokenMint: params.tokenMint,
62
+ amount: params.amount,
63
+ targetProtocol: params.targetProtocol,
64
+ leverageBps: params.leverageBps,
65
+ }, oracleFeed).instruction();
66
+ // Finalize session (revokes delegation, collects fees)
67
+ const finalizeIx = await (0, instructions_1.buildFinalizeSession)(program, params.agent, params.vault, params.agent, params.tokenMint, true, vaultTokenAccount, params.feeDestinationTokenAccount, params.protocolTreasuryTokenAccount).instruction();
68
+ return [computeIx, validateIx, ...rewrittenDefi, finalizeIx];
69
+ }
70
+ /**
71
+ * Classify a token based on its AllowedToken oracle_feed value.
72
+ */
73
+ function classifyToken(token) {
74
+ if (token.oracleFeed.equals(web3_js_1.PublicKey.default)) {
75
+ return "stablecoin";
76
+ }
77
+ if (token.oracleFeed.equals(types_1.UNPRICED_SENTINEL)) {
78
+ return "unpriced";
79
+ }
80
+ return "oracle-priced";
81
+ }
82
+ /**
83
+ * Find an AllowedToken in a policy by mint address.
84
+ */
85
+ function findAllowedToken(allowedTokens, mint) {
86
+ return allowedTokens.find((t) => t.mint.equals(mint));
87
+ }
88
+ //# sourceMappingURL=wrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../src/wrap.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,18 +1,21 @@
1
1
  {
2
2
  "name": "@agent-shield/sdk",
3
- "version": "0.1.6",
3
+ "version": "0.2.0",
4
4
  "description": "TypeScript SDK for AgentShield — permission-guarded DeFi access for AI agents on Solana",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
- "files": [
9
- "dist",
10
- "README.md"
11
- ],
8
+ "files": ["dist", "README.md"],
12
9
  "sideEffects": false,
13
10
  "engines": {
14
11
  "node": ">=18.0.0"
15
12
  },
13
+ "scripts": {
14
+ "build": "tsc",
15
+ "clean": "rm -rf dist",
16
+ "test": "mocha --require ts-node/register tests/**/*.test.ts --timeout 30000",
17
+ "prepublishOnly": "npm run clean && npm run build"
18
+ },
16
19
  "dependencies": {
17
20
  "@solana/spl-token": "^0.4.0"
18
21
  },
@@ -36,10 +39,5 @@
36
39
  "repository": {
37
40
  "type": "git",
38
41
  "url": "https://github.com/agentshield/agent-middleware"
39
- },
40
- "scripts": {
41
- "build": "tsc",
42
- "clean": "rm -rf dist",
43
- "test": "mocha --require ts-node/register tests/**/*.test.ts --timeout 30000"
44
42
  }
45
- }
43
+ }