Last active
August 28, 2018 18:04
-
-
Save RobertoC27/6af3cd4feabcd86194da5b5c69146d9d to your computer and use it in GitHub Desktop.
code snippets for UVG lab
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "checkFunds", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "approvedComprador", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "comprador", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [], | |
"name": "refundComprador", | |
"outputs": [], | |
"payable": true, | |
"stateMutability": "payable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [], | |
"name": "okComprador", | |
"outputs": [], | |
"payable": true, | |
"stateMutability": "payable", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "vendedor", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "completado", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "titulo", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "_titulo", | |
"type": "address" | |
} | |
], | |
"name": "setTitulo", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "_value", | |
"type": "uint256" | |
} | |
], | |
"name": "setValue", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "creador", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "approvedVendedor", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [], | |
"name": "executeSale", | |
"outputs": [], | |
"payable": true, | |
"stateMutability": "payable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [], | |
"name": "returnProperty", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "_comprador", | |
"type": "address" | |
} | |
], | |
"name": "setComprador", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "_vendedor", | |
"type": "address" | |
} | |
], | |
"name": "setVendedor", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [], | |
"name": "okVendedor", | |
"outputs": [], | |
"payable": true, | |
"stateMutability": "payable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"name": "_vendedor", | |
"type": "address" | |
}, | |
{ | |
"name": "_comprador", | |
"type": "address" | |
}, | |
{ | |
"name": "_titulo", | |
"type": "address" | |
} | |
], | |
"payable": true, | |
"stateMutability": "payable", | |
"type": "constructor" | |
} | |
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "_reciever", | |
"type": "address" | |
} | |
], | |
"name": "fundAccount", | |
"outputs": [], | |
"payable": true, | |
"stateMutability": "payable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [], | |
"payable": true, | |
"stateMutability": "payable", | |
"type": "constructor" | |
}, | |
{ | |
"constant": false, | |
"inputs": [], | |
"name": "updateAvailable", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "available", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "owner", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "owner2", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
} | |
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "creator", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "newOwner", | |
"type": "address" | |
} | |
], | |
"name": "setOwner", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "location", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "string" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "description", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "string" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "owner", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "locked", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"stateMutability": "view", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [], | |
"name": "changeLock", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "newOwner", | |
"type": "address" | |
} | |
], | |
"name": "transferOwnership", | |
"outputs": [], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"name": "_description", | |
"type": "string" | |
}, | |
{ | |
"name": "_location", | |
"type": "string" | |
}, | |
{ | |
"name": "_owner", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"stateMutability": "nonpayable", | |
"type": "constructor" | |
} | |
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Faucet: 0x208580fb8c39facbd0db56f987ea0cae8b8c70f9 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
0x6080604052604051606080610b798339810160409081528151602083015191909201516003805433600160a060020a031991821617909155600180548216600160a060020a03958616179055600280548216938516939093179092556000805490921692169190911781556005805460ff19169055610af590819061008490396000f3006080604052600436106100f05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166308d233dc81146100f55780630ec5d0c71461011c5780630f50b6e7146101455780631cef017a1461017657806323b71df3146101805780633182237f14610188578063351a56401461019d578063391b1ab0146101b25780633f8ef813146101c757806355241077146101e857806392ebdcd214610200578063a434287214610215578063aadb5bf11461022a578063b78e00e214610232578063d572b5ad14610247578063ec22953a14610268578063fd0de4a914610289575b600080fd5b34801561010157600080fd5b5061010a610291565b60408051918252519081900360200190f35b34801561012857600080fd5b50610131610296565b604080519115158252519081900360200190f35b34801561015157600080fd5b5061015a6102a4565b60408051600160a060020a039092168252519081900360200190f35b61017e6102b3565b005b61017e610404565b34801561019457600080fd5b5061015a61049d565b3480156101a957600080fd5b506101316104ac565b3480156101be57600080fd5b5061015a6104b5565b3480156101d357600080fd5b5061017e600160a060020a03600435166104c4565b3480156101f457600080fd5b5061017e600435610543565b34801561020c57600080fd5b5061015a610598565b34801561022157600080fd5b506101316105a7565b61017e6105b6565b34801561023e57600080fd5b5061017e610773565b34801561025357600080fd5b5061017e600160a060020a03600435166108d8565b34801561027457600080fd5b5061017e600160a060020a036004351661098f565b61017e610a46565b303190565b600554610100900460ff1681565b600254600160a060020a031681565b60055460ff1615610334576040805160e560020a62461bcd02815260206004820152603e60248201527f4c612076656e74612079612066756520636f6d706c65746164612c206c61206f60448201527f7065726163696f6e206e6f20736520707565646520636f6d706c657461720000606482015290519081900360840190fd5b600254600160a060020a031633146103bc576040805160e560020a62461bcd02815260206004820152602e60248201527f536f6c6f20656c20636f6d707261646f722070756564652063616d626961722060448201527f6573746520706172616d6574726f000000000000000000000000000000000000606482015290519081900360840190fd5b600254604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156103f6573d6000803e3d6000fd5b506005805461ff0019169055565b600254600160a060020a0316331461048c576040805160e560020a62461bcd02815260206004820152602e60248201527f536f6c6f20656c20636f6d707261646f722070756564652063616d626961722060448201527f6573746520706172616d6574726f000000000000000000000000000000000000606482015290519081900360840190fd5b6005805461ff001916610100179055565b600154600160a060020a031681565b60055460ff1681565b600054600160a060020a031681565b600154600160a060020a03163314610514576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020610aaa833981519152604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a03163314610593576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020610aaa833981519152604482015290519081900360640190fd5b600455565b600354600160a060020a031681565b60055462010000900460ff1681565b600254600090600160a060020a03163314806105dc5750600154600160a060020a031633145b1515610632576040805160e560020a62461bcd02815260206004820181905260248201527f6e6f206175746f72697a61646f207061726120656a656375746172206573746f604482015290519081900360640190fd5b60055460ff161561068d576040805160e560020a62461bcd02815260206004820152601d60248201527f636f6d70726176656e74612079612066756520636f6d706c6574616461000000604482015290519081900360640190fd5b600554610100900460ff1680156106ac575060055462010000900460ff165b15610770575060008054600254604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015290519190921692839263f2fde38b926024808301939282900301818387803b15801561071b57600080fd5b505af115801561072f573d6000803e3d6000fd5b5050600154604051600160a060020a039091169250303180156108fc029250906000818181858888f1935050505015801561076e573d6000803e3d6000fd5b505b50565b60055460009060ff16156107f7576040805160e560020a62461bcd02815260206004820152603e60248201527f4c612076656e74612079612066756520636f6d706c65746164612c206c61206f60448201527f7065726163696f6e206e6f20736520707565646520636f6d706c657461720000606482015290519081900360840190fd5b600154600160a060020a03163314610847576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020610aaa833981519152604482015290519081900360640190fd5b5060008054600154604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015290519190921692839263f2fde38b926024808301939282900301818387803b1580156108b157600080fd5b505af11580156108c5573d6000803e3d6000fd5b50506005805462ff000019169055505050565b600354600160a060020a03163314610960576040805160e560020a62461bcd02815260206004820152602d60248201527f736f6c6f20656c2063726561646f722064656c20636f6e747261746f2070756560448201527f6465206861636572206573746f00000000000000000000000000000000000000606482015290519081900360840190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600354600160a060020a03163314610a17576040805160e560020a62461bcd02815260206004820152602d60248201527f736f6c6f20656c2063726561646f722064656c20636f6e747261746f2070756560448201527f6465206861636572206573746f00000000000000000000000000000000000000606482015290519081900360840190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a03163314610a96576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020610aaa833981519152604482015290519081900360640190fd5b6005805462ff00001916620100001790555600536f6c6f20656c2076656e6465646f7220656a656375746172206573746f0000a165627a7a723058201f92887681476babb88826431cc4b064b2ebd56e32a6178d0f8024a143f810540029 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
0x608060405234801561001057600080fd5b506040516106963803806106968339810160409081528151602080840151928401516004805460ff1916600190811790915560028054600160a060020a031990811633179091558154600160a060020a038416911617905591840180519094939093019261008491600091908601906100a1565b5081516100989060039060208501906100a1565b5050505061013c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100e257805160ff191683800117855561010f565b8280016001018555821561010f579182015b8281111561010f5782518255916020019190600101906100f4565b5061011b92915061011f565b5090565b61013991905b8082111561011b5760008155600101610125565b90565b61054b8061014b6000396000f30060806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302d05d3f811461009257806313af4035146100c3578063516f279e146100e65780637284e416146101705780638da5cb5b14610185578063cf3090121461019a578063f07b62be146101c3578063f2fde38b146101d8575b600080fd5b34801561009e57600080fd5b506100a76101f9565b60408051600160a060020a039092168252519081900360200190f35b3480156100cf57600080fd5b506100e4600160a060020a0360043516610208565b005b3480156100f257600080fd5b506100fb6102fa565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561013557818101518382015260200161011d565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506100fb610388565b34801561019157600080fd5b506100a76103e3565b3480156101a657600080fd5b506101af6103f2565b604080519115158252519081900360200190f35b3480156101cf57600080fd5b506100e46103fb565b3480156101e457600080fd5b506100e4600160a060020a0360043516610497565b600254600160a060020a031681565b600254600160a060020a0316331461026a576040805160e560020a62461bcd02815260206004820152601a60248201527f4f6e6c792063726561746f722063616e206368616e6765206974000000000000604482015290519081900360640190fd5b600154600160a060020a0316156102cb576040805160e560020a62461bcd02815260206004820152601160248201527f6f776e6572206973206e6f74206e756c6c000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103805780601f1061035557610100808354040283529160200191610380565b820191906000526020600020905b81548152906001019060200180831161036357829003601f168201915b505050505081565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103805780601f1061035557610100808354040283529160200191610380565b600154600160a060020a031681565b60045460ff1681565b600154600160a060020a03163314610483576040805160e560020a62461bcd02815260206004820152602160248201527f4f6e6c79206f776e65722063616e207472616e73666572206f776e657273686960448201527f7000000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6004805460ff19811660ff90911615179055565b600154600160a060020a031633146102cb576040805160e560020a62461bcd02815260206004820152602160248201527f4f6e6c79206f776e65722063616e207472616e73666572206f776e657273686960448201527f7000000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd00a165627a7a72305820973501e4aaa2b73fe3d6981240e12b1d2205b8ef3ddac8408d570529285662e40029 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pragma solidity ^0.4.18; | |
contract CompraVenta { | |
address public titulo; | |
address public vendedor; | |
address public comprador; | |
address public creador; | |
uint private valor; | |
bool public completado; | |
bool public approvedComprador; | |
bool public approvedVendedor; | |
modifier onlyCreador() { | |
require(msg.sender == creador, "solo el creador del contrato puede hacer esto"); | |
_; | |
} | |
modifier onlyComprador() { | |
if(msg.sender != comprador) | |
revert("Solo el comprador puede cambiar este parametro"); | |
_; | |
} | |
modifier onlyVendedor() { | |
if(msg.sender != vendedor) | |
revert("Solo el vendedor ejecutar esto"); | |
_; | |
} | |
modifier beforeCompletion() { | |
if(completado) | |
revert('La venta ya fue completada, la operacion no se puede completar'); | |
_; | |
} | |
modifier onlyInvolved() { | |
require((msg.sender == comprador) || (msg.sender == vendedor), "no autorizado para ejecutar esto"); | |
_; | |
} | |
constructor(address _vendedor, address _comprador, address _titulo) payable public { | |
creador = msg.sender; | |
vendedor = _vendedor; | |
comprador = _comprador; | |
titulo = _titulo; | |
completado = false; | |
} | |
function setValue(uint _value) onlyVendedor public { | |
valor = _value; | |
} | |
function setTitulo(address _titulo) onlyVendedor public { | |
titulo = _titulo; | |
} | |
function setComprador(address _comprador) onlyCreador public { | |
comprador = _comprador; | |
} | |
function setVendedor(address _vendedor) onlyCreador public { | |
vendedor = _vendedor; | |
} | |
function okComprador() payable onlyComprador public { | |
approvedComprador = true; | |
} | |
function okVendedor() payable onlyVendedor public { | |
approvedVendedor = true; | |
//revisar si ya tengo los fondos y completo el trato | |
// titulo.call(bytes4(keccak256("transferOwnership(address)")), address(this)); | |
} | |
function executeSell() payable onlyInvolved public { | |
require(completado == false, "compraventa ya fue completada"); | |
if(approvedComprador && approvedVendedor){ | |
TituloPropiedad t = TituloPropiedad(titulo); | |
t.transferOwnership(comprador); | |
vendedor.transfer(address(this).balance); | |
} | |
} | |
function returnProperty() beforeCompletion onlyVendedor public { | |
// titulo.call(bytes4(keccak256("transferOwnership(address)")), vendedor); | |
TituloPropiedad t = TituloPropiedad(titulo); | |
t.transferOwnership(vendedor); | |
approvedVendedor = false; | |
} | |
function refundComprador() payable beforeCompletion onlyComprador public { | |
comprador.transfer(address(this).balance); | |
approvedComprador = false; | |
} | |
function checkFunds() view public returns(uint) { | |
return address(this).balance; | |
} | |
} | |
contract TituloPropiedad { | |
function transferOwnership(address newOwner) public; | |
function changeLock() public; | |
function setOwner(address newOwner) public; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pragma solidity ^0.4.18; | |
contract Faucet { | |
address public owner; | |
address public owner2; | |
bool public available; | |
mapping (address => bool) fundedAccounts; | |
modifier onlyOwner() { | |
if(msg.sender != owner) | |
revert("Only owner can change availability"); | |
_; | |
} | |
modifier duringAvailable() { | |
if(!available) | |
revert("Contract not ready to send ether"); | |
_; | |
} | |
constructor() public payable { | |
owner = msg.sender; | |
available = false; | |
} | |
function updateAvailable() onlyOwner public { | |
available = !available; | |
} | |
function fundAccount(address _reciever) duringAvailable public payable { | |
require(fundedAccounts[_reciever] == false); | |
fundedAccounts[_reciever] = true; | |
_reciever.transfer(100 ether); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pragma solidity ^0.4.18; | |
contract TituloPropiedad { | |
string public description; | |
address public owner; | |
address public creator; | |
string public location; | |
bool public locked; | |
modifier onlyCreator() { | |
if(msg.sender != creator) | |
revert("Only creator can change it"); | |
_; | |
} | |
modifier onlyOwner() { | |
if(msg.sender != owner) | |
revert("Only owner can transfer ownership"); | |
_; | |
} | |
modifier unlockedState() { | |
require(locked == false, "Operacion no permitida"); | |
_; | |
} | |
constructor(string _description, string _location, address _owner) public { | |
locked = true; | |
creator = msg.sender; | |
owner = _owner; | |
description = _description; | |
location = _location; | |
} | |
function setOwner(address newOwner) onlyCreator public { | |
require(owner == 0x0000000000000000000000000000000000000000, 'owner is not null'); | |
owner = newOwner; | |
} | |
function transferOwnership(address newOwner) onlyOwner public { | |
owner = newOwner; | |
} | |
function changeLock() onlyOwner public { | |
locked = !locked; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment