• supportedPoliciesForAbility() takes an array of bundled Vincent Policies, and provides strong type inference for those policies inside of your VincentAbility's lifecycle functions and return values.

    import { bundledVincentPolicy } from '@lit-protocol/vincent-policy-spending-limit';

    const SpendingLimitPolicy = createVincentAbilityPolicy({
    abilityParamsSchema,
    bundledVincentPolicy,
    abilityParameterMappings: {
    rpcUrlForUniswap: 'rpcUrlForUniswap',
    chainIdForUniswap: 'chainIdForUniswap',
    ethRpcUrl: 'ethRpcUrl',
    tokenInAddress: 'tokenAddress',
    tokenInDecimals: 'tokenDecimals',
    tokenInAmount: 'buyAmount',
    },
    });


    export const vincentAbility = createVincentAbility({
    packageName: '@lit-protocol/vincent-ability-uniswap-swap' as const,
    description: 'Uniswap Swap Ability',

    abilityParamsSchema,
    supportedPolicies: supportedPoliciesForAbility([SpendingLimitPolicy]),

    ...

    });

    Type Parameters

    • const Policies extends readonly {
          vincentPolicy: {
              packageName: any;
              abilityParamsSchema: any;
              userParamsSchema?: any;
              precheckAllowResultSchema?: any;
              precheckDenyResultSchema?: any;
              evalAllowResultSchema?: any;
              evalDenyResultSchema?: any;
              commitParamsSchema?: any;
              commitAllowResultSchema?: any;
              commitDenyResultSchema?: any;
              evaluate: any;
              precheck?: any;
              commit?: any;
          };
          ipfsCid: IpfsCid;
          vincentAbilityApiVersion: VincentAbilityApiVersion;
      }[]
    • const IpfsCid extends string = string
    • const VincentAbilityApiVersion extends string = string
    • const PkgNames extends any = Policies[number]["vincentPolicy"]["packageName"]

    Parameters

    Returns AbilityPolicyMap<Policies, PkgNames>