Skip to content

Instantly share code, notes, and snippets.

@noman-land
Created January 9, 2018 04:50
Show Gist options
  • Save noman-land/d271ed1f3d31d22ca083da2b9dabb04e to your computer and use it in GitHub Desktop.
Save noman-land/d271ed1f3d31d22ca083da2b9dabb04e to your computer and use it in GitHub Desktop.
pragma solidity ^0.4.11;
contract Interviewer {
address public answerer;
address public asker;
function Interviewer(address _asker, address _answerer) {
asker = _asker;
answerer = _answerer;
}
struct SwarmHash {
uint256 hash;
}
struct Question {
address asker;
address answerer;
bool answered;
SwarmHash question;
SwarmHash answer;
}
struct Interview {
address asker;
address answerer;
uint askerListIndex;
uint answererListIndex;
uint startBlock;
uint endBlock;
Question[] questions;
}
struct AnswererList {
Interview[] interviews;
mapping (address => Interview[]) interviewsByAnswerer;
}
struct AskerList {
Interview[] interviews;
mapping (address => Interview[]) interviewByAsker;
}
mapping (address => AnswererList) interviewsByAsker;
mapping (address => AskerList) interviewsByAnswerer;
event NewInterview (
address asker,
address answerer,
uint askerListIndex,
uint answererListIndex,
uint startBlock,
uint endBlock
);
function askQuestion(address answerer, uint interviewIndex, uint256 questionHash) {
address asker = msg.sender;
Interview interview = interviewsByAsker[asker]
.interviewsByAnswerer[answerer][interviewIndex];
interview.questions.push(Question(
asker,
answerer,
false,
SwarmHash(questionHash),
SwarmHash(0)
));
}
function newInterview(address answerer, uint startBlock, uint endBlock) {
if (startBlock < block.number || endBlock <= block.number) {
throw;
}
address asker = msg.sender;
AskerList askerList = interviewsByAnswerer[answerer];
AnswererList answererList = interviewsByAsker[asker];
Question[] questions;
askerList.interviews.push(Interview(
asker,
answerer,
askerList.interviews.length,
answererList.interviews.length,
startBlock,
endBlock,
questions
));
/*answererList.interviews.push(interview);*/
/*NewInterview(
interview.asker,
interview.answerer,
interview.askerListIndex,
interview.answererListIndex,
interview.startBlock,
interview.endBlock
);*/
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment