{"abi":[{"type":"function","name":"addReward","inputs":[{"name":"nodes","type":"address[]","internalType":"address[]"},{"name":"ethAmount","type":"uint256","internalType":"uint256"},{"name":"arpaAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitDkg","inputs":[{"name":"params","type":"tuple","internalType":"struct IController.CommitDkgParams","components":[{"name":"groupIndex","type":"uint256","internalType":"uint256"},{"name":"groupEpoch","type":"uint256","internalType":"uint256"},{"name":"publicKey","type":"bytes","internalType":"bytes"},{"name":"partialPublicKey","type":"bytes","internalType":"bytes"},{"name":"disqualifiedNodes","type":"address[]","internalType":"address[]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getBelongingGroup","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"int256","internalType":"int256"},{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"getControllerConfig","inputs":[],"outputs":[{"name":"nodeRegistryContractAddress","type":"address","internalType":"address"},{"name":"adapterContractAddress","type":"address","internalType":"address"},{"name":"disqualifiedNodePenaltyAmount","type":"uint256","internalType":"uint256"},{"name":"defaultNumberOfCommitters","type":"uint256","internalType":"uint256"},{"name":"defaultDkgPhaseDuration","type":"uint256","internalType":"uint256"},{"name":"groupMaxCapacity","type":"uint256","internalType":"uint256"},{"name":"idealNumberOfGroups","type":"uint256","internalType":"uint256"},{"name":"dkgPostProcessReward","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCoordinator","inputs":[{"name":"groupIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getGroup","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IController.Group","components":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"size","type":"uint256","internalType":"uint256"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"members","type":"tuple[]","internalType":"struct IController.Member[]","components":[{"name":"nodeIdAddress","type":"address","internalType":"address"},{"name":"partialPublicKey","type":"uint256[4]","internalType":"uint256[4]"}]},{"name":"committers","type":"address[]","internalType":"address[]"},{"name":"commitCacheList","type":"tuple[]","internalType":"struct IController.CommitCache[]","components":[{"name":"nodeIdAddress","type":"address[]","internalType":"address[]"},{"name":"commitResult","type":"tuple","internalType":"struct IController.CommitResult","components":[{"name":"groupEpoch","type":"uint256","internalType":"uint256"},{"name":"publicKey","type":"uint256[4]","internalType":"uint256[4]"},{"name":"disqualifiedNodes","type":"address[]","internalType":"address[]"}]}]},{"name":"isStrictlyMajorityConsensusReached","type":"bool","internalType":"bool"},{"name":"publicKey","type":"uint256[4]","internalType":"uint256[4]"}]}],"stateMutability":"view"},{"type":"function","name":"getGroupCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getGroupEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getGroupThreshold","inputs":[{"name":"groupIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastOutput","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMember","inputs":[{"name":"groupIndex","type":"uint256","internalType":"uint256"},{"name":"memberIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IController.Member","components":[{"name":"nodeIdAddress","type":"address","internalType":"address"},{"name":"partialPublicKey","type":"uint256[4]","internalType":"uint256[4]"}]}],"stateMutability":"view"},{"type":"function","name":"getValidGroupIndices","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"isPartialKeyRegistered","inputs":[{"name":"groupIndex","type":"uint256","internalType":"uint256"},{"name":"nodeIdAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nodeJoin","inputs":[{"name":"nodeIdAddress","type":"address","internalType":"address"}],"outputs":[{"name":"groupIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"nodeLeave","inputs":[{"name":"nodeIdAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nodeWithdrawETH","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"ethAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"postProcessDkg","inputs":[{"name":"groupIndex","type":"uint256","internalType":"uint256"},{"name":"groupEpoch","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLastOutput","inputs":[{"name":"lastOutput","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addReward(address[],uint256,uint256)":"914eb34d","commitDkg((uint256,uint256,bytes,bytes,address[]))":"e37eb96c","getBelongingGroup(address)":"3b6c00b0","getControllerConfig()":"d11b8e68","getCoordinator(uint256)":"42424d6f","getGroup(uint256)":"ceb60654","getGroupCount()":"06545a93","getGroupEpoch()":"7ee49cfd","getGroupThreshold(uint256)":"f49e0ba9","getLastOutput()":"51a2b9a0","getMember(uint256,uint256)":"4d79a893","getValidGroupIndices()":"b330a0fd","isPartialKeyRegistered(uint256,address)":"c2db900b","nodeJoin(address)":"ed157c3f","nodeLeave(address)":"35fe4a3f","nodeWithdrawETH(address,uint256)":"0ad98f6a","postProcessDkg(uint256,uint256)":"0bf9c5c6","setLastOutput(uint256)":"f3df0802"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"arpaAmount\",\"type\":\"uint256\"}],\"name\":\"addReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"groupEpoch\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"partialPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"disqualifiedNodes\",\"type\":\"address[]\"}],\"internalType\":\"struct IController.CommitDkgParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"commitDkg\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getBelongingGroup\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getControllerConfig\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"nodeRegistryContractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"adapterContractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"disqualifiedNodePenaltyAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"defaultNumberOfCommitters\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"defaultDkgPhaseDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"groupMaxCapacity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"idealNumberOfGroups\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dkgPostProcessReward\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"}],\"name\":\"getCoordinator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getGroup\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"nodeIdAddress\",\"type\":\"address\"},{\"internalType\":\"uint256[4]\",\"name\":\"partialPublicKey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct IController.Member[]\",\"name\":\"members\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"committers\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"nodeIdAddress\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"publicKey\",\"type\":\"uint256[4]\"},{\"internalType\":\"address[]\",\"name\":\"disqualifiedNodes\",\"type\":\"address[]\"}],\"internalType\":\"struct IController.CommitResult\",\"name\":\"commitResult\",\"type\":\"tuple\"}],\"internalType\":\"struct IController.CommitCache[]\",\"name\":\"commitCacheList\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isStrictlyMajorityConsensusReached\",\"type\":\"bool\"},{\"internalType\":\"uint256[4]\",\"name\":\"publicKey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct IController.Group\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGroupCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGroupEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"}],\"name\":\"getGroupThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"memberIndex\",\"type\":\"uint256\"}],\"name\":\"getMember\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"nodeIdAddress\",\"type\":\"address\"},{\"internalType\":\"uint256[4]\",\"name\":\"partialPublicKey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct IController.Member\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidGroupIndices\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"nodeIdAddress\",\"type\":\"address\"}],\"name\":\"isPartialKeyRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeIdAddress\",\"type\":\"address\"}],\"name\":\"nodeJoin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeIdAddress\",\"type\":\"address\"}],\"name\":\"nodeLeave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"}],\"name\":\"nodeWithdrawETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"groupEpoch\",\"type\":\"uint256\"}],\"name\":\"postProcessDkg\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lastOutput\",\"type\":\"uint256\"}],\"name\":\"setLastOutput\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getValidGroupIndices()\":{\"returns\":{\"_0\":\"uint256[] List of valid group indexes\"}},\"isPartialKeyRegistered(uint256,address)\":{\"returns\":{\"_0\":\"bool True if the node has a partial public key registered for the group.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getBelongingGroup(address)\":{\"notice\":\"Get the group index and member index of a given node.\"},\"getValidGroupIndices()\":{\"notice\":\"Get list of all group indexes where group.isStrictlyMajorityConsensusReached == true\"},\"isPartialKeyRegistered(uint256,address)\":{\"notice\":\"Check to see if a group has a partial public key registered for a given node.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IController.sol\":\"IController\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":300},\"remappings\":[\":Randcast-User-Contract/=lib/Randcast-User-Contract/contracts/\",\":Staking-v0.1/=lib/Staking-v0.1/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":fx-portal/=lib/fx-portal/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/interfaces/IController.sol\":{\"keccak256\":\"0x948f60df177a67c7d2ee01f4f2ff7c8c8ac9133ff6c6a66932475f40d72191d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b91f7a0060bc3b597788f283d98bf03a6480e5a19823d8490655a637e28b2b4a\",\"dweb:/ipfs/QmfVbB9Nbc6PckFpGuoY7WNFYoetiYKTSURMuKHQTHRzmN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.18+commit.87f61d96"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address[]","name":"nodes","type":"address[]"},{"internalType":"uint256","name":"ethAmount","type":"uint256"},{"internalType":"uint256","name":"arpaAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addReward"},{"inputs":[{"internalType":"struct IController.CommitDkgParams","name":"params","type":"tuple","components":[{"internalType":"uint256","name":"groupIndex","type":"uint256"},{"internalType":"uint256","name":"groupEpoch","type":"uint256"},{"internalType":"bytes","name":"publicKey","type":"bytes"},{"internalType":"bytes","name":"partialPublicKey","type":"bytes"},{"internalType":"address[]","name":"disqualifiedNodes","type":"address[]"}]}],"stateMutability":"nonpayable","type":"function","name":"commitDkg"},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getBelongingGroup","outputs":[{"internalType":"int256","name":"","type":"int256"},{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getControllerConfig","outputs":[{"internalType":"address","name":"nodeRegistryContractAddress","type":"address"},{"internalType":"address","name":"adapterContractAddress","type":"address"},{"internalType":"uint256","name":"disqualifiedNodePenaltyAmount","type":"uint256"},{"internalType":"uint256","name":"defaultNumberOfCommitters","type":"uint256"},{"internalType":"uint256","name":"defaultDkgPhaseDuration","type":"uint256"},{"internalType":"uint256","name":"groupMaxCapacity","type":"uint256"},{"internalType":"uint256","name":"idealNumberOfGroups","type":"uint256"},{"internalType":"uint256","name":"dkgPostProcessReward","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"groupIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCoordinator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getGroup","outputs":[{"internalType":"struct IController.Group","name":"","type":"tuple","components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"struct IController.Member[]","name":"members","type":"tuple[]","components":[{"internalType":"address","name":"nodeIdAddress","type":"address"},{"internalType":"uint256[4]","name":"partialPublicKey","type":"uint256[4]"}]},{"internalType":"address[]","name":"committers","type":"address[]"},{"internalType":"struct IController.CommitCache[]","name":"commitCacheList","type":"tuple[]","components":[{"internalType":"address[]","name":"nodeIdAddress","type":"address[]"},{"internalType":"struct IController.CommitResult","name":"commitResult","type":"tuple","components":[{"internalType":"uint256","name":"groupEpoch","type":"uint256"},{"internalType":"uint256[4]","name":"publicKey","type":"uint256[4]"},{"internalType":"address[]","name":"disqualifiedNodes","type":"address[]"}]}]},{"internalType":"bool","name":"isStrictlyMajorityConsensusReached","type":"bool"},{"internalType":"uint256[4]","name":"publicKey","type":"uint256[4]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getGroupCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getGroupEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"groupIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"getGroupThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastOutput","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"groupIndex","type":"uint256"},{"internalType":"uint256","name":"memberIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMember","outputs":[{"internalType":"struct IController.Member","name":"","type":"tuple","components":[{"internalType":"address","name":"nodeIdAddress","type":"address"},{"internalType":"uint256[4]","name":"partialPublicKey","type":"uint256[4]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getValidGroupIndices","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"groupIndex","type":"uint256"},{"internalType":"address","name":"nodeIdAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isPartialKeyRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"nodeIdAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"nodeJoin","outputs":[{"internalType":"uint256","name":"groupIndex","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"nodeIdAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"nodeLeave"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"ethAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"nodeWithdrawETH"},{"inputs":[{"internalType":"uint256","name":"groupIndex","type":"uint256"},{"internalType":"uint256","name":"groupEpoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"postProcessDkg"},{"inputs":[{"internalType":"uint256","name":"lastOutput","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setLastOutput"}],"devdoc":{"kind":"dev","methods":{"getValidGroupIndices()":{"returns":{"_0":"uint256[] List of valid group indexes"}},"isPartialKeyRegistered(uint256,address)":{"returns":{"_0":"bool True if the node has a partial public key registered for the group."}}},"version":1},"userdoc":{"kind":"user","methods":{"getBelongingGroup(address)":{"notice":"Get the group index and member index of a given node."},"getValidGroupIndices()":{"notice":"Get list of all group indexes where group.isStrictlyMajorityConsensusReached == true"},"isPartialKeyRegistered(uint256,address)":{"notice":"Check to see if a group has a partial public key registered for a given node."}},"version":1}},"settings":{"remappings":["Randcast-User-Contract/=lib/Randcast-User-Contract/contracts/","Staking-v0.1/=lib/Staking-v0.1/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","fx-portal/=lib/fx-portal/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":300},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IController.sol":"IController"},"libraries":{}},"sources":{"src/interfaces/IController.sol":{"keccak256":"0x948f60df177a67c7d2ee01f4f2ff7c8c8ac9133ff6c6a66932475f40d72191d4","urls":["bzz-raw://b91f7a0060bc3b597788f283d98bf03a6480e5a19823d8490655a637e28b2b4a","dweb:/ipfs/QmfVbB9Nbc6PckFpGuoY7WNFYoetiYKTSURMuKHQTHRzmN"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/interfaces/IController.sol","id":9390,"exportedSymbols":{"IController":[9389]},"nodeType":"SourceUnit","src":"32:3155:30","nodes":[{"id":9184,"nodeType":"PragmaDirective","src":"32:24:30","nodes":[],"literals":["solidity","^","0.8",".18"]},{"id":9389,"nodeType":"ContractDefinition","src":"58:3128:30","nodes":[{"id":9210,"nodeType":"StructDefinition","src":"86:289:30","nodes":[],"canonicalName":"IController.Group","members":[{"constant":false,"id":9186,"mutability":"mutable","name":"index","nameLocation":"117:5:30","nodeType":"VariableDeclaration","scope":9210,"src":"109:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9185,"name":"uint256","nodeType":"ElementaryTypeName","src":"109:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9188,"mutability":"mutable","name":"epoch","nameLocation":"140:5:30","nodeType":"VariableDeclaration","scope":9210,"src":"132:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9187,"name":"uint256","nodeType":"ElementaryTypeName","src":"132:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9190,"mutability":"mutable","name":"size","nameLocation":"163:4:30","nodeType":"VariableDeclaration","scope":9210,"src":"155:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9189,"name":"uint256","nodeType":"ElementaryTypeName","src":"155:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9192,"mutability":"mutable","name":"threshold","nameLocation":"185:9:30","nodeType":"VariableDeclaration","scope":9210,"src":"177:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9191,"name":"uint256","nodeType":"ElementaryTypeName","src":"177:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9196,"mutability":"mutable","name":"members","nameLocation":"213:7:30","nodeType":"VariableDeclaration","scope":9210,"src":"204:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Member_$9217_storage_$dyn_storage_ptr","typeString":"struct IController.Member[]"},"typeName":{"baseType":{"id":9194,"nodeType":"UserDefinedTypeName","pathNode":{"id":9193,"name":"Member","nameLocations":["204:6:30"],"nodeType":"IdentifierPath","referencedDeclaration":9217,"src":"204:6:30"},"referencedDeclaration":9217,"src":"204:6:30","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$9217_storage_ptr","typeString":"struct IController.Member"}},"id":9195,"nodeType":"ArrayTypeName","src":"204:8:30","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Member_$9217_storage_$dyn_storage_ptr","typeString":"struct IController.Member[]"}},"visibility":"internal"},{"constant":false,"id":9199,"mutability":"mutable","name":"committers","nameLocation":"240:10:30","nodeType":"VariableDeclaration","scope":9210,"src":"230:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9197,"name":"address","nodeType":"ElementaryTypeName","src":"230:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9198,"nodeType":"ArrayTypeName","src":"230:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":9203,"mutability":"mutable","name":"commitCacheList","nameLocation":"274:15:30","nodeType":"VariableDeclaration","scope":9210,"src":"260:29:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CommitCache_$9234_storage_$dyn_storage_ptr","typeString":"struct IController.CommitCache[]"},"typeName":{"baseType":{"id":9201,"nodeType":"UserDefinedTypeName","pathNode":{"id":9200,"name":"CommitCache","nameLocations":["260:11:30"],"nodeType":"IdentifierPath","referencedDeclaration":9234,"src":"260:11:30"},"referencedDeclaration":9234,"src":"260:11:30","typeDescriptions":{"typeIdentifier":"t_struct$_CommitCache_$9234_storage_ptr","typeString":"struct IController.CommitCache"}},"id":9202,"nodeType":"ArrayTypeName","src":"260:13:30","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CommitCache_$9234_storage_$dyn_storage_ptr","typeString":"struct IController.CommitCache[]"}},"visibility":"internal"},{"constant":false,"id":9205,"mutability":"mutable","name":"isStrictlyMajorityConsensusReached","nameLocation":"304:34:30","nodeType":"VariableDeclaration","scope":9210,"src":"299:39:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9204,"name":"bool","nodeType":"ElementaryTypeName","src":"299:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9209,"mutability":"mutable","name":"publicKey","nameLocation":"359:9:30","nodeType":"VariableDeclaration","scope":9210,"src":"348:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"},"typeName":{"baseType":{"id":9206,"name":"uint256","nodeType":"ElementaryTypeName","src":"348:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9208,"length":{"hexValue":"34","id":9207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"356:1:30","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"348:10:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"}},"visibility":"internal"}],"name":"Group","nameLocation":"93:5:30","scope":9389,"visibility":"public"},{"id":9217,"nodeType":"StructDefinition","src":"381:89:30","nodes":[],"canonicalName":"IController.Member","members":[{"constant":false,"id":9212,"mutability":"mutable","name":"nodeIdAddress","nameLocation":"413:13:30","nodeType":"VariableDeclaration","scope":9217,"src":"405:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9211,"name":"address","nodeType":"ElementaryTypeName","src":"405:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9216,"mutability":"mutable","name":"partialPublicKey","nameLocation":"447:16:30","nodeType":"VariableDeclaration","scope":9217,"src":"436:27:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"},"typeName":{"baseType":{"id":9213,"name":"uint256","nodeType":"ElementaryTypeName","src":"436:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9215,"length":{"hexValue":"34","id":9214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"444:1:30","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"436:10:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"}},"visibility":"internal"}],"name":"Member","nameLocation":"388:6:30","scope":9389,"visibility":"public"},{"id":9227,"nodeType":"StructDefinition","src":"476:122:30","nodes":[],"canonicalName":"IController.CommitResult","members":[{"constant":false,"id":9219,"mutability":"mutable","name":"groupEpoch","nameLocation":"514:10:30","nodeType":"VariableDeclaration","scope":9227,"src":"506:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9218,"name":"uint256","nodeType":"ElementaryTypeName","src":"506:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9223,"mutability":"mutable","name":"publicKey","nameLocation":"545:9:30","nodeType":"VariableDeclaration","scope":9227,"src":"534:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"},"typeName":{"baseType":{"id":9220,"name":"uint256","nodeType":"ElementaryTypeName","src":"534:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9222,"length":{"hexValue":"34","id":9221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"542:1:30","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"534:10:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"}},"visibility":"internal"},{"constant":false,"id":9226,"mutability":"mutable","name":"disqualifiedNodes","nameLocation":"574:17:30","nodeType":"VariableDeclaration","scope":9227,"src":"564:27:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9224,"name":"address","nodeType":"ElementaryTypeName","src":"564:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9225,"nodeType":"ArrayTypeName","src":"564:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"CommitResult","nameLocation":"483:12:30","scope":9389,"visibility":"public"},{"id":9234,"nodeType":"StructDefinition","src":"604:94:30","nodes":[],"canonicalName":"IController.CommitCache","members":[{"constant":false,"id":9230,"mutability":"mutable","name":"nodeIdAddress","nameLocation":"643:13:30","nodeType":"VariableDeclaration","scope":9234,"src":"633:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9228,"name":"address","nodeType":"ElementaryTypeName","src":"633:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9229,"nodeType":"ArrayTypeName","src":"633:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":9233,"mutability":"mutable","name":"commitResult","nameLocation":"679:12:30","nodeType":"VariableDeclaration","scope":9234,"src":"666:25:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CommitResult_$9227_storage_ptr","typeString":"struct IController.CommitResult"},"typeName":{"id":9232,"nodeType":"UserDefinedTypeName","pathNode":{"id":9231,"name":"CommitResult","nameLocations":["666:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":9227,"src":"666:12:30"},"referencedDeclaration":9227,"src":"666:12:30","typeDescriptions":{"typeIdentifier":"t_struct$_CommitResult_$9227_storage_ptr","typeString":"struct IController.CommitResult"}},"visibility":"internal"}],"name":"CommitCache","nameLocation":"611:11:30","scope":9389,"visibility":"public"},{"id":9246,"nodeType":"StructDefinition","src":"704:180:30","nodes":[],"canonicalName":"IController.CommitDkgParams","members":[{"constant":false,"id":9236,"mutability":"mutable","name":"groupIndex","nameLocation":"745:10:30","nodeType":"VariableDeclaration","scope":9246,"src":"737:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9235,"name":"uint256","nodeType":"ElementaryTypeName","src":"737:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9238,"mutability":"mutable","name":"groupEpoch","nameLocation":"773:10:30","nodeType":"VariableDeclaration","scope":9246,"src":"765:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9237,"name":"uint256","nodeType":"ElementaryTypeName","src":"765:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9240,"mutability":"mutable","name":"publicKey","nameLocation":"799:9:30","nodeType":"VariableDeclaration","scope":9246,"src":"793:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":9239,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9242,"mutability":"mutable","name":"partialPublicKey","nameLocation":"824:16:30","nodeType":"VariableDeclaration","scope":9246,"src":"818:22:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":9241,"name":"bytes","nodeType":"ElementaryTypeName","src":"818:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9245,"mutability":"mutable","name":"disqualifiedNodes","nameLocation":"860:17:30","nodeType":"VariableDeclaration","scope":9246,"src":"850:27:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9243,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9244,"nodeType":"ArrayTypeName","src":"850:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"CommitDkgParams","nameLocation":"711:15:30","scope":9389,"visibility":"public"},{"id":9253,"nodeType":"FunctionDefinition","src":"914:79:30","nodes":[],"functionSelector":"ed157c3f","implemented":false,"kind":"function","modifiers":[],"name":"nodeJoin","nameLocation":"923:8:30","parameters":{"id":9249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9248,"mutability":"mutable","name":"nodeIdAddress","nameLocation":"940:13:30","nodeType":"VariableDeclaration","scope":9253,"src":"932:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9247,"name":"address","nodeType":"ElementaryTypeName","src":"932:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"931:23:30"},"returnParameters":{"id":9252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9251,"mutability":"mutable","name":"groupIndex","nameLocation":"981:10:30","nodeType":"VariableDeclaration","scope":9253,"src":"973:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9250,"name":"uint256","nodeType":"ElementaryTypeName","src":"973:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"972:20:30"},"scope":9389,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9258,"nodeType":"FunctionDefinition","src":"999:51:30","nodes":[],"functionSelector":"35fe4a3f","implemented":false,"kind":"function","modifiers":[],"name":"nodeLeave","nameLocation":"1008:9:30","parameters":{"id":9256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9255,"mutability":"mutable","name":"nodeIdAddress","nameLocation":"1026:13:30","nodeType":"VariableDeclaration","scope":9258,"src":"1018:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9254,"name":"address","nodeType":"ElementaryTypeName","src":"1018:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1017:23:30"},"returnParameters":{"id":9257,"nodeType":"ParameterList","parameters":[],"src":"1049:0:30"},"scope":9389,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9264,"nodeType":"FunctionDefinition","src":"1056:59:30","nodes":[],"functionSelector":"e37eb96c","implemented":false,"kind":"function","modifiers":[],"name":"commitDkg","nameLocation":"1065:9:30","parameters":{"id":9262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9261,"mutability":"mutable","name":"params","nameLocation":"1098:6:30","nodeType":"VariableDeclaration","scope":9264,"src":"1075:29:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CommitDkgParams_$9246_memory_ptr","typeString":"struct IController.CommitDkgParams"},"typeName":{"id":9260,"nodeType":"UserDefinedTypeName","pathNode":{"id":9259,"name":"CommitDkgParams","nameLocations":["1075:15:30"],"nodeType":"IdentifierPath","referencedDeclaration":9246,"src":"1075:15:30"},"referencedDeclaration":9246,"src":"1075:15:30","typeDescriptions":{"typeIdentifier":"t_struct$_CommitDkgParams_$9246_storage_ptr","typeString":"struct IController.CommitDkgParams"}},"visibility":"internal"}],"src":"1074:31:30"},"returnParameters":{"id":9263,"nodeType":"ParameterList","parameters":[],"src":"1114:0:30"},"scope":9389,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9271,"nodeType":"FunctionDefinition","src":"1121:73:30","nodes":[],"functionSelector":"0bf9c5c6","implemented":false,"kind":"function","modifiers":[],"name":"postProcessDkg","nameLocation":"1130:14:30","parameters":{"id":9269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9266,"mutability":"mutable","name":"groupIndex","nameLocation":"1153:10:30","nodeType":"VariableDeclaration","scope":9271,"src":"1145:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9265,"name":"uint256","nodeType":"ElementaryTypeName","src":"1145:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9268,"mutability":"mutable","name":"groupEpoch","nameLocation":"1173:10:30","nodeType":"VariableDeclaration","scope":9271,"src":"1165:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9267,"name":"uint256","nodeType":"ElementaryTypeName","src":"1165:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1144:40:30"},"returnParameters":{"id":9270,"nodeType":"ParameterList","parameters":[],"src":"1193:0:30"},"scope":9389,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9278,"nodeType":"FunctionDefinition","src":"1232:72:30","nodes":[],"functionSelector":"0ad98f6a","implemented":false,"kind":"function","modifiers":[],"name":"nodeWithdrawETH","nameLocation":"1241:15:30","parameters":{"id":9276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9273,"mutability":"mutable","name":"recipient","nameLocation":"1265:9:30","nodeType":"VariableDeclaration","scope":9278,"src":"1257:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9272,"name":"address","nodeType":"ElementaryTypeName","src":"1257:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9275,"mutability":"mutable","name":"ethAmount","nameLocation":"1284:9:30","nodeType":"VariableDeclaration","scope":9278,"src":"1276:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9274,"name":"uint256","nodeType":"ElementaryTypeName","src":"1276:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1256:38:30"},"returnParameters":{"id":9277,"nodeType":"ParameterList","parameters":[],"src":"1303:0:30"},"scope":9389,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9288,"nodeType":"FunctionDefinition","src":"1337:91:30","nodes":[],"functionSelector":"914eb34d","implemented":false,"kind":"function","modifiers":[],"name":"addReward","nameLocation":"1346:9:30","parameters":{"id":9286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9281,"mutability":"mutable","name":"nodes","nameLocation":"1373:5:30","nodeType":"VariableDeclaration","scope":9288,"src":"1356:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9279,"name":"address","nodeType":"ElementaryTypeName","src":"1356:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9280,"nodeType":"ArrayTypeName","src":"1356:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":9283,"mutability":"mutable","name":"ethAmount","nameLocation":"1388:9:30","nodeType":"VariableDeclaration","scope":9288,"src":"1380:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9282,"name":"uint256","nodeType":"ElementaryTypeName","src":"1380:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9285,"mutability":"mutable","name":"arpaAmount","nameLocation":"1407:10:30","nodeType":"VariableDeclaration","scope":9288,"src":"1399:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9284,"name":"uint256","nodeType":"ElementaryTypeName","src":"1399:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1355:63:30"},"returnParameters":{"id":9287,"nodeType":"ParameterList","parameters":[],"src":"1427:0:30"},"scope":9389,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9293,"nodeType":"FunctionDefinition","src":"1434:52:30","nodes":[],"functionSelector":"f3df0802","implemented":false,"kind":"function","modifiers":[],"name":"setLastOutput","nameLocation":"1443:13:30","parameters":{"id":9291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9290,"mutability":"mutable","name":"lastOutput","nameLocation":"1465:10:30","nodeType":"VariableDeclaration","scope":9293,"src":"1457:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9289,"name":"uint256","nodeType":"ElementaryTypeName","src":"1457:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1456:20:30"},"returnParameters":{"id":9292,"nodeType":"ParameterList","parameters":[],"src":"1485:0:30"},"scope":9389,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9312,"nodeType":"FunctionDefinition","src":"1504:445:30","nodes":[],"functionSelector":"d11b8e68","implemented":false,"kind":"function","modifiers":[],"name":"getControllerConfig","nameLocation":"1513:19:30","parameters":{"id":9294,"nodeType":"ParameterList","parameters":[],"src":"1532:2:30"},"returnParameters":{"id":9311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9296,"mutability":"mutable","name":"nodeRegistryContractAddress","nameLocation":"1603:27:30","nodeType":"VariableDeclaration","scope":9312,"src":"1595:35:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9295,"name":"address","nodeType":"ElementaryTypeName","src":"1595:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9298,"mutability":"mutable","name":"adapterContractAddress","nameLocation":"1652:22:30","nodeType":"VariableDeclaration","scope":9312,"src":"1644:30:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9297,"name":"address","nodeType":"ElementaryTypeName","src":"1644:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9300,"mutability":"mutable","name":"disqualifiedNodePenaltyAmount","nameLocation":"1696:29:30","nodeType":"VariableDeclaration","scope":9312,"src":"1688:37:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9299,"name":"uint256","nodeType":"ElementaryTypeName","src":"1688:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9302,"mutability":"mutable","name":"defaultNumberOfCommitters","nameLocation":"1747:25:30","nodeType":"VariableDeclaration","scope":9312,"src":"1739:33:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9301,"name":"uint256","nodeType":"ElementaryTypeName","src":"1739:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9304,"mutability":"mutable","name":"defaultDkgPhaseDuration","nameLocation":"1794:23:30","nodeType":"VariableDeclaration","scope":9312,"src":"1786:31:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9303,"name":"uint256","nodeType":"ElementaryTypeName","src":"1786:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9306,"mutability":"mutable","name":"groupMaxCapacity","nameLocation":"1839:16:30","nodeType":"VariableDeclaration","scope":9312,"src":"1831:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9305,"name":"uint256","nodeType":"ElementaryTypeName","src":"1831:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9308,"mutability":"mutable","name":"idealNumberOfGroups","nameLocation":"1877:19:30","nodeType":"VariableDeclaration","scope":9312,"src":"1869:27:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9307,"name":"uint256","nodeType":"ElementaryTypeName","src":"1869:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9310,"mutability":"mutable","name":"dkgPostProcessReward","nameLocation":"1918:20:30","nodeType":"VariableDeclaration","scope":9312,"src":"1910:28:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9309,"name":"uint256","nodeType":"ElementaryTypeName","src":"1910:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1581:367:30"},"scope":9389,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9319,"nodeType":"FunctionDefinition","src":"2110:73:30","nodes":[],"documentation":{"id":9313,"nodeType":"StructuredDocumentation","src":"1955:150:30","text":"@notice Get list of all group indexes where group.isStrictlyMajorityConsensusReached == true\n @return uint256[] List of valid group indexes"},"functionSelector":"b330a0fd","implemented":false,"kind":"function","modifiers":[],"name":"getValidGroupIndices","nameLocation":"2119:20:30","parameters":{"id":9314,"nodeType":"ParameterList","parameters":[],"src":"2139:2:30"},"returnParameters":{"id":9318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9317,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9319,"src":"2165:16:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":9315,"name":"uint256","nodeType":"ElementaryTypeName","src":"2165:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9316,"nodeType":"ArrayTypeName","src":"2165:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2164:18:30"},"scope":9389,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9324,"nodeType":"FunctionDefinition","src":"2189:57:30","nodes":[],"functionSelector":"7ee49cfd","implemented":false,"kind":"function","modifiers":[],"name":"getGroupEpoch","nameLocation":"2198:13:30","parameters":{"id":9320,"nodeType":"ParameterList","parameters":[],"src":"2211:2:30"},"returnParameters":{"id":9323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9324,"src":"2237:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9321,"name":"uint256","nodeType":"ElementaryTypeName","src":"2237:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2236:9:30"},"scope":9389,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9329,"nodeType":"FunctionDefinition","src":"2252:57:30","nodes":[],"functionSelector":"06545a93","implemented":false,"kind":"function","modifiers":[],"name":"getGroupCount","nameLocation":"2261:13:30","parameters":{"id":9325,"nodeType":"ParameterList","parameters":[],"src":"2274:2:30"},"returnParameters":{"id":9328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9329,"src":"2300:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9326,"name":"uint256","nodeType":"ElementaryTypeName","src":"2300:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2299:9:30"},"scope":9389,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9337,"nodeType":"FunctionDefinition","src":"2315:70:30","nodes":[],"functionSelector":"ceb60654","implemented":false,"kind":"function","modifiers":[],"name":"getGroup","nameLocation":"2324:8:30","parameters":{"id":9332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9331,"mutability":"mutable","name":"index","nameLocation":"2341:5:30","nodeType":"VariableDeclaration","scope":9337,"src":"2333:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9330,"name":"uint256","nodeType":"ElementaryTypeName","src":"2333:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2332:15:30"},"returnParameters":{"id":9336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9337,"src":"2371:12:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$9210_memory_ptr","typeString":"struct IController.Group"},"typeName":{"id":9334,"nodeType":"UserDefinedTypeName","pathNode":{"id":9333,"name":"Group","nameLocations":["2371:5:30"],"nodeType":"IdentifierPath","referencedDeclaration":9210,"src":"2371:5:30"},"referencedDeclaration":9210,"src":"2371:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$9210_storage_ptr","typeString":"struct IController.Group"}},"visibility":"internal"}],"src":"2370:14:30"},"scope":9389,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9346,"nodeType":"FunctionDefinition","src":"2391:88:30","nodes":[],"functionSelector":"f49e0ba9","implemented":false,"kind":"function","modifiers":[],"name":"getGroupThreshold","nameLocation":"2400:17:30","parameters":{"id":9340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9339,"mutability":"mutable","name":"groupIndex","nameLocation":"2426:10:30","nodeType":"VariableDeclaration","scope":9346,"src":"2418:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9338,"name":"uint256","nodeType":"ElementaryTypeName","src":"2418:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2417:20:30"},"returnParameters":{"id":9345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9346,"src":"2461:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9341,"name":"uint256","nodeType":"ElementaryTypeName","src":"2461:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9346,"src":"2470:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9343,"name":"uint256","nodeType":"ElementaryTypeName","src":"2470:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2460:18:30"},"scope":9389,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9356,"nodeType":"FunctionDefinition","src":"2485:98:30","nodes":[],"functionSelector":"4d79a893","implemented":false,"kind":"function","modifiers":[],"name":"getMember","nameLocation":"2494:9:30","parameters":{"id":9351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9348,"mutability":"mutable","name":"groupIndex","nameLocation":"2512:10:30","nodeType":"VariableDeclaration","scope":9356,"src":"2504:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9347,"name":"uint256","nodeType":"ElementaryTypeName","src":"2504:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9350,"mutability":"mutable","name":"memberIndex","nameLocation":"2532:11:30","nodeType":"VariableDeclaration","scope":9356,"src":"2524:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9349,"name":"uint256","nodeType":"ElementaryTypeName","src":"2524:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2503:41:30"},"returnParameters":{"id":9355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9354,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9356,"src":"2568:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$9217_memory_ptr","typeString":"struct IController.Member"},"typeName":{"id":9353,"nodeType":"UserDefinedTypeName","pathNode":{"id":9352,"name":"Member","nameLocations":["2568:6:30"],"nodeType":"IdentifierPath","referencedDeclaration":9217,"src":"2568:6:30"},"referencedDeclaration":9217,"src":"2568:6:30","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$9217_storage_ptr","typeString":"struct IController.Member"}},"visibility":"internal"}],"src":"2567:15:30"},"scope":9389,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9366,"nodeType":"FunctionDefinition","src":"2659:87:30","nodes":[],"documentation":{"id":9357,"nodeType":"StructuredDocumentation","src":"2589:65:30","text":"@notice Get the group index and member index of a given node."},"functionSelector":"3b6c00b0","implemented":false,"kind":"function","modifiers":[],"name":"getBelongingGroup","nameLocation":"2668:17:30","parameters":{"id":9360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9359,"mutability":"mutable","name":"nodeAddress","nameLocation":"2694:11:30","nodeType":"VariableDeclaration","scope":9366,"src":"2686:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9358,"name":"address","nodeType":"ElementaryTypeName","src":"2686:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2685:21:30"},"returnParameters":{"id":9365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9366,"src":"2730:6:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9361,"name":"int256","nodeType":"ElementaryTypeName","src":"2730:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":9364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9366,"src":"2738:6:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9363,"name":"int256","nodeType":"ElementaryTypeName","src":"2738:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2729:16:30"},"scope":9389,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9373,"nodeType":"FunctionDefinition","src":"2752:76:30","nodes":[],"functionSelector":"42424d6f","implemented":false,"kind":"function","modifiers":[],"name":"getCoordinator","nameLocation":"2761:14:30","parameters":{"id":9369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9368,"mutability":"mutable","name":"groupIndex","nameLocation":"2784:10:30","nodeType":"VariableDeclaration","scope":9373,"src":"2776:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9367,"name":"uint256","nodeType":"ElementaryTypeName","src":"2776:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2775:20:30"},"returnParameters":{"id":9372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9371,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9373,"src":"2819:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9370,"name":"address","nodeType":"ElementaryTypeName","src":"2819:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2818:9:30"},"scope":9389,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9378,"nodeType":"FunctionDefinition","src":"2834:57:30","nodes":[],"functionSelector":"51a2b9a0","implemented":false,"kind":"function","modifiers":[],"name":"getLastOutput","nameLocation":"2843:13:30","parameters":{"id":9374,"nodeType":"ParameterList","parameters":[],"src":"2856:2:30"},"returnParameters":{"id":9377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9376,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9378,"src":"2882:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9375,"name":"uint256","nodeType":"ElementaryTypeName","src":"2882:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2881:9:30"},"scope":9389,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9388,"nodeType":"FunctionDefinition","src":"3080:104:30","nodes":[],"documentation":{"id":9379,"nodeType":"StructuredDocumentation","src":"2897:178:30","text":"@notice Check to see if a group has a partial public key registered for a given node.\n @return bool True if the node has a partial public key registered for the group."},"functionSelector":"c2db900b","implemented":false,"kind":"function","modifiers":[],"name":"isPartialKeyRegistered","nameLocation":"3089:22:30","parameters":{"id":9384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9381,"mutability":"mutable","name":"groupIndex","nameLocation":"3120:10:30","nodeType":"VariableDeclaration","scope":9388,"src":"3112:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9380,"name":"uint256","nodeType":"ElementaryTypeName","src":"3112:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9383,"mutability":"mutable","name":"nodeIdAddress","nameLocation":"3140:13:30","nodeType":"VariableDeclaration","scope":9388,"src":"3132:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9382,"name":"address","nodeType":"ElementaryTypeName","src":"3132:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3111:43:30"},"returnParameters":{"id":9387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9388,"src":"3178:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9385,"name":"bool","nodeType":"ElementaryTypeName","src":"3178:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3177:6:30"},"scope":9389,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IController","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[9389],"name":"IController","nameLocation":"68:11:30","scope":9390,"usedErrors":[]}],"license":"MIT"},"id":30}