|
@@ -1,13 +1,13 @@
|
|
|
import "./EIP20.sol";
|
|
|
|
|
|
-pragma solidity ^0.4.18;
|
|
|
+pragma solidity ^0.4.21;
|
|
|
|
|
|
|
|
|
contract EIP20Factory {
|
|
|
|
|
|
mapping(address => address[]) public created;
|
|
|
mapping(address => bool) public isEIP20; //verify without having to do a bytecode check.
|
|
|
- bytes public EIP20ByteCode; // solhint-disable-line var-name-mixedcase
|
|
|
+ bytes public EIP20ByteCode; // solhint-disable-line var-name-mixedcase
|
|
|
|
|
|
function EIP20Factory() public {
|
|
|
//upon creation of the factory, deploy a EIP20 (parameters are meaningless) and store the bytecode provably.
|
|
@@ -32,24 +32,24 @@ contract EIP20Factory {
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
-
|
|
|
- function createEIP20(uint256 _initialAmount, string _name, uint8 _decimals, string _symbol)
|
|
|
- public
|
|
|
+
|
|
|
+ function createEIP20(uint256 _initialAmount, string _name, uint8 _decimals, string _symbol)
|
|
|
+ public
|
|
|
returns (address) {
|
|
|
|
|
|
EIP20 newToken = (new EIP20(_initialAmount, _name, _decimals, _symbol));
|
|
|
created[msg.sender].push(address(newToken));
|
|
|
isEIP20[address(newToken)] = true;
|
|
|
//the factory will own the created tokens. You must transfer them.
|
|
|
- newToken.transfer(msg.sender, _initialAmount);
|
|
|
+ newToken.transfer(msg.sender, _initialAmount);
|
|
|
return address(newToken);
|
|
|
}
|
|
|
|
|
|
- //for now, keeping this internal. Ideally there should also be a live version of this that
|
|
|
+ //for now, keeping this internal. Ideally there should also be a live version of this that
|
|
|
// any contract can use, lib-style.
|
|
|
//retrieves the bytecode at a specific address.
|
|
|
function codeAt(address _addr) internal view returns (bytes outputCode) {
|
|
|
- assembly { // solhint-disable-line no-inline-assembly
|
|
|
+ assembly { // solhint-disable-line no-inline-assembly
|
|
|
// retrieve the size of the code, this needs assembly
|
|
|
let size := extcodesize(_addr)
|
|
|
// allocate output byte array - this could also be done without assembly
|