import { DenClient } from "@onchainden/mls-sdk-ts";
// 1) Set up the client.
const client = new DenClient({
apiKey: process.env.DEN_API_KEY!,
baseUrl: process.env.DEN_API_BASE_URL!,
});
// 2) Build the updated policy set.
const policies = [
{
id: "pol_123",
name: "Auto-approve Small Transfers",
description: "Auto-approve USDC transfers under $2000",
type: "AUTO_APPROVAL",
transactionType: "TOKEN_TRANSFER",
networkId: 1,
accountIds: ["acc_1", "acc_2"],
limitation: {
hours: 24,
initiatorScope: "PER_ITEM",
sourceAccountScope: "PER_ITEM",
destinationScope: "ALL_ITEMS",
},
initiatorSetting: { type: "group", groupId: "grp_finance" },
approverSetting: null,
tokenTransferCondition: {
tokenAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
amountThreshold: "2000000000",
destinationAddresses: [],
},
},
];
// 3) Propose, sign, and execute.
const { data: proposal } = await client.createPolicyUpdateProposal({ policies });
await client.signPolicyProposal(proposal.id, {
type: "approve",
signature: "0x...",
});
await client.executePolicyProposal(proposal.id, {
type: "approve",
});