@agent-shield/sdk 0.1.6 → 0.3.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 +24 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +73 -9
- 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 +731 -33
- package/dist/idl-json.d.ts.map +1 -1
- package/dist/idl-json.js +1258 -54
- package/dist/idl-json.js.map +1 -1
- package/dist/idl.d.ts +1363 -159
- package/dist/idl.d.ts.map +1 -1
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -1
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +658 -64
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +78 -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 +109 -13
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +15 -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 +13 -2
package/dist/types.d.ts
CHANGED
|
@@ -7,6 +7,36 @@ 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
|
+
/** Tracker capacity tier — determines max rolling spend entries */
|
|
13
|
+
export declare enum TrackerTier {
|
|
14
|
+
/** 200 entries (~16 KB, ~0.11 SOL rent) */
|
|
15
|
+
Standard = 0,
|
|
16
|
+
/** 500 entries (~33 KB, ~0.23 SOL rent) */
|
|
17
|
+
Pro = 1,
|
|
18
|
+
/** 1000 entries (~61 KB, ~0.42 SOL rent) */
|
|
19
|
+
Max = 2
|
|
20
|
+
}
|
|
21
|
+
/** Oracle source types */
|
|
22
|
+
export type OracleSource = "pyth" | "switchboard";
|
|
23
|
+
/** Per-token configuration stored in PolicyConfig */
|
|
24
|
+
export interface AllowedToken {
|
|
25
|
+
/** Token mint address */
|
|
26
|
+
mint: PublicKey;
|
|
27
|
+
/** Oracle feed account (Pyth PriceUpdateV2 or Switchboard PullFeed).
|
|
28
|
+
* Pubkey.default = stablecoin (1:1 USD).
|
|
29
|
+
* UNPRICED_SENTINEL = unpriced (receive-only). */
|
|
30
|
+
oracleFeed: PublicKey;
|
|
31
|
+
/** Token decimals (e.g., 6 for USDC, 9 for SOL) */
|
|
32
|
+
decimals: number;
|
|
33
|
+
/** Per-token daily cap in base units (0 = no per-token limit) */
|
|
34
|
+
dailyCapBase: BN;
|
|
35
|
+
/** Per-token max single tx in base units (0 = no per-token limit) */
|
|
36
|
+
maxTxBase: BN;
|
|
37
|
+
}
|
|
38
|
+
/** Token classification for oracle routing */
|
|
39
|
+
export type TokenClassification = "stablecoin" | "oracle-priced" | "unpriced";
|
|
10
40
|
export type AgentVaultAccount = {
|
|
11
41
|
owner: PublicKey;
|
|
12
42
|
agent: PublicKey;
|
|
@@ -19,28 +49,62 @@ export type AgentVaultAccount = {
|
|
|
19
49
|
totalVolume: BN;
|
|
20
50
|
openPositions: number;
|
|
21
51
|
totalFeesCollected: BN;
|
|
52
|
+
trackerTier: {
|
|
53
|
+
standard: Record<string, never>;
|
|
54
|
+
} | {
|
|
55
|
+
pro: Record<string, never>;
|
|
56
|
+
} | {
|
|
57
|
+
max: Record<string, never>;
|
|
58
|
+
};
|
|
22
59
|
};
|
|
23
60
|
export type PolicyConfigAccount = {
|
|
24
61
|
vault: PublicKey;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
allowedTokens:
|
|
62
|
+
dailySpendingCapUsd: BN;
|
|
63
|
+
maxTransactionSizeUsd: BN;
|
|
64
|
+
allowedTokens: AllowedToken[];
|
|
28
65
|
allowedProtocols: PublicKey[];
|
|
29
66
|
maxLeverageBps: number;
|
|
30
67
|
canOpenPositions: boolean;
|
|
31
68
|
maxConcurrentPositions: number;
|
|
32
69
|
developerFeeRate: number;
|
|
70
|
+
timelockDuration: BN;
|
|
71
|
+
allowedDestinations: PublicKey[];
|
|
72
|
+
bump: number;
|
|
73
|
+
};
|
|
74
|
+
export type PendingPolicyUpdateAccount = {
|
|
75
|
+
vault: PublicKey;
|
|
76
|
+
queuedAt: BN;
|
|
77
|
+
executesAt: BN;
|
|
78
|
+
dailySpendingCapUsd: BN | null;
|
|
79
|
+
maxTransactionAmountUsd: BN | null;
|
|
80
|
+
allowedTokens: AllowedToken[] | null;
|
|
81
|
+
allowedProtocols: PublicKey[] | null;
|
|
82
|
+
maxLeverageBps: number | null;
|
|
83
|
+
canOpenPositions: boolean | null;
|
|
84
|
+
maxConcurrentPositions: number | null;
|
|
85
|
+
developerFeeRate: number | null;
|
|
86
|
+
timelockDuration: BN | null;
|
|
87
|
+
allowedDestinations: PublicKey[] | null;
|
|
33
88
|
bump: number;
|
|
34
89
|
};
|
|
35
90
|
export type SpendTrackerAccount = {
|
|
36
91
|
vault: PublicKey;
|
|
92
|
+
trackerTier: {
|
|
93
|
+
standard: Record<string, never>;
|
|
94
|
+
} | {
|
|
95
|
+
pro: Record<string, never>;
|
|
96
|
+
} | {
|
|
97
|
+
max: Record<string, never>;
|
|
98
|
+
};
|
|
99
|
+
maxSpendEntries: number;
|
|
37
100
|
rollingSpends: SpendEntry[];
|
|
38
101
|
recentTransactions: TransactionRecord[];
|
|
39
102
|
bump: number;
|
|
40
103
|
};
|
|
41
104
|
export type SpendEntry = {
|
|
42
|
-
|
|
43
|
-
|
|
105
|
+
tokenIndex: number;
|
|
106
|
+
usdAmount: BN;
|
|
107
|
+
baseAmount: BN;
|
|
44
108
|
timestamp: BN;
|
|
45
109
|
};
|
|
46
110
|
export type TransactionRecord = {
|
|
@@ -61,6 +125,8 @@ export type SessionAuthorityAccount = {
|
|
|
61
125
|
authorizedProtocol: PublicKey;
|
|
62
126
|
actionType: ActionType;
|
|
63
127
|
expiresAtSlot: BN;
|
|
128
|
+
delegated: boolean;
|
|
129
|
+
delegationTokenAccount: PublicKey;
|
|
64
130
|
bump: number;
|
|
65
131
|
};
|
|
66
132
|
export type VaultStatus = {
|
|
@@ -84,27 +150,55 @@ export type ActionType = {
|
|
|
84
150
|
deposit: Record<string, never>;
|
|
85
151
|
} | {
|
|
86
152
|
withdraw: Record<string, never>;
|
|
153
|
+
} | {
|
|
154
|
+
transfer: Record<string, never>;
|
|
87
155
|
};
|
|
88
156
|
export interface InitializeVaultParams {
|
|
89
157
|
vaultId: BN;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
allowedTokens:
|
|
158
|
+
dailySpendingCapUsd: BN;
|
|
159
|
+
maxTransactionSizeUsd: BN;
|
|
160
|
+
allowedTokens: AllowedToken[];
|
|
93
161
|
allowedProtocols: PublicKey[];
|
|
94
162
|
maxLeverageBps: number;
|
|
95
163
|
maxConcurrentPositions: number;
|
|
96
164
|
feeDestination: PublicKey;
|
|
97
165
|
developerFeeRate?: number;
|
|
166
|
+
timelockDuration?: BN;
|
|
167
|
+
allowedDestinations?: PublicKey[];
|
|
168
|
+
/** Tracker capacity tier (default: Standard = 0) */
|
|
169
|
+
trackerTier?: TrackerTier;
|
|
98
170
|
}
|
|
99
171
|
export interface UpdatePolicyParams {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
allowedTokens?:
|
|
172
|
+
dailySpendingCapUsd?: BN | null;
|
|
173
|
+
maxTransactionSizeUsd?: BN | null;
|
|
174
|
+
allowedTokens?: AllowedToken[] | null;
|
|
103
175
|
allowedProtocols?: PublicKey[] | null;
|
|
104
176
|
maxLeverageBps?: number | null;
|
|
105
177
|
canOpenPositions?: boolean | null;
|
|
106
178
|
maxConcurrentPositions?: number | null;
|
|
107
179
|
developerFeeRate?: number | null;
|
|
180
|
+
timelockDuration?: BN | null;
|
|
181
|
+
allowedDestinations?: PublicKey[] | null;
|
|
182
|
+
}
|
|
183
|
+
export interface QueuePolicyUpdateParams {
|
|
184
|
+
dailySpendingCapUsd?: BN | null;
|
|
185
|
+
maxTransactionAmountUsd?: BN | null;
|
|
186
|
+
allowedTokens?: AllowedToken[] | null;
|
|
187
|
+
allowedProtocols?: PublicKey[] | null;
|
|
188
|
+
maxLeverageBps?: number | null;
|
|
189
|
+
canOpenPositions?: boolean | null;
|
|
190
|
+
maxConcurrentPositions?: number | null;
|
|
191
|
+
developerFeeRate?: number | null;
|
|
192
|
+
timelockDuration?: BN | null;
|
|
193
|
+
allowedDestinations?: PublicKey[] | null;
|
|
194
|
+
}
|
|
195
|
+
export interface AgentTransferParams {
|
|
196
|
+
amount: BN;
|
|
197
|
+
vaultTokenAccount: PublicKey;
|
|
198
|
+
destinationTokenAccount: PublicKey;
|
|
199
|
+
feeDestinationTokenAccount?: PublicKey | null;
|
|
200
|
+
protocolTreasuryTokenAccount?: PublicKey | null;
|
|
201
|
+
oracleFeedAccount?: PublicKey;
|
|
108
202
|
}
|
|
109
203
|
export interface AuthorizeParams {
|
|
110
204
|
actionType: ActionType;
|
|
@@ -127,11 +221,13 @@ export interface ComposeActionParams {
|
|
|
127
221
|
defiInstructions: import("@solana/web3.js").TransactionInstruction[];
|
|
128
222
|
/** Whether the finalize step should report success (default: true) */
|
|
129
223
|
success?: boolean;
|
|
130
|
-
/**
|
|
131
|
-
vaultTokenAccount
|
|
224
|
+
/** Vault's PDA-owned token account for the spend token (required for delegation) */
|
|
225
|
+
vaultTokenAccount: PublicKey;
|
|
132
226
|
/** Optional: fee destination token account */
|
|
133
227
|
feeDestinationTokenAccount?: PublicKey | null;
|
|
134
228
|
/** Optional: protocol treasury token account for protocol fee */
|
|
135
229
|
protocolTreasuryTokenAccount?: PublicKey | null;
|
|
230
|
+
/** Oracle feed account for oracle-priced tokens (Pyth or Switchboard) */
|
|
231
|
+
oracleFeedAccount?: PublicKey;
|
|
136
232
|
}
|
|
137
233
|
//# 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;
|
|
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.TrackerTier = 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,18 @@ 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));
|
|
15
|
+
/** Tracker capacity tier — determines max rolling spend entries */
|
|
16
|
+
var TrackerTier;
|
|
17
|
+
(function (TrackerTier) {
|
|
18
|
+
/** 200 entries (~16 KB, ~0.11 SOL rent) */
|
|
19
|
+
TrackerTier[TrackerTier["Standard"] = 0] = "Standard";
|
|
20
|
+
/** 500 entries (~33 KB, ~0.23 SOL rent) */
|
|
21
|
+
TrackerTier[TrackerTier["Pro"] = 1] = "Pro";
|
|
22
|
+
/** 1000 entries (~61 KB, ~0.42 SOL rent) */
|
|
23
|
+
TrackerTier[TrackerTier["Max"] = 2] = "Max";
|
|
24
|
+
})(TrackerTier || (exports.TrackerTier = TrackerTier = {}));
|
|
11
25
|
//# 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;AAE9E,mEAAmE;AACnE,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,2CAA2C;IAC3C,qDAAY,CAAA;IACZ,2CAA2C;IAC3C,2CAAO,CAAA;IACP,4CAA4C;IAC5C,2CAAO,CAAA;AACT,CAAC,EAPW,WAAW,2BAAX,WAAW,QAOtB"}
|
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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-shield/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.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",
|
|
@@ -32,10 +32,21 @@
|
|
|
32
32
|
"ts-node": "^10.9.2",
|
|
33
33
|
"typescript": "^5.3.3"
|
|
34
34
|
},
|
|
35
|
+
"keywords": [
|
|
36
|
+
"solana",
|
|
37
|
+
"ai-agent",
|
|
38
|
+
"anchor",
|
|
39
|
+
"defi",
|
|
40
|
+
"security",
|
|
41
|
+
"spending-limits",
|
|
42
|
+
"policy-engine",
|
|
43
|
+
"mcp"
|
|
44
|
+
],
|
|
35
45
|
"license": "MIT",
|
|
36
46
|
"repository": {
|
|
37
47
|
"type": "git",
|
|
38
|
-
"url": "https://github.com/agentshield
|
|
48
|
+
"url": "https://github.com/Kaleb-Rupe/agentshield",
|
|
49
|
+
"directory": "sdk/typescript"
|
|
39
50
|
},
|
|
40
51
|
"scripts": {
|
|
41
52
|
"build": "tsc",
|