Skip to main content

ContractValidatorContexts

export type ContractValidatorContexts<V extends LoadedValidator = LoadedValidator> = V extends {
  Datum: [CastLike](/docs/sdk/contract-utils/CastLike)&lt;any, any>
&nbsp;&nbsp;purpose: "spending"
  Redeemer: [CastLike](/docs/sdk/contract-utils/CastLike)&lt;any, any>
\} 
&nbsp;&nbsp;? \{hash: ValidatorHash<SpendingContext<StrictType<V["Datum"&rsqb;>, [PermissiveType](/docs/sdk/contract-utils/PermissiveType)&lt;V&lsqb;"Datum"]>, StrictType<V["Redeemer"&rsqb;>, [PermissiveType](/docs/sdk/contract-utils/PermissiveType)&lt;V&lsqb;"Redeemer"]>>>} & ContractTypesContext<V["types"&rsqb;> & [ContractUserFuncsContext](/docs/sdk/contract-utils/ContractUserFuncsContext)&lt;V&lsqb;"functions"]>
  : V extends {
    purpose: "minting"
&nbsp;&nbsp;&nbsp;&nbsp;Redeemer: CastLike<any, any>
  }
    ? {hash: [MintingPolicyHash](/docs/sdk/ledger/MintingPolicyHash)&lt;[MintingContext](/docs/sdk/ledger/MintingContext)&lt;[StrictType](/docs/sdk/contract-utils/StrictType)&lt;V&lsqb;"Redeemer"]>, PermissiveType<V["Redeemer"&rsqb;>>>\} & [ContractTypesContext](/docs/sdk/contract-utils/ContractTypesContext)&lt;V&lsqb;"types"]> & ContractUserFuncsContext<V["functions"&rsqb;> 
&nbsp;&nbsp;&nbsp;&nbsp;: V extends \{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;purpose: "certifying"
        | "rewarding"
        | "staking"
      Redeemer: [CastLike](/docs/sdk/contract-utils/CastLike)&lt;any, any>
&nbsp;&nbsp;&nbsp;&nbsp;\} 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;? \{hash: StakingValidatorHash<StakingContext<StrictType<V["Redeemer"&rsqb;>, [PermissiveType](/docs/sdk/contract-utils/PermissiveType)&lt;V&lsqb;"Redeemer"]>>>} & ContractTypesContext<V["types"&rsqb;> & [ContractUserFuncsContext](/docs/sdk/contract-utils/ContractUserFuncsContext)&lt;V&lsqb;"functions"]>
      : V extends {
        Datum: [CastLike](/docs/sdk/contract-utils/CastLike)&lt;any, any>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;purpose: "mixed"
        Redeemer: [CastLike](/docs/sdk/contract-utils/CastLike)&lt;any, any>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\} 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;? \{hash: ScriptHash<SpendingContext<StrictType<V["Datum"&rsqb;>, [PermissiveType](/docs/sdk/contract-utils/PermissiveType)&lt;V&lsqb;"Datum"]>, StrictType<V["Redeemer"&rsqb;>, [PermissiveType](/docs/sdk/contract-utils/PermissiveType)&lt;V&lsqb;"Redeemer"]>>>} & ContractTypesContext<V["types"&rsqb;> & [ContractUserFuncsContext](/docs/sdk/contract-utils/ContractUserFuncsContext)&lt;V&lsqb;"functions"]>
        : {$hash: ScriptHash<any>} & ContractTypesContext & ContractUserFuncsContext