{"contractName":"ProxyTokenFactory","abi":[{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"}],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"implementationAddress","type":"address"},{"indexed":true,"name":"proxyTokenAddress","type":"address"},{"indexed":false,"name":"_initialSupply","type":"uint256"},{"indexed":false,"name":"_name","type":"string"},{"indexed":false,"name":"_decimalUnits","type":"uint8"},{"indexed":false,"name":"_symbol","type":"string"}],"name":"ProxyTokenCreated","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":false,"inputs":[{"name":"_implementation","type":"address"},{"name":"_initialSupply","type":"uint256"},{"name":"_name","type":"string"},{"name":"_decimalUnits","type":"uint8"},{"name":"_symbol","type":"string"}],"name":"createProxyToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405260008060146101000a81548160ff021916908315150217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117db8061006d6000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633f4ba83a146100935780634efe4b4a146100aa5780635c975abb14610174578063715018a6146101a35780638456cb59146101ba5780638da5cb5b146101d1578063c6786e5a14610228578063f2fde38b1461028e575b600080fd5b34801561009f57600080fd5b506100a86102d1565b005b3480156100b657600080fd5b50610132600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001919091929391929390803560ff16906020019092919080359060200190820180359060200191909192939192939050505061038f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561018057600080fd5b506101896108bf565b604051808215151515815260200191505060405180910390f35b3480156101af57600080fd5b506101b86108d2565b005b3480156101c657600080fd5b506101cf6109d4565b005b3480156101dd57600080fd5b506101e6610a94565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023457600080fd5b5061028c60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610ab9565b005b34801561029a57600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d60565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561032c57600080fd5b600060149054906101000a900460ff16151561034757600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060008060149054906101000a900460ff161515156103af57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161415151561047a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496d706c656d656e746174696f6e206d757374206e6f7420626520616464726581526020017f737320300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614151515610544576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f496d706c656d656e746174696f6e206d757374206e6f7420626520746869732081526020017f616464726573730000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61054c610ec1565b604051809103906000f080158015610568573d6000803e3d6000fd5b5091508173ffffffffffffffffffffffffffffffffffffffff16633659cfe68b6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561060657600080fd5b505af115801561061a573d6000803e3d6000fd5b505050508190508073ffffffffffffffffffffffffffffffffffffffff1663e3013ce8338b8b8b8b8b8b6040518863ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001878152602001806020018560ff1660ff1681526020018060200183810383528888828181526020019250808284378201915050838103825285858281815260200192508082843782019150509950505050505050505050600060405180830381600087803b15801561071657600080fd5b505af115801561072a573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663f1739cae336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156107c957600080fd5b505af11580156107dd573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa0db1a59bfa7a56d778b9a521a296d61425a0f04f3e712a8c7d05b90bac843478c8c8c8c8c8c60405180878152602001806020018560ff1660ff1681526020018060200183810383528888828181526020019250808284378201915050838103825285858281815260200192508082843782019150509850505050505050505060405180910390a48192505050979650505050505050565b600060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092d57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a2f57600080fd5b600060149054906101000a900460ff16151515610a4b57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b1957600080fd5b600092505b8351831015610d26578383815181101515610b3557fe5b9060200190602002015191508173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610bdc57600080fd5b505af1158015610bf0573d6000803e3d6000fd5b505050506040513d6020811015610c0657600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610cdd57600080fd5b505af1158015610cf1573d6000803e3d6000fd5b505050506040513d6020811015610d0757600080fd5b8101908080519060200190929190505050508280600101935050610b1e565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dbb57600080fd5b610dc481610dc7565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e0357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040516108de80610ed2833901905600608060405234801561001057600080fd5b506100293361002e640100000000026401000000009004565b61006f565b600060405180807f6f72672e6d65726964696f2e70726f78792e6f776e65720000000000000000008152506017019050604051809103902090508181555050565b6108608061007e6000396000f300608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025313a2146100e75780633659cfe61461013e5780634555d5c9146101815780634f1ef286146101ac5780635c60da1b14610228578063f1739cae1461027f575b60006100826102c2565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156100c057600080fd5b60405136600082376000803683855af43d806000843e81600081146100e3578184f35b8184fd5b3480156100f357600080fd5b506100fc610305565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561014a57600080fd5b5061017f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610348565b005b34801561018d57600080fd5b506101966103fe565b6040518082815260200191505060405180910390f35b610226600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610441565b005b34801561023457600080fd5b5061023d6102c2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028b57600080fd5b506102c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061058b565b005b60008060405180807f6f72672e6d65726964696f2e70726f78792e696d706c656d656e746174696f6e815250602001905060405180910390209050805491505090565b60008060405180807f6f72672e6d65726964696f2e70726f78792e6f776e6572000000000000000000815250601701905060405180910390209050805491505090565b610350610305565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4d7573742062652070726f7879204f776e65720000000000000000000000000081525060200191505060405180910390fd5b6103fb8161071b565b50565b60008060405180807f6f72672e6d65726964696f2e70726f78792e7479706549640000000000000000815250601801905060405180910390209050805491505090565b610449610305565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4d7573742062652070726f7879204f776e65720000000000000000000000000081525060200191505060405180910390fd5b6104f482610348565b3073ffffffffffffffffffffffffffffffffffffffff16348260405180828051906020019080838360005b8381101561053a57808201518184015260208101905061051f565b50505050905090810190601f1680156105675780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af192505050151561058757600080fd5b5050565b610593610305565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610635576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4d7573742062652070726f7879204f776e65720000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561067157600080fd5b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd961069a610305565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1610718816107b2565b50565b60006107256102c2565b90508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561076257600080fd5b61076b826107f3565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25050565b600060405180807f6f72672e6d65726964696f2e70726f78792e6f776e65720000000000000000008152506017019050604051809103902090508181555050565b600060405180807f6f72672e6d65726964696f2e70726f78792e696d706c656d656e746174696f6e81525060200190506040518091039020905081815550505600a165627a7a7230582013d2571aaa69ea164577fc0cd182a3b77ccd654abd5b836cd1115b885d2360bd0029a165627a7a72305820e7c80adeab8d33c24e4ea043c17521052d79011480e8d6be736802c629c59b880029","deployedBytecode":"0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633f4ba83a146100935780634efe4b4a146100aa5780635c975abb14610174578063715018a6146101a35780638456cb59146101ba5780638da5cb5b146101d1578063c6786e5a14610228578063f2fde38b1461028e575b600080fd5b34801561009f57600080fd5b506100a86102d1565b005b3480156100b657600080fd5b50610132600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001919091929391929390803560ff16906020019092919080359060200190820180359060200191909192939192939050505061038f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561018057600080fd5b506101896108bf565b604051808215151515815260200191505060405180910390f35b3480156101af57600080fd5b506101b86108d2565b005b3480156101c657600080fd5b506101cf6109d4565b005b3480156101dd57600080fd5b506101e6610a94565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023457600080fd5b5061028c60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610ab9565b005b34801561029a57600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d60565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561032c57600080fd5b600060149054906101000a900460ff16151561034757600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060008060149054906101000a900460ff161515156103af57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161415151561047a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496d706c656d656e746174696f6e206d757374206e6f7420626520616464726581526020017f737320300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614151515610544576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f496d706c656d656e746174696f6e206d757374206e6f7420626520746869732081526020017f616464726573730000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61054c610ec1565b604051809103906000f080158015610568573d6000803e3d6000fd5b5091508173ffffffffffffffffffffffffffffffffffffffff16633659cfe68b6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561060657600080fd5b505af115801561061a573d6000803e3d6000fd5b505050508190508073ffffffffffffffffffffffffffffffffffffffff1663e3013ce8338b8b8b8b8b8b6040518863ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001878152602001806020018560ff1660ff1681526020018060200183810383528888828181526020019250808284378201915050838103825285858281815260200192508082843782019150509950505050505050505050600060405180830381600087803b15801561071657600080fd5b505af115801561072a573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663f1739cae336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156107c957600080fd5b505af11580156107dd573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa0db1a59bfa7a56d778b9a521a296d61425a0f04f3e712a8c7d05b90bac843478c8c8c8c8c8c60405180878152602001806020018560ff1660ff1681526020018060200183810383528888828181526020019250808284378201915050838103825285858281815260200192508082843782019150509850505050505050505060405180910390a48192505050979650505050505050565b600060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092d57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a2f57600080fd5b600060149054906101000a900460ff16151515610a4b57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b1957600080fd5b600092505b8351831015610d26578383815181101515610b3557fe5b9060200190602002015191508173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610bdc57600080fd5b505af1158015610bf0573d6000803e3d6000fd5b505050506040513d6020811015610c0657600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610cdd57600080fd5b505af1158015610cf1573d6000803e3d6000fd5b505050506040513d6020811015610d0757600080fd5b8101908080519060200190929190505050508280600101935050610b1e565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dbb57600080fd5b610dc481610dc7565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e0357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040516108de80610ed2833901905600608060405234801561001057600080fd5b506100293361002e640100000000026401000000009004565b61006f565b600060405180807f6f72672e6d65726964696f2e70726f78792e6f776e65720000000000000000008152506017019050604051809103902090508181555050565b6108608061007e6000396000f300608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025313a2146100e75780633659cfe61461013e5780634555d5c9146101815780634f1ef286146101ac5780635c60da1b14610228578063f1739cae1461027f575b60006100826102c2565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156100c057600080fd5b60405136600082376000803683855af43d806000843e81600081146100e3578184f35b8184fd5b3480156100f357600080fd5b506100fc610305565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561014a57600080fd5b5061017f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610348565b005b34801561018d57600080fd5b506101966103fe565b6040518082815260200191505060405180910390f35b610226600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610441565b005b34801561023457600080fd5b5061023d6102c2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028b57600080fd5b506102c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061058b565b005b60008060405180807f6f72672e6d65726964696f2e70726f78792e696d706c656d656e746174696f6e815250602001905060405180910390209050805491505090565b60008060405180807f6f72672e6d65726964696f2e70726f78792e6f776e6572000000000000000000815250601701905060405180910390209050805491505090565b610350610305565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4d7573742062652070726f7879204f776e65720000000000000000000000000081525060200191505060405180910390fd5b6103fb8161071b565b50565b60008060405180807f6f72672e6d65726964696f2e70726f78792e7479706549640000000000000000815250601801905060405180910390209050805491505090565b610449610305565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4d7573742062652070726f7879204f776e65720000000000000000000000000081525060200191505060405180910390fd5b6104f482610348565b3073ffffffffffffffffffffffffffffffffffffffff16348260405180828051906020019080838360005b8381101561053a57808201518184015260208101905061051f565b50505050905090810190601f1680156105675780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af192505050151561058757600080fd5b5050565b610593610305565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610635576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4d7573742062652070726f7879204f776e65720000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561067157600080fd5b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd961069a610305565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1610718816107b2565b50565b60006107256102c2565b90508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561076257600080fd5b61076b826107f3565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25050565b600060405180807f6f72672e6d65726964696f2e70726f78792e6f776e65720000000000000000008152506017019050604051809103902090508181555050565b600060405180807f6f72672e6d65726964696f2e70726f78792e696d706c656d656e746174696f6e81525060200190506040518091039020905081815550505600a165627a7a7230582013d2571aaa69ea164577fc0cd182a3b77ccd654abd5b836cd1115b885d2360bd0029a165627a7a72305820e7c80adeab8d33c24e4ea043c17521052d79011480e8d6be736802c629c59b880029","source":"pragma solidity 0.4.24;\n\nimport {OwnedUpgradeabilityProxy as ProxyToken} from \"../proxy/OwnedUpgradeabilityProxy.sol\";\nimport \"openzeppelin-solidity/contracts/lifecycle/TokenDestructible.sol\";\nimport \"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\";\nimport \"../interfaces/IAssetTokenInitializer.sol\";\n\n\n/**\n * @title ProxyToken contract factory\n *\n * @dev Implementation of the ProxyToken contract factory.\n *      Launches Owned and Upgradeable Proxy Contracts,\n *      points them to the passed in implementation\n */\ncontract ProxyTokenFactory is TokenDestructible, Pausable {\n\n    event ProxyTokenCreated(\n      address indexed owner,\n      address indexed implementationAddress,\n      address indexed proxyTokenAddress,\n      uint256 _initialSupply,\n      string _name,\n      uint8 _decimalUnits,\n      string _symbol\n    );\n\n    function createProxyToken(\n        IAssetTokenInitializer _implementation,\n        uint256 _initialSupply,\n        string _name,\n        uint8 _decimalUnits,\n        string _symbol\n    ) \n        external\n        whenNotPaused\n        returns (address)\n    {\n        require(_implementation != address(0), \"Implementation must not be address 0\");\n        require(_implementation != address(this), \"Implementation must not be this address\");\n\n        ProxyToken proxyToken = new ProxyToken();\n\n        proxyToken.upgradeTo(_implementation);\n\n        IAssetTokenInitializer proxyTokenInitializer = IAssetTokenInitializer(address(proxyToken));\n        proxyTokenInitializer.initialize(\n            msg.sender,\n            _initialSupply,\n            _name,\n            _decimalUnits,\n            _symbol\n        );\n\n        proxyToken.transferProxyOwnership(msg.sender);\n        \n        emit ProxyTokenCreated(\n            msg.sender,\n            _implementation,\n            proxyToken,\n            _initialSupply,\n            _name,\n            _decimalUnits,\n            _symbol\n        );\n\n        return proxyToken;\n    }\n}","compiler":{"name":"solc","version":"0.4.24+commit.e67f0147.Emscripten.clang"},"networks":{},"schemaVersion":"2.0.1","updatedAt":"2019-02-04T16:45:42.704Z"}