Guest User

Untitled

a guest
Feb 20th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. pragma solidity ^0.4.19;
  2. contract Adoption {
  3. address ceoAddress = 0xFc3B4137Bf7d53aB44A0FB39b31CC3F18EA6F959;
  4. struct Pet {
  5. address owner;
  6. uint256 price;
  7.  
  8. }
  9.  
  10. Pet[16] data;
  11.  
  12. function Adoption() public {
  13. for (uint i = 0; i < 16; i++) {
  14.  
  15. data[i].price = 100000000;
  16. data[i].owner = msg.sender;
  17. }
  18. }
  19.  
  20. function returnEth(address oldOwner, uint256 price) public payable {
  21. ceoAddress.transfer(price);
  22. }
  23. // Adopting a pet
  24. function adopt(uint petId) public payable returns (uint, uint) {
  25. require(petId >= 0 && petId <= 15);
  26. if ( data[petId].price == 0 ) {
  27. data[petId].price = 100000000;
  28. } else {
  29. data[petId].price = data[petId].price * 2;
  30. }
  31.  
  32. require(msg.value >= data[petId].price * uint256(1));
  33. returnEth(data[petId].owner, (data[petId].price / 2));
  34. data[petId].owner = msg.sender;
  35. return (petId, data[petId].price);
  36. //return value;
  37. }
  38.  
  39. function getAdopters() external view returns (address[], uint256[]) {
  40. address[] memory owners = new address[](16);
  41. uint256[] memory prices = new uint256[](16);
  42. for (uint i=0; i<16; i++) {
  43. owners[i] = (data[i].owner);
  44. prices[i] = (data[i].price);
  45. }
  46. return (owners,prices);
  47. }
  48.  
  49. }
Add Comment
Please, Sign In to add comment