Sample Solidity Smart Constract Code for University Certificates
pragma solidity >=0.4.22 <0.7.0;
contract UniversityCertificate{
//Smart Contract to manage the university degrees
uint256 public year;
string public course;
address public owner;
string public universityId;
string public universityName;
struct Certificate{
string data;
bool isValid;
string enrollmentId;
}
event response(address from, string msg, string methodName);
bytes32[] public allCertificates;
mapping(bytes32=>Certificate) public certificateById;
modifier onlyOwner{
require(msg.sender == owner);
_;
}
//"B.Tech.",2017,"123456","AKTU"
constructor(string memory _course, uint256 _year, string memory _universityId, string memory _universityName) public{
owner=msg.sender;
course=_course;
year=_year;
universityId=_universityId;
universityName=_universityName;
}
function getCourseDetails() public view returns(string memory _course, uint256 _year, string memory _universityId, string memory _universityName, address _universityAddress) {
_course=course;
_year=year;
_universityId=universityId;
_universityName=universityName;
_universityAddress=owner;
}
//"student_data", true, "0x13", "123456"
function createCertificate(string memory data, bool isValid, bytes32 certId, string memory enrollmentId)public onlyOwner returns (bool status){
bytes memory tempEmptyStringTest= bytes(certificateById[certId].data);
require(tempEmptyStringTest.length == 0);
Certificate memory certi=Certificate(data,isValid,enrollmentId);
certificateById[certId]=certi;
allCertificates.push(certId);
emit response(msg.sender, "Certificate Created", "createCertificate");
return true;
}
//"0x13"
function certificateByCertId(bytes32 certId) public returns (string memory, bool, string memory){
emit response(msg.sender, certificateById[certId].data, "certificateByCertId");
return (certificateById[certId].data, certificateById[certId].isValid, certificateById[certId].enrollmentId);
}
function invalidCertificate(bytes32 certId, bool status)public onlyOwner returns(bool){
bytes memory tempEmptyStringTest=bytes(certificateById[certId].data);
require(tempEmptyStringTest.length != 0 && certificateById[certId].isValid);
Certificate storage certi=certificateById[certId];
certi.isValid=status;
emit response(msg.sender, "Certificate Status Changed Successfully", "invalidCertificate");
}
function getAllCertificates() public view returns(bytes32[] memory){
return allCertificates;
}
}
contract UniversityCertificate{
//Smart Contract to manage the university degrees
uint256 public year;
string public course;
address public owner;
string public universityId;
string public universityName;
struct Certificate{
string data;
bool isValid;
string enrollmentId;
}
event response(address from, string msg, string methodName);
bytes32[] public allCertificates;
mapping(bytes32=>Certificate) public certificateById;
modifier onlyOwner{
require(msg.sender == owner);
_;
}
//"B.Tech.",2017,"123456","AKTU"
constructor(string memory _course, uint256 _year, string memory _universityId, string memory _universityName) public{
owner=msg.sender;
course=_course;
year=_year;
universityId=_universityId;
universityName=_universityName;
}
function getCourseDetails() public view returns(string memory _course, uint256 _year, string memory _universityId, string memory _universityName, address _universityAddress) {
_course=course;
_year=year;
_universityId=universityId;
_universityName=universityName;
_universityAddress=owner;
}
//"student_data", true, "0x13", "123456"
function createCertificate(string memory data, bool isValid, bytes32 certId, string memory enrollmentId)public onlyOwner returns (bool status){
bytes memory tempEmptyStringTest= bytes(certificateById[certId].data);
require(tempEmptyStringTest.length == 0);
Certificate memory certi=Certificate(data,isValid,enrollmentId);
certificateById[certId]=certi;
allCertificates.push(certId);
emit response(msg.sender, "Certificate Created", "createCertificate");
return true;
}
//"0x13"
function certificateByCertId(bytes32 certId) public returns (string memory, bool, string memory){
emit response(msg.sender, certificateById[certId].data, "certificateByCertId");
return (certificateById[certId].data, certificateById[certId].isValid, certificateById[certId].enrollmentId);
}
function invalidCertificate(bytes32 certId, bool status)public onlyOwner returns(bool){
bytes memory tempEmptyStringTest=bytes(certificateById[certId].data);
require(tempEmptyStringTest.length != 0 && certificateById[certId].isValid);
Certificate storage certi=certificateById[certId];
certi.isValid=status;
emit response(msg.sender, "Certificate Status Changed Successfully", "invalidCertificate");
}
function getAllCertificates() public view returns(bytes32[] memory){
return allCertificates;
}
}
Comments
Post a Comment