  [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "adapterContract",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "adapterDelegateContract",
          "type": "address"
        }
      ],
      "name": "UpdateAdapterAndAdapterDelegateAddresses",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "GetEsusuCycleId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [],
      "name": "IncrementEsusuCycleId",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "groupId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "depositAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "payoutIntervalSeconds",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "startTimeInSeconds",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "maxMembers",
          "type": "uint256"
        }
      ],
      "name": "CreateEsusuCycleMapping",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "GetEsusuCycle",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "CycleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "DepositAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "PayoutIntervalSeconds",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "CycleState",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "TotalMembers",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "TotalAmountDeposited",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "TotalShares",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "TotalCycleDurationInSeconds",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "TotalCapitalWithdrawn",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "CycleStartTimeInSeconds",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "TotalBeneficiaries",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "MaxMembers",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "GetEsusuCycleStartTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "EsusuCycleStartTime",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "groupId",
          "type": "uint256"
        }
      ],
      "name": "GetCycleIndexFromGroupId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "groupId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "cycleIndex",
          "type": "uint256"
        }
      ],
      "name": "GetCycleIdFromCycleIndexAndGroupId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "cycleCreator",
          "type": "address"
        }
      ],
      "name": "GetCycleIndexFromCycleCreator",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "cycleIndex",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "cycleCreator",
          "type": "address"
        }
      ],
      "name": "GetCycleIdFromCycleIndexAndCycleCreator",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "member",
          "type": "address"
        }
      ],
      "name": "GetCycleIndexFromCycleMember",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "cycleIndex",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "member",
          "type": "address"
        }
      ],
      "name": "GetCycleIdFromCycleIndexAndCycleMember",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "GetEsusuCycleBasicInformation",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "CycleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "DepositAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "CycleState",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "TotalMembers",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "MaxMembers",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "PayoutIntervalSeconds",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "GroupId",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "GetEsusuCycleTotalShares",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "TotalShares",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "GetEsusuCycleTotalSharesAtStart",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "TotalSharesAtStart",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "GetEsusuCycleStartonlyOwnerAdapterAndAdapterDelegateContractTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "EsusuCycleStartTime",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "GetEsusuCyclePayoutInterval",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "EsusuCyclePayoutInterval",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "GetEsusuCycleTotalAmountDeposited",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "EsusuCycleTotalAmountDeposited",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "GetCycleOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "EsusuCycleOwner",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "GetEsusuCycleDuration",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "EsusuCycleDuration",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "GetEsusuCycleTotalCapitalWithdrawn",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "EsusuCycleTotalCapitalWithdrawn",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "GetEsusuCycleTotalBeneficiaries",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "EsusuCycleTotalBeneficiaries",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "memberAddress",
          "type": "address"
        }
      ],
      "name": "GetMemberWithdrawnCapitalInEsusuCycle",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "memberAddress",
          "type": "address"
        }
      ],
      "name": "GetMemberCycleToBeneficiaryMapping",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "memberAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "IsMemberInCycle",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "IncreaseTotalAmountDepositedInCycle",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "member",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "CreateMemberAddressToMemberCycleMapping",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "IncreaseTotalMembersInCycle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "member",
          "type": "address"
        }
      ],
      "name": "CreateMemberPositionMapping",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleBalance",
          "type": "uint256"
        }
      ],
      "name": "IncreaseTotalDeposits",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "cycleStateEnum",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "toalCycleDuration",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalShares",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "currentTime",
          "type": "uint256"
        }
      ],
      "name": "UpdateEsusuCycleDuringStart",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "cycleStateEnum",
          "type": "uint256"
        }
      ],
      "name": "UpdateEsusuCycleState",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "memberAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "GetMemberCycleInfo",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "CycleId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "MemberId",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "TotalAmountDepositedInCycle",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "TotalPayoutReceivedInCycle",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "memberPosition",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "memberShares",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "member",
          "type": "address"
        }
      ],
      "name": "CreateMemberCapitalMapping",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "cycleTotalShares",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalCapitalWithdrawnInCycle",
          "type": "uint256"
        }
      ],
      "name": "UpdateEsusuCycleDuringCapitalWithdrawal",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalShares",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalBeneficiaries",
          "type": "uint256"
        }
      ],
      "name": "UpdateEsusuCycleDuringROIWithdrawal",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "memberAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "memberROINet",
          "type": "uint256"
        }
      ],
      "name": "CreateEsusuCycleToBeneficiaryMapping",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "cycleId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "member",
          "type": "address"
        }
      ],
      "name": "CalculateMemberWithdrawalTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "member",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "CreateMemberToCycleIndexToCycleIDMapping",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "GetTotalDeposits",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "esusuCycleId",
          "type": "uint256"
        }
      ],
      "name": "GetEsusuCycleState",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "member",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "rewardAmount",
          "type": "uint256"
        }
      ],
      "name": "UpdateMemberToXendTokeRewardMapping",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "member",
          "type": "address"
        }
      ],
      "name": "GetMemberXendTokenReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ]