@intentlayer/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/dist/{agentConstraintBuilder-CK56UDUI.mjs → agentConstraintBuilder-CWXPHBNY.mjs} +1 -1
- package/dist/{chunk-GRBEB2EV.mjs → chunk-BN6IO64L.mjs} +57 -16
- package/dist/index.d.mts +243 -25
- package/dist/index.d.ts +243 -25
- package/dist/index.js +224 -46
- package/dist/index.mjs +170 -32
- package/package.json +1 -1
|
@@ -765,7 +765,7 @@ var init_constraints = __esm({
|
|
|
765
765
|
});
|
|
766
766
|
|
|
767
767
|
// src/constraints/agentConstraintBuilder.ts
|
|
768
|
-
import { keccak256 as keccak2562,
|
|
768
|
+
import { keccak256 as keccak2562, parseUnits } from "viem";
|
|
769
769
|
|
|
770
770
|
// src/policy/types.ts
|
|
771
771
|
var V2_FLAG_RECIPIENT = 1;
|
|
@@ -957,11 +957,13 @@ function buildV2ConstraintsFromAgent(constraints) {
|
|
|
957
957
|
if (constraints.allowedRecipients && constraints.allowedRecipients.length === 1) {
|
|
958
958
|
v2Params.allowedRecipient = constraints.allowedRecipients[0];
|
|
959
959
|
}
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
960
|
+
const capResolution = resolveCapConfig(constraints);
|
|
961
|
+
if (capResolution.leafCap) {
|
|
962
|
+
const asset = constraints.allowedAssets?.[0];
|
|
963
|
+
v2Params.cap = capToWei(capResolution.leafCap.capValue, asset, constraints);
|
|
964
|
+
if (capResolution.leafCap.hasPeriod) {
|
|
965
|
+
v2Params.periodType = "daily";
|
|
966
|
+
}
|
|
965
967
|
}
|
|
966
968
|
if (constraints.deadline) {
|
|
967
969
|
v2Params.deadline = constraints.deadline;
|
|
@@ -974,6 +976,11 @@ function buildV2ConstraintsFromAgent(constraints) {
|
|
|
974
976
|
}
|
|
975
977
|
const leaf = buildV2LeafFromConstraints(v2Params);
|
|
976
978
|
const root = keccak2562(leaf);
|
|
979
|
+
let dailyCapWei;
|
|
980
|
+
if (capResolution.dailyCapValue !== void 0) {
|
|
981
|
+
const asset = constraints.allowedAssets?.[0];
|
|
982
|
+
dailyCapWei = capToWei(capResolution.dailyCapValue, asset, constraints);
|
|
983
|
+
}
|
|
977
984
|
let recipientLeaves;
|
|
978
985
|
if (constraints.allowedRecipients && constraints.allowedRecipients.length === 1) {
|
|
979
986
|
const recipient = constraints.allowedRecipients[0].toLowerCase();
|
|
@@ -981,12 +988,12 @@ function buildV2ConstraintsFromAgent(constraints) {
|
|
|
981
988
|
const key = `${recipient}-${asset}`;
|
|
982
989
|
recipientLeaves = { [key]: leaf };
|
|
983
990
|
}
|
|
984
|
-
return { leaf, root, recipientLeaves };
|
|
991
|
+
return { leaf, root, recipientLeaves, dailyCapWei };
|
|
985
992
|
}
|
|
986
993
|
function buildMultiRecipientV2Constraints(constraints) {
|
|
987
994
|
const recipients = constraints.allowedRecipients;
|
|
988
995
|
const builder = new CompoundLeafBuilder();
|
|
989
|
-
const
|
|
996
|
+
const capResolution = resolveCapConfig(constraints);
|
|
990
997
|
const dummyWallet = "0x0000000000000000000000000000000000000001";
|
|
991
998
|
const assets = constraints.allowedAssets;
|
|
992
999
|
const hasMultipleAssets = assets && assets.length > 1;
|
|
@@ -998,7 +1005,7 @@ function buildMultiRecipientV2Constraints(constraints) {
|
|
|
998
1005
|
recipientAssetCombinations.push({
|
|
999
1006
|
recipient,
|
|
1000
1007
|
asset,
|
|
1001
|
-
maxAmount:
|
|
1008
|
+
maxAmount: capResolution.leafCap ? capToWei(capResolution.leafCap.capValue, asset, constraints) : void 0,
|
|
1002
1009
|
deadline: constraints.deadline
|
|
1003
1010
|
});
|
|
1004
1011
|
}
|
|
@@ -1006,14 +1013,20 @@ function buildMultiRecipientV2Constraints(constraints) {
|
|
|
1006
1013
|
multiPolicy = builder.createMultiRecipientPolicy(dummyWallet, recipientAssetCombinations);
|
|
1007
1014
|
} else {
|
|
1008
1015
|
const asset = assets?.[0];
|
|
1016
|
+
const cap = capResolution.leafCap ? capToWei(capResolution.leafCap.capValue, asset, constraints) : void 0;
|
|
1009
1017
|
multiPolicy = builder.createMultiRecipientPolicy(dummyWallet, {
|
|
1010
1018
|
allowedRecipients: recipients,
|
|
1011
1019
|
allowedAsset: asset,
|
|
1012
1020
|
maxAmount: cap,
|
|
1013
1021
|
deadline: constraints.deadline,
|
|
1014
|
-
periodCode:
|
|
1022
|
+
periodCode: capResolution.leafCap?.hasPeriod ? PERIOD_DAILY2 : void 0
|
|
1015
1023
|
});
|
|
1016
1024
|
}
|
|
1025
|
+
let dailyCapWei;
|
|
1026
|
+
if (capResolution.dailyCapValue !== void 0) {
|
|
1027
|
+
const asset = assets?.[0];
|
|
1028
|
+
dailyCapWei = capToWei(capResolution.dailyCapValue, asset, constraints);
|
|
1029
|
+
}
|
|
1017
1030
|
const defaultAsset = assets?.[0] ? assets[0].toLowerCase() : "*";
|
|
1018
1031
|
const defaultKey = `${recipients[0].toLowerCase()}-${defaultAsset}`;
|
|
1019
1032
|
const defaultLeafAndProof = multiPolicy.leafProofs[defaultKey];
|
|
@@ -1024,8 +1037,9 @@ function buildMultiRecipientV2Constraints(constraints) {
|
|
|
1024
1037
|
leaf: defaultLeafAndProof,
|
|
1025
1038
|
// This is actually leafAndProof (leaf + merkle proof)
|
|
1026
1039
|
root: multiPolicy.merkleRoot,
|
|
1027
|
-
recipientLeaves: multiPolicy.leafProofs
|
|
1040
|
+
recipientLeaves: multiPolicy.leafProofs,
|
|
1028
1041
|
// Map of recipient-asset -> leafAndProof
|
|
1042
|
+
dailyCapWei
|
|
1029
1043
|
};
|
|
1030
1044
|
}
|
|
1031
1045
|
function constraintsToV2Params(constraints, recipient) {
|
|
@@ -1035,11 +1049,13 @@ function constraintsToV2Params(constraints, recipient) {
|
|
|
1035
1049
|
} else if (constraints.allowedRecipients && constraints.allowedRecipients.length === 1) {
|
|
1036
1050
|
params.allowedRecipient = constraints.allowedRecipients[0];
|
|
1037
1051
|
}
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1052
|
+
const capResolution = resolveCapConfig(constraints);
|
|
1053
|
+
if (capResolution.leafCap) {
|
|
1054
|
+
const asset = constraints.allowedAssets?.[0];
|
|
1055
|
+
params.cap = capToWei(capResolution.leafCap.capValue, asset, constraints);
|
|
1056
|
+
if (capResolution.leafCap.hasPeriod) {
|
|
1057
|
+
params.periodType = "daily";
|
|
1058
|
+
}
|
|
1043
1059
|
}
|
|
1044
1060
|
if (constraints.deadline) {
|
|
1045
1061
|
params.deadline = constraints.deadline;
|
|
@@ -1052,6 +1068,31 @@ function constraintsToV2Params(constraints, recipient) {
|
|
|
1052
1068
|
}
|
|
1053
1069
|
return params;
|
|
1054
1070
|
}
|
|
1071
|
+
function resolveCapConfig(constraints) {
|
|
1072
|
+
const periodCap = constraints.capPerPeriod ?? constraints.maxDailyUsd;
|
|
1073
|
+
const txCap = constraints.capPerTx ?? constraints.maxPerTxUsd;
|
|
1074
|
+
if (txCap && periodCap) {
|
|
1075
|
+
return {
|
|
1076
|
+
leafCap: { capValue: txCap, hasPeriod: false },
|
|
1077
|
+
dailyCapValue: periodCap
|
|
1078
|
+
};
|
|
1079
|
+
} else if (periodCap) {
|
|
1080
|
+
return {
|
|
1081
|
+
leafCap: { capValue: periodCap, hasPeriod: true },
|
|
1082
|
+
dailyCapValue: void 0
|
|
1083
|
+
};
|
|
1084
|
+
} else if (txCap) {
|
|
1085
|
+
return {
|
|
1086
|
+
leafCap: { capValue: txCap, hasPeriod: false },
|
|
1087
|
+
dailyCapValue: void 0
|
|
1088
|
+
};
|
|
1089
|
+
}
|
|
1090
|
+
return { leafCap: void 0, dailyCapValue: void 0 };
|
|
1091
|
+
}
|
|
1092
|
+
function capToWei(capValue, asset, constraints) {
|
|
1093
|
+
const decimals = asset && constraints.tokenDecimals ? constraints.tokenDecimals[asset.toLowerCase()] ?? 18 : 18;
|
|
1094
|
+
return parseUnits(String(capValue), decimals);
|
|
1095
|
+
}
|
|
1055
1096
|
function bigintToBytes32(value) {
|
|
1056
1097
|
return `0x${value.toString(16).padStart(64, "0")}`;
|
|
1057
1098
|
}
|
package/dist/index.d.mts
CHANGED
|
@@ -242,15 +242,33 @@ interface AgentConstraints {
|
|
|
242
242
|
*/
|
|
243
243
|
presetType?: string;
|
|
244
244
|
/**
|
|
245
|
-
* Maximum
|
|
246
|
-
* This sets FLAG_CAP | FLAG_PERIOD
|
|
245
|
+
* Maximum token amount per period (human-readable, e.g. 1000 = 1000 USDC).
|
|
246
|
+
* This sets FLAG_CAP | FLAG_PERIOD in V2 leaf.
|
|
247
|
+
* The period is determined by `periodCode` (defaults to PERIOD_DAILY).
|
|
248
|
+
*/
|
|
249
|
+
capPerPeriod?: number;
|
|
250
|
+
/**
|
|
251
|
+
* Maximum token amount per transaction (human-readable, e.g. 500 = 500 USDC).
|
|
252
|
+
* This sets FLAG_CAP only in V2 leaf (no period tracking).
|
|
253
|
+
*/
|
|
254
|
+
capPerTx?: number;
|
|
255
|
+
/**
|
|
256
|
+
* @deprecated Use `capPerPeriod` instead. This field name is misleading —
|
|
257
|
+
* caps are token-amount-based, not USD-based.
|
|
247
258
|
*/
|
|
248
259
|
maxDailyUsd?: number;
|
|
249
260
|
/**
|
|
250
|
-
*
|
|
251
|
-
*
|
|
261
|
+
* @deprecated Use `capPerTx` instead. This field name is misleading —
|
|
262
|
+
* caps are token-amount-based, not USD-based.
|
|
252
263
|
*/
|
|
253
264
|
maxPerTxUsd?: number;
|
|
265
|
+
/**
|
|
266
|
+
* Token decimals map for cap conversion.
|
|
267
|
+
* Maps lowercase token address → decimals (e.g., USDC = 6, ETH = 18).
|
|
268
|
+
* Used by the constraint builder to convert human-readable cap values to raw wei.
|
|
269
|
+
* If not provided, defaults to 18 decimals (ETH-like).
|
|
270
|
+
*/
|
|
271
|
+
tokenDecimals?: Record<string, number>;
|
|
254
272
|
/**
|
|
255
273
|
* Allowed recipient addresses for transfers.
|
|
256
274
|
* This sets FLAG_RECIPIENT in V2 leaf.
|
|
@@ -932,8 +950,10 @@ declare const SELECTORS: {
|
|
|
932
950
|
* Configuration for a trading agent preset.
|
|
933
951
|
*/
|
|
934
952
|
interface TradingAgentPreset {
|
|
935
|
-
/**
|
|
936
|
-
|
|
953
|
+
/** Human-readable token amount cap per period */
|
|
954
|
+
capPerPeriod?: number;
|
|
955
|
+
/** @deprecated Use capPerPeriod */
|
|
956
|
+
maxDailyUsd?: number;
|
|
937
957
|
/** Swap contract address (e.g., MockSwap, Uniswap Router) */
|
|
938
958
|
swapContract: Hex;
|
|
939
959
|
/** Swap function selectors (defaults to common swap selectors) */
|
|
@@ -980,8 +1000,10 @@ declare function tradingAgent(config: TradingAgentPreset): AgentConstraints;
|
|
|
980
1000
|
interface PaymentAgentPreset {
|
|
981
1001
|
/** Allowed vendor addresses */
|
|
982
1002
|
vendors: Hex[];
|
|
983
|
-
/**
|
|
984
|
-
|
|
1003
|
+
/** Human-readable token amount cap per period */
|
|
1004
|
+
capPerPeriod?: number;
|
|
1005
|
+
/** @deprecated Use capPerPeriod */
|
|
1006
|
+
maxDailyUsd?: number;
|
|
985
1007
|
/** Token contract for ERC20 payments (optional, for ETH-only omit this) */
|
|
986
1008
|
tokenContract?: Hex;
|
|
987
1009
|
}
|
|
@@ -1017,8 +1039,10 @@ declare function paymentAgent(config: PaymentAgentPreset): AgentConstraints;
|
|
|
1017
1039
|
* Configuration for a treasury operations preset.
|
|
1018
1040
|
*/
|
|
1019
1041
|
interface TreasuryOpsPreset {
|
|
1020
|
-
/**
|
|
1021
|
-
|
|
1042
|
+
/** Human-readable token amount cap per period */
|
|
1043
|
+
capPerPeriod?: number;
|
|
1044
|
+
/** @deprecated Use capPerPeriod */
|
|
1045
|
+
maxDailyUsd?: number;
|
|
1022
1046
|
/** Allowed protocol contracts for treasury operations */
|
|
1023
1047
|
protocolContracts: Hex[];
|
|
1024
1048
|
/** Allowed function selectors for protocols */
|
|
@@ -1058,8 +1082,10 @@ declare function treasuryOps(config: TreasuryOpsPreset): AgentConstraints;
|
|
|
1058
1082
|
* Configuration for a lending operations preset (Aave, Compound, etc.).
|
|
1059
1083
|
*/
|
|
1060
1084
|
interface LendingOpsPreset {
|
|
1061
|
-
/**
|
|
1062
|
-
|
|
1085
|
+
/** Human-readable token amount cap per period */
|
|
1086
|
+
capPerPeriod?: number;
|
|
1087
|
+
/** @deprecated Use capPerPeriod */
|
|
1088
|
+
maxDailyUsd?: number;
|
|
1063
1089
|
/** Lending pool contract address (e.g., Aave Pool, Compound Comptroller) */
|
|
1064
1090
|
lendingPool: Hex;
|
|
1065
1091
|
/**
|
|
@@ -1108,8 +1134,10 @@ declare function lendingOps(config: LendingOpsPreset): AgentConstraints;
|
|
|
1108
1134
|
* Configuration for a stablecoin transfer preset.
|
|
1109
1135
|
*/
|
|
1110
1136
|
interface StablecoinTransferPreset {
|
|
1111
|
-
/**
|
|
1112
|
-
|
|
1137
|
+
/** Human-readable token amount cap per period */
|
|
1138
|
+
capPerPeriod?: number;
|
|
1139
|
+
/** @deprecated Use capPerPeriod */
|
|
1140
|
+
maxDailyUsd?: number;
|
|
1113
1141
|
/** Allowed recipient addresses */
|
|
1114
1142
|
recipients: Hex[];
|
|
1115
1143
|
/** Stablecoin contract addresses (USDC, USDT, DAI, etc.) */
|
|
@@ -1145,8 +1173,10 @@ declare function stablecoinTransfer(config: StablecoinTransferPreset): AgentCons
|
|
|
1145
1173
|
interface PayrollPreset {
|
|
1146
1174
|
/** Employee wallet addresses */
|
|
1147
1175
|
employees: Hex[];
|
|
1148
|
-
/**
|
|
1149
|
-
|
|
1176
|
+
/** Human-readable token amount cap per period (monthly) */
|
|
1177
|
+
capPerPeriod?: number;
|
|
1178
|
+
/** @deprecated Use capPerPeriod */
|
|
1179
|
+
maxMonthlyUsd?: number;
|
|
1150
1180
|
/** Token contract for salary payments (optional, for ETH-only omit) */
|
|
1151
1181
|
tokenContract?: Hex;
|
|
1152
1182
|
/**
|
|
@@ -1197,8 +1227,10 @@ declare function payroll(config: PayrollPreset): AgentConstraints;
|
|
|
1197
1227
|
* Configuration for a simple transfer-only preset.
|
|
1198
1228
|
*/
|
|
1199
1229
|
interface TransferOnlyPreset {
|
|
1200
|
-
/**
|
|
1201
|
-
|
|
1230
|
+
/** Human-readable token amount cap per period */
|
|
1231
|
+
capPerPeriod?: number;
|
|
1232
|
+
/** @deprecated Use capPerPeriod */
|
|
1233
|
+
maxDailyUsd?: number;
|
|
1202
1234
|
/** Allowed recipient addresses */
|
|
1203
1235
|
recipients: Hex[];
|
|
1204
1236
|
/** Token contract for ERC20 transfers (optional, for ETH-only omit) */
|
|
@@ -1254,8 +1286,10 @@ declare function transferOnly(config: TransferOnlyPreset): AgentConstraints;
|
|
|
1254
1286
|
interface MarketingBucketPreset {
|
|
1255
1287
|
/** Marketing recipient addresses (e.g., Google Ads, Meta Ads) */
|
|
1256
1288
|
recipients: Hex[];
|
|
1257
|
-
/**
|
|
1258
|
-
|
|
1289
|
+
/** Human-readable token amount cap per period (monthly) */
|
|
1290
|
+
capPerPeriod?: number;
|
|
1291
|
+
/** @deprecated Use capPerPeriod */
|
|
1292
|
+
maxMonthlyUsd?: number;
|
|
1259
1293
|
/**
|
|
1260
1294
|
* Bucket identifier for shared cap tracking.
|
|
1261
1295
|
* Can be a string (will be hashed) or a 32-byte hex value.
|
|
@@ -1301,8 +1335,10 @@ interface VendorCardPreset {
|
|
|
1301
1335
|
* updated on-chain without modifying the policy.
|
|
1302
1336
|
*/
|
|
1303
1337
|
vendorGroupId: bigint | Hex;
|
|
1304
|
-
/**
|
|
1305
|
-
|
|
1338
|
+
/** Human-readable token amount cap per period */
|
|
1339
|
+
capPerPeriod?: number;
|
|
1340
|
+
/** @deprecated Use capPerPeriod */
|
|
1341
|
+
maxDailyUsd?: number;
|
|
1306
1342
|
/** Token contract for payments (optional, for ETH-only omit) */
|
|
1307
1343
|
tokenContract?: Hex;
|
|
1308
1344
|
/**
|
|
@@ -5307,7 +5343,7 @@ declare class RelayerRuntime {
|
|
|
5307
5343
|
*
|
|
5308
5344
|
* @example
|
|
5309
5345
|
* ```ts
|
|
5310
|
-
* import { GLOBAL_FLAG_NO_BRIDGE } from '@
|
|
5346
|
+
* import { GLOBAL_FLAG_NO_BRIDGE } from '@intentlayer/sdk';
|
|
5311
5347
|
*
|
|
5312
5348
|
* // Enable bridge blocking (invalidates pending intents)
|
|
5313
5349
|
* const { headerVersion, txHash } = await runtime.updatePolicyGlobalFlags(
|
|
@@ -5796,6 +5832,136 @@ interface ListScheduleExecutionsResponse {
|
|
|
5796
5832
|
limit: number;
|
|
5797
5833
|
offset: number;
|
|
5798
5834
|
}
|
|
5835
|
+
type RequestType = "policy" | "agent_wallet" | "fund";
|
|
5836
|
+
type RequestStatus = "pending" | "approved" | "denied" | "executed";
|
|
5837
|
+
interface CreateRequestBody {
|
|
5838
|
+
type: RequestType;
|
|
5839
|
+
chainId: number;
|
|
5840
|
+
walletId?: string;
|
|
5841
|
+
params: Record<string, unknown>;
|
|
5842
|
+
reason?: string;
|
|
5843
|
+
expiresAt?: string;
|
|
5844
|
+
}
|
|
5845
|
+
interface RequestResponse {
|
|
5846
|
+
id: string;
|
|
5847
|
+
tenantId: string;
|
|
5848
|
+
walletId: string | null;
|
|
5849
|
+
chainId: number;
|
|
5850
|
+
type: RequestType;
|
|
5851
|
+
status: RequestStatus;
|
|
5852
|
+
params: Record<string, unknown>;
|
|
5853
|
+
reason: string | null;
|
|
5854
|
+
createdByType: string;
|
|
5855
|
+
createdById: string;
|
|
5856
|
+
rowVersion: number;
|
|
5857
|
+
expiresAt: string | null;
|
|
5858
|
+
resolvedAt: string | null;
|
|
5859
|
+
denyReason: string | null;
|
|
5860
|
+
executionTxHash: string | null;
|
|
5861
|
+
executionId: string | null;
|
|
5862
|
+
executionError: string | null;
|
|
5863
|
+
createdAt: string;
|
|
5864
|
+
}
|
|
5865
|
+
interface ApproveRequestResponse {
|
|
5866
|
+
requestId: string;
|
|
5867
|
+
status: "approved";
|
|
5868
|
+
rowVersion: number;
|
|
5869
|
+
action: {
|
|
5870
|
+
type: string;
|
|
5871
|
+
intent: Record<string, unknown>;
|
|
5872
|
+
eip712TypedData: Record<string, unknown>;
|
|
5873
|
+
};
|
|
5874
|
+
}
|
|
5875
|
+
interface ExecuteRequestResponse {
|
|
5876
|
+
requestId: string;
|
|
5877
|
+
status: "executed";
|
|
5878
|
+
executionTxHash: string;
|
|
5879
|
+
executionId?: string;
|
|
5880
|
+
policyId?: string;
|
|
5881
|
+
snapshotId?: string;
|
|
5882
|
+
}
|
|
5883
|
+
interface ListRequestsResponse {
|
|
5884
|
+
requests: RequestResponse[];
|
|
5885
|
+
total: number;
|
|
5886
|
+
}
|
|
5887
|
+
interface RequestSummary {
|
|
5888
|
+
id: string;
|
|
5889
|
+
type: RequestType;
|
|
5890
|
+
status: RequestStatus;
|
|
5891
|
+
title: string;
|
|
5892
|
+
description: string;
|
|
5893
|
+
details: Array<{
|
|
5894
|
+
label: string;
|
|
5895
|
+
value: string;
|
|
5896
|
+
}>;
|
|
5897
|
+
expiresAt: string | null;
|
|
5898
|
+
createdAt: string;
|
|
5899
|
+
}
|
|
5900
|
+
/**
|
|
5901
|
+
* Suggested constraints from agent (input to policy request).
|
|
5902
|
+
* These are advisory - subject to preset caps enforced in compilePolicyConstraints().
|
|
5903
|
+
*/
|
|
5904
|
+
interface SuggestedConstraints {
|
|
5905
|
+
/** Recipient addresses to include in policy allowlist */
|
|
5906
|
+
allowedRecipients?: string[];
|
|
5907
|
+
/** Asset addresses to include in policy allowlist (or "NATIVE") */
|
|
5908
|
+
allowedAssets?: string[];
|
|
5909
|
+
/** Maximum USD per day budget */
|
|
5910
|
+
maxDailyUsd?: number;
|
|
5911
|
+
/** Maximum USD per transaction */
|
|
5912
|
+
maxPerTxUsd?: number;
|
|
5913
|
+
}
|
|
5914
|
+
/**
|
|
5915
|
+
* Warning generated during constraint compilation.
|
|
5916
|
+
* Shows what was clamped, excluded, or invalid - never silently dropped.
|
|
5917
|
+
*/
|
|
5918
|
+
interface CompileWarning {
|
|
5919
|
+
type: "clamped" | "excluded" | "invalid";
|
|
5920
|
+
field: string;
|
|
5921
|
+
message: string;
|
|
5922
|
+
original?: unknown;
|
|
5923
|
+
final?: unknown;
|
|
5924
|
+
}
|
|
5925
|
+
/**
|
|
5926
|
+
* Diff showing what was requested vs what was included/excluded.
|
|
5927
|
+
*/
|
|
5928
|
+
interface CompiledPolicyDiff {
|
|
5929
|
+
recipients: {
|
|
5930
|
+
requested: string[];
|
|
5931
|
+
added: string[];
|
|
5932
|
+
excluded: string[];
|
|
5933
|
+
finalCount: number;
|
|
5934
|
+
};
|
|
5935
|
+
assets: {
|
|
5936
|
+
requested: string[];
|
|
5937
|
+
added: string[];
|
|
5938
|
+
excluded: string[];
|
|
5939
|
+
finalCount: number;
|
|
5940
|
+
};
|
|
5941
|
+
dailyBudget: {
|
|
5942
|
+
requested: number | null;
|
|
5943
|
+
final: number | null;
|
|
5944
|
+
changed: boolean;
|
|
5945
|
+
};
|
|
5946
|
+
perTxBudget: {
|
|
5947
|
+
requested: number | null;
|
|
5948
|
+
final: number | null;
|
|
5949
|
+
changed: boolean;
|
|
5950
|
+
};
|
|
5951
|
+
}
|
|
5952
|
+
/**
|
|
5953
|
+
* Response from compile-policy endpoint.
|
|
5954
|
+
* Shows final constraints that will be bootstrapped after owner approval.
|
|
5955
|
+
*/
|
|
5956
|
+
interface CompiledPolicyResponse {
|
|
5957
|
+
preset: string;
|
|
5958
|
+
baselineConstraints: Record<string, unknown>;
|
|
5959
|
+
suggestedConstraints: SuggestedConstraints | null;
|
|
5960
|
+
finalConstraints: Record<string, unknown>;
|
|
5961
|
+
warnings: CompileWarning[];
|
|
5962
|
+
diff: CompiledPolicyDiff;
|
|
5963
|
+
compilerVersion: string;
|
|
5964
|
+
}
|
|
5799
5965
|
|
|
5800
5966
|
/**
|
|
5801
5967
|
* Cloud API Error
|
|
@@ -5981,6 +6147,56 @@ declare class IELCloudClient {
|
|
|
5981
6147
|
limit?: number;
|
|
5982
6148
|
offset?: number;
|
|
5983
6149
|
}): Promise<ListScheduleExecutionsResponse>;
|
|
6150
|
+
/**
|
|
6151
|
+
* Create a request (policy, agent_wallet, or fund).
|
|
6152
|
+
* Agents use this to request new permissions from the wallet owner.
|
|
6153
|
+
*/
|
|
6154
|
+
createRequest(body: CreateRequestBody, idempotencyKey?: string): Promise<RequestResponse>;
|
|
6155
|
+
/**
|
|
6156
|
+
* List requests with optional filters.
|
|
6157
|
+
*/
|
|
6158
|
+
listRequests(options?: {
|
|
6159
|
+
status?: string;
|
|
6160
|
+
type?: string;
|
|
6161
|
+
walletId?: string;
|
|
6162
|
+
limit?: number;
|
|
6163
|
+
offset?: number;
|
|
6164
|
+
}): Promise<ListRequestsResponse>;
|
|
6165
|
+
/**
|
|
6166
|
+
* Get a request by ID.
|
|
6167
|
+
*/
|
|
6168
|
+
getRequest(requestId: string): Promise<RequestResponse>;
|
|
6169
|
+
/**
|
|
6170
|
+
* Get a human-readable summary of a request.
|
|
6171
|
+
*/
|
|
6172
|
+
getRequestSummary(requestId: string): Promise<RequestSummary>;
|
|
6173
|
+
/**
|
|
6174
|
+
* Approve a request. Returns the EIP-712 typed data for the owner to sign.
|
|
6175
|
+
* Only callable by owner (API key holder).
|
|
6176
|
+
*/
|
|
6177
|
+
approveRequest(requestId: string): Promise<ApproveRequestResponse>;
|
|
6178
|
+
/**
|
|
6179
|
+
* Deny a request with an optional reason.
|
|
6180
|
+
* Only callable by owner (API key holder).
|
|
6181
|
+
*/
|
|
6182
|
+
denyRequest(requestId: string, reason?: string): Promise<RequestResponse>;
|
|
6183
|
+
/**
|
|
6184
|
+
* Execute an approved request by submitting the owner's EIP-712 signature.
|
|
6185
|
+
* Triggers on-chain execution via the bootstrap pipeline.
|
|
6186
|
+
* Only callable by owner (API key holder).
|
|
6187
|
+
*/
|
|
6188
|
+
executeRequest(requestId: string, signature: string, txHash?: string, policyId?: string, walletAddress?: string): Promise<ExecuteRequestResponse>;
|
|
6189
|
+
/**
|
|
6190
|
+
* Compile policy constraints for a policy request.
|
|
6191
|
+
* Returns the final constraints that will be bootstrapped after approval,
|
|
6192
|
+
* along with any warnings about clamped/excluded items.
|
|
6193
|
+
*
|
|
6194
|
+
* Use this to show users exactly what they're approving before signing.
|
|
6195
|
+
*
|
|
6196
|
+
* @param requestId - Policy request ID
|
|
6197
|
+
* @returns Compiled policy with finalConstraints, warnings, and diff
|
|
6198
|
+
*/
|
|
6199
|
+
compilePolicyRequest(requestId: string): Promise<CompiledPolicyResponse>;
|
|
5984
6200
|
/**
|
|
5985
6201
|
* Get wallet by name and return a CloudWallet instance
|
|
5986
6202
|
*/
|
|
@@ -7030,6 +7246,8 @@ interface V2ConstraintBuildResult {
|
|
|
7030
7246
|
root: Hex;
|
|
7031
7247
|
/** Per-recipient leaf map for multi-recipient policies */
|
|
7032
7248
|
recipientLeaves?: Record<string, Hex>;
|
|
7249
|
+
/** Policy-level daily cap in wei (set when both capPerTx and capPerPeriod are present) */
|
|
7250
|
+
dailyCapWei?: bigint;
|
|
7033
7251
|
}
|
|
7034
7252
|
/**
|
|
7035
7253
|
* Build V2 constraints from high-level AgentConstraints.
|
|
@@ -7916,7 +8134,7 @@ declare function createV3OnlyPolicy(params: {
|
|
|
7916
8134
|
*
|
|
7917
8135
|
* @example
|
|
7918
8136
|
* ```ts
|
|
7919
|
-
* import { createMultiLeafPolicyBuilder } from '@
|
|
8137
|
+
* import { createMultiLeafPolicyBuilder } from '@intentlayer/sdk/policy';
|
|
7920
8138
|
*
|
|
7921
8139
|
* const builder = createMultiLeafPolicyBuilder();
|
|
7922
8140
|
*
|
|
@@ -8063,7 +8281,7 @@ declare function createMultiLeafPolicyBuilder(): MultiLeafPolicyBuilder;
|
|
|
8063
8281
|
* ## Usage
|
|
8064
8282
|
*
|
|
8065
8283
|
* ```ts
|
|
8066
|
-
* import { policy } from '@
|
|
8284
|
+
* import { policy } from '@intentlayer/sdk';
|
|
8067
8285
|
*
|
|
8068
8286
|
* // Create hybrid policy
|
|
8069
8287
|
* const result = await policy.createHybridPolicy({
|