{
  "contractName": "EaseDistributorContract",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_productAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_productId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_period",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_asset",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_price",
          "type": "uint256"
        }
      ],
      "name": "BuyCoverEvent",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_vaultController",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_brightProtocol",
          "type": "address"
        }
      ],
      "name": "__EaseDistributor_init",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_vault",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_expiry",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "_v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "_r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_s",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_newCumLiqForClaims",
          "type": "uint256"
        },
        {
          "internalType": "bytes32[]",
          "name": "_liqForClaimsProof",
          "type": "bytes32[]"
        }
      ],
      "name": "buyCover",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_coverId",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "_isActive",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "_loopLimit",
          "type": "uint256"
        }
      ],
      "name": "getCover",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "coverType",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "productId",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "contractName",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "coverAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "premium",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "currency",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "contractAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "expiration",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "status",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "refAddress",
              "type": "address"
            }
          ],
          "internalType": "struct IDistributor.Cover",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_userAddr",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "_isActive",
          "type": "bool"
        }
      ],
      "name": "getCoverCount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_userAddr",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_vaultTokenAddrs",
          "type": "address[]"
        }
      ],
      "name": "getEaseCovers",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_sumAssured",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_coverPeriod",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_contractAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_coverAsset",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_nexusCoverable",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "getQuote",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "prop1",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "prop2",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "prop3",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "prop4",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "prop5",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "prop6",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "prop7",
              "type": "uint256"
            }
          ],
          "internalType": "struct IDistributor.CoverQuote",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_vault",
          "type": "address"
        }
      ],
      "name": "isShieldedVault",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_vault",
          "type": "address"
        }
      ],
      "name": "isTokenMatchingVault",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ]
}