Research Article

Blockchain Ecosystem for Credit Transfer in Education

Algorithm 4

ERC token with additional data and assisted token transfers.
Contract MujToken is ERC20Interface, Owned, SecureMath
Declare String Public symbol
Declare String Public name
Declare uint8 public decimals
 Declare uint totalSupply
Declare mapping(blockAddress => uint)balances
Declare mapping(blockAddress => mapping(blockaddress => uint)) allowed
Function Token Public
Assign symbol = “Muj”
Assign name = “MujToken”
Assign decimals = 0
 Assign totalSupply = 100
Assign balances
[0x219b9F6848Cc61E09A6B4a6c96E0E7a04BdbBf52] = totalSupply;
Call: Transfer(blockaddress(0),
0x219b9F6848Cc61E09A6B4a6c96E0E7a04BdbBf52, totalSupply)
Endfunction
Function totalSupply
 Return totalSupply-balances[blockaddress(0)]
Endfunction
Function balanceOf
Pass in: blockAddress tokenOwner
Assign balance[msg.sender] = safeSubtract(balance[msg.sender], tokens)
Assign balance[to] = safeAddition(balance[to], tokens)
Call: Transfers(msg.sender, to, tokens)
true
Endfunction
Function approved
Pass in: blockAddress spend and Uint tokens
Assign allow[msg.sender][spender] = tokens
Call: Approvals(msg.sender, spender, tokens)
true
Endfunction
Function transferFroms
Pass in: blockAddress from, blockAddress to, uint tokens
Assign balance[from] = safeSubstract(balance[from], tokens)
Assign allow[from][msg.sender] = safeSubstract(allow[from][msg.sender], tokens);
balance[to] = safeAddition(balance[to], tokens)
Call: Transfers(from, to, tokens)
Return true
Endfunction
Function allowances
Pass in: blockAddress tokenOwner, blockAddress spender
Return allow[tokenOwner][spender];
Endfunction
Function approveAndCall
Pass in: blockAddress tokenOwner, Uint tokens, Bytes data
Assign allow[msg.sender][spender] = tokens Call:Approvals(msg.sender, spender, tokens)
Call:receiveApproveAndCallBack (spender).getApproval
(msg.sender, tokens, this, data);
Return true Endfunction