@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.
- package/README.md +14 -12
- package/dist/accounts.d.ts +5 -3
- package/dist/accounts.d.ts.map +1 -1
- package/dist/accounts.js +23 -4
- package/dist/accounts.js.map +1 -1
- package/dist/client.d.ts +16 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +48 -7
- package/dist/client.js.map +1 -1
- package/dist/composer.d.ts.map +1 -1
- package/dist/composer.js +3 -3
- package/dist/composer.js.map +1 -1
- package/dist/idl-json.d.ts +655 -24
- package/dist/idl-json.d.ts.map +1 -1
- package/dist/idl-json.js +1174 -87
- package/dist/idl-json.js.map +1 -1
- package/dist/idl.d.ts +1283 -196
- package/dist/idl.d.ts.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -1
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +604 -61
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +76 -8
- package/dist/instructions.js.map +1 -1
- package/dist/integrations/flash-trade.d.ts.map +1 -1
- package/dist/integrations/flash-trade.js +14 -6
- package/dist/integrations/flash-trade.js.map +1 -1
- package/dist/integrations/jupiter.d.ts.map +1 -1
- package/dist/integrations/jupiter.js +4 -1
- package/dist/integrations/jupiter.js.map +1 -1
- package/dist/oracle.d.ts +31 -0
- package/dist/oracle.d.ts.map +1 -0
- package/dist/oracle.js +57 -0
- package/dist/oracle.js.map +1 -0
- package/dist/rewriter.d.ts +21 -0
- package/dist/rewriter.d.ts.map +1 -0
- package/dist/rewriter.js +33 -0
- package/dist/rewriter.js.map +1 -0
- package/dist/types.d.ts +82 -12
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -1
- package/dist/types.js.map +1 -1
- package/dist/wrap.d.ts +60 -0
- package/dist/wrap.d.ts.map +1 -0
- package/dist/wrap.js +88 -0
- package/dist/wrap.js.map +1 -0
- 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
|
-
|
|
26
|
-
|
|
27
|
-
allowedTokens:
|
|
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
|
-
|
|
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
|
-
|
|
91
|
-
|
|
92
|
-
allowedTokens:
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
allowedTokens?:
|
|
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
|
-
/**
|
|
131
|
-
vaultTokenAccount
|
|
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
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEzC,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,eAAO,MAAM,uBAAuB,WAEnC,CAAC;AAGF,eAAO,MAAM,oBAAoB,UAAY,CAAC;AAC9C,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,iBAAiB,WAE7B,CAAC;AAGF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,SAAS,CAAC;IAC1B,OAAO,EAAE,EAAE,CAAC;IACZ,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,EAAE,CAAC;IACd,iBAAiB,EAAE,EAAE,CAAC;IACtB,WAAW,EAAE,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,
|
|
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
|
package/dist/wrap.js.map
ADDED
|
@@ -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.
|
|
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
|
+
}
|