[
	{
		"inputs": [],
		"stateMutability": "nonpayable",
		"type": "constructor"
	},
	{
		"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": "uint256",
				"name": "maxMembers",
				"type": "uint256"
			}
		],
		"name": "CreateEsusu",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "string",
				"name": "name",
				"type": "string"
			},
			{
				"internalType": "string",
				"name": "symbol",
				"type": "string"
			}
		],
		"name": "CreateGroup",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [],
		"name": "GetCurrentEsusuCycleId",
		"outputs": [
			{
				"internalType": "uint256",
				"name": "",
				"type": "uint256"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [],
		"name": "GetEsusuAdapterAddress",
		"outputs": [
			{
				"internalType": "address",
				"name": "",
				"type": "address"
			}
		],
		"stateMutability": "view",
		"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"
	},
	{
		"inputs": [
			{
				"internalType": "string",
				"name": "name",
				"type": "string"
			}
		],
		"name": "GetGroupInformationByName",
		"outputs": [
			{
				"internalType": "uint256",
				"name": "groupId",
				"type": "uint256"
			},
			{
				"internalType": "string",
				"name": "groupName",
				"type": "string"
			},
			{
				"internalType": "string",
				"name": "groupSymbol",
				"type": "string"
			},
			{
				"internalType": "address",
				"name": "groupCreatorAddress",
				"type": "address"
			}
		],
		"stateMutability": "view",
		"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"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [],
		"name": "GetTotalDeposits",
		"outputs": [
			{
				"internalType": "uint256",
				"name": "",
				"type": "uint256"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "uint256",
				"name": "esusuCycleId",
				"type": "uint256"
			},
			{
				"internalType": "address",
				"name": "member",
				"type": "address"
			}
		],
		"name": "IsMemberEligibleToWithdrawCapital",
		"outputs": [
			{
				"internalType": "bool",
				"name": "",
				"type": "bool"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "uint256",
				"name": "esusuCycleId",
				"type": "uint256"
			},
			{
				"internalType": "address",
				"name": "member",
				"type": "address"
			}
		],
		"name": "IsMemberEligibleToWithdrawROI",
		"outputs": [
			{
				"internalType": "bool",
				"name": "",
				"type": "bool"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "uint256",
				"name": "esusuCycleId",
				"type": "uint256"
			}
		],
		"name": "JoinEsusu",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "uint256",
				"name": "esusuCycleId",
				"type": "uint256"
			}
		],
		"name": "StartEsusuCycle",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "account",
				"type": "address"
			}
		],
		"name": "TransferOwnership",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "adapterAddress",
				"type": "address"
			}
		],
		"name": "UpdateAdapter",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "delegateAddress",
				"type": "address"
			}
		],
		"name": "UpdateAdapterWithdrawalDelegate",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "uint256",
				"name": "esusuCycleId",
				"type": "uint256"
			}
		],
		"name": "WithdrawCapitalFromEsusuCycle",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "uint256",
				"name": "esusuCycleId",
				"type": "uint256"
			}
		],
		"name": "WithdrawROIFromEsusuCycle",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	}
]