{
  "customABIMultipleParameters": {
    "conditionType": "contract",
    "contractAddress": "0x01B67b1194C75264d06F808A921228a95C765dd7",
    "method": "isSubscribedToToken",
    "parameters": [
      ":userAddress",
      "subscriptionCode",
      4
    ],
    "functionAbi": {
      "inputs": [
        {
          "internalType": "address",
          "name": "subscriber",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "subscriptionCode",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "isSubscribedToToken",
      "outputs": [
        {
          "internalType": "bool",
          "name": "valid",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    "chain": 137,
    "returnValueTest": {
      "comparator": "==",
      "value": true
    }
  },
  "TStaking": {
    "conditionType": "contract",
    "contractAddress": "0x01B67b1194C75264d06F808A921228a95C765dd7",
    "chain": 1,
    "method": "stakes",
    "functionAbi": {
      "inputs": [
        {
          "internalType": "address",
          "name": "stakingProvider",
          "type": "address"
        }
      ],
      "name": "stakes",
      "outputs": [
        {
          "internalType": "uint96",
          "name": "tStake",
          "type": "uint96"
        },
        {
          "internalType": "uint96",
          "name": "keepInTStake",
          "type": "uint96"
        },
        {
          "internalType": "uint96",
          "name": "nuInTStake",
          "type": "uint96"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    "parameters": [
      ":userAddress"
    ],
    "returnValueTest": {
      "index": 0,
      "comparator": ">",
      "value": 0
    }
  },
  "ERC1155_balance": {
    "conditionType": "contract",
    "contractAddress": "0xaDD9D957170dF6F33982001E4c22eCCdd5539118",
    "standardContractType": "ERC1155",
    "chain": 1,
    "method": "balanceOf",
    "parameters": [
      ":userAddress",
      9541
    ],
    "returnValueTest": {
      "comparator": ">",
      "value": 0
    }
  },
  "ERC1155_balance_batch": {
    "conditionType": "contract",
    "contractAddress": "0xaDD9D957170dF6F33982001E4c22eCCdd5539118",
    "standardContractType": "ERC1155",
    "chain": 1,
    "method": "balanceOfBatch",
    "parameters": [
      [
        ":userAddress",
        ":userAddress",
        ":userAddress",
        ":userAddress"
      ],
      [
        1,
        2,
        10003,
        10004
      ]
    ],
    "returnValueTest": {
      "comparator": ">",
      "value": [0,0,0,0]
    }
  },
  "ERC721_ownership": {
    "conditionType": "contract",
    "contractAddress": "0xaDD9D957170dF6F33982001E4c22eCCdd5539118",
    "standardContractType": "ERC721",
    "chain": 1,
    "method": "ownerOf",
    "parameters": [
      5954
    ],
    "returnValueTest": {
      "comparator": "==",
      "value": ":userAddress"
    }
  },
  "ERC721_balance": {
    "conditionType": "contract",
    "contractAddress": "0xaDD9D957170dF6F33982001E4c22eCCdd5539118",
    "standardContractType": "ERC721",
    "chain": 1,
    "method": "balanceOf",
    "parameters": [
      ":userAddress"
    ],
    "returnValueTest": {
      "comparator": ">",
      "value": 0
    }
  },
  "ERC20_balance": {
    "conditionType": "contract",
    "contractAddress": "0xaDD9D957170dF6F33982001E4c22eCCdd5539118",
    "standardContractType": "ERC20",
    "chain": 1,
    "method": "balanceOf",
    "parameters": [
      ":userAddress"
    ],
    "returnValueTest": {
      "comparator": ">",
      "value": 0
    }
  },
  "ETH_balance": {
    "conditionType": "rpc",
    "chain": 1,
    "method": "eth_getBalance",
    "parameters": [
      ":userAddress",
      "latest"
    ],
    "returnValueTest": {
      "comparator": ">=",
      "value": 10000000000000
    }
  },
  "timestamp": {
    "conditionType": "time",
    "chain": 1,
    "method": "blocktime",
    "returnValueTest": {
      "comparator": ">=",
      "value": 1234567890
    }
  },
  "compoundNot": {
    "conditionType": "compound",
    "operator": "not",
    "operands":[
      {
        "conditionType": "time",
        "method": "blocktime",
        "chain": 131277322940537,
        "returnValueTest": {
          "value": 0,
          "comparator": ">"
        }
      }
    ]
  },
  "compoundAnd": {
    "conditionType": "compound",
    "operator": "and",
    "operands": [
      {
        "conditionType": "contract",
        "chain": 131277322940537,
        "method": "isPolicyActive",
        "parameters": [
          ":hrac"
        ],
        "contractAddress": "0xfD09F629A77439dc3FFaBD6318a02F0FC469cd92",
        "functionAbi": {
          "type": "function",
          "name": "isPolicyActive",
          "stateMutability": "view",
          "inputs": [
            {
              "name": "_policyID",
              "type": "bytes16",
              "internalType": "bytes16"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bool",
              "internalType": "bool"
            }
          ]
        },
        "returnValueTest": {
          "comparator": "==",
          "value": true
        }
      },
      {
        "conditionType": "time",
        "method": "blocktime",
        "chain": 131277322940537,
        "returnValueTest": {
          "value": 0,
          "comparator": ">"
        }
      }
    ]
  },
    "compoundOr": {
    "conditionType": "compound",
    "operator": "or",
    "operands": [
      {
        "conditionType": "contract",
        "chain": 131277322940537,
        "method": "isPolicyActive",
        "parameters": [
          ":hrac"
        ],
        "contractAddress": "0xfD09F629A77439dc3FFaBD6318a02F0FC469cd92",
        "functionAbi": {
          "type": "function",
          "name": "isPolicyActive",
          "stateMutability": "view",
          "inputs": [
            {
              "name": "_policyID",
              "type": "bytes16",
              "internalType": "bytes16"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bool",
              "internalType": "bool"
            }
          ]
        },
        "returnValueTest": {
          "comparator": "==",
          "value": true
        }
      },
      {
        "conditionType": "time",
        "method": "blocktime",
        "chain": 131277322940537,
        "returnValueTest": {
          "value": 0,
          "comparator": ">"
        }
      }
    ]
  },
  "jsonApi": {
    "conditionType": "json-api",
    "endpoint": "https://api.example.com/data",
    "parameters": {
      "ids": "ethereum",
      "vs_currencies": "usd"
    },
    "authorizationToken": ":authToken",
    "query": "$.store.book[0].price",
    "returnValueTest": {
      "comparator": "==",
      "value": 2
    }
  },
  "jsonRpc": {
    "conditionType": "json-rpc",
    "endpoint": "https://math.example.com/",
    "method": "subtract",
    "params": [
      42,
      23
    ],
    "query": "$.mathresult",
    "returnValueTest": {
      "comparator": "==",
      "value": 19
    }
  },
  "ifThenElse": {
    "conditionType": "if-then-else",
    "ifCondition": {
      "conditionType": "rpc",
      "chain": 131277322940537,
      "method": "eth_getBalance",
      "parameters": [
        "0xd797C6a6e0A8e32e9fDFfEB0f742bbf37D90Bba8",
        "latest"
      ],
      "returnValueTest": {
        "comparator": ">=",
        "value": 10000000000000
      }
    },
    "thenCondition": {
      "conditionType": "json-api",
      "endpoint": "https://api.example.com/data",
      "parameters": {
        "ids": "ethereum",
        "vs_currencies": "usd"
      },
      "authorizationToken": ":authToken",
      "query": "$.store.book[0].price",
      "returnValueTest": {
        "comparator": "==",
        "value": 2
      }
    },
    "elseCondition": {
      "conditionType": "json-rpc",
      "endpoint": "https://math.example.com/",
      "method": "subtract",
      "params": [
        42,
        23
      ],
      "query": "$.mathresult",
      "returnValueTest": {
        "comparator": "==",
        "value": 19
      }
    }
  },
  "sequential": {
    "conditionType": "sequential",
    "conditionVariables": [
      {
        "varName": "timeValue",
        "condition": {
          "conditionType": "time",
          "method": "blocktime",
          "chain": 131277322940537,
          "returnValueTest": {
            "value": 0,
            "comparator": ">"
          }
        }
      },
      {
        "varName": "rpcValue",
        "condition": {
          "conditionType": "rpc",
          "chain": 131277322940537,
          "method": "eth_getBalance",
          "parameters": [
            "0xd797C6a6e0A8e32e9fDFfEB0f742bbf37D90Bba8",
            "latest"
          ],
          "returnValueTest": {
            "comparator": ">=",
            "value": 10000000000000
          }
        }
      }
    ]
  }
}
