//Write your own contracts here. Currently compiles using solc v0.4.15+commit.bbb8e64f. pragma solidity ^0.4.18; contract SimpleStore { struct user{ uint id; string name; uint[] nbr_list; mapping(uint => uint) nbr_balances; } uint[] public user_list; mapping(uint => user) public user_map; function getUserNbrs(uint user_id) public view returns (uint[]){ var usero = user_map[user_id]; return usero.nbr_list; } function getUserNbrBalance(uint user_id, uint nbr_id) public view returns (uint){ var usero = user_map[user_id]; return usero.nbr_balances[nbr_id]; } function registerUser(uint user_id, string user_name) public { user_list.push(user_id); var data = user_map[user_id]; data.id = user_id; data.name = user_name; } function createAcc(uint user_id1, uint user_id2, uint balance1, uint balance2) public { var user1 = user_map[user_id1]; var user2 = user_map[user_id2]; user1.nbr_list.push(user_id2); user2.nbr_list.push(user_id1); user1.nbr_balances[user_id2] = balance1; user2.nbr_balances[user_id1] = balance2; } function sendAmount(uint user_id1, uint user_id2, uint amt) public { } function arrayPop(uint user_id1, uint user_id2) private { var user1 = user_map[user_id1]; var user1_nbrs = user1.nbr_list; uint i = 0; while (i<user1_nbrs.length && user1_nbrs[i]!=user_id2 ){ i++; } require(i<user1_nbrs.length); user1_nbrs[i] = user1_nbrs[user1_nbrs.length-1]; user1_nbrs.length--; } function closeAccount(uint user_id1, uint user_id2) public { arrayPop(user_id1, user_id2); arrayPop(user_id2, user_id1); } }
0.4.18