UNPKG

tokenboost-solidity-erc20sale

Version:
665 lines (664 loc) 284 kB
{ "contractName": "Registry", "abi": [ { "constant": false, "inputs": [], "name": "renounceOwnership", "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": "_newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "name": "_opened", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "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": "open", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_identifier", "type": "string" }, { "name": "_version", "type": "uint256" }, { "name": "_template", "type": "address" } ], "name": "register", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "numberOfIdentifiers", "outputs": [ { "name": "size", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_index", "type": "uint256" } ], "name": "identifierAt", "outputs": [ { "name": "identifier", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_identifier", "type": "string" } ], "name": "versionsOf", "outputs": [ { "name": "version", "type": "uint256[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_identifier", "type": "string" }, { "name": "_version", "type": "uint256" } ], "name": "templateOf", "outputs": [ { "name": "template", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_identifier", "type": "string" } ], "name": "latestTemplateOf", "outputs": [ { "name": "template", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b506040516020806113f383398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060146101000a81548160ff021916908315150217905550506113568061009d6000396000f3006080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063121a42c0146100a957806324d48c0d1461014f5780632a4798da1461017a5780632cf5cf8b146102235780635147fba1146102e15780635dc1aad314610394578063715018a6146104275780638da5cb5b1461043e578063f2fde38b14610495578063fcfff16f146104d8575b600080fd5b3480156100b557600080fd5b506100d4600480360381019080803590602001909291905050506104ef565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101145780820151818401526020810190506100f9565b50505050905090810190601f1680156101415780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015b57600080fd5b506101646105aa565b6040518082815260200191505060405180910390f35b34801561018657600080fd5b506101e1600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506105b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561022f57600080fd5b5061028a600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506106eb565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102cd5780820151818401526020810190506102b2565b505050509050019250505060405180910390f35b3480156102ed57600080fd5b50610352600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506107ae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103a057600080fd5b50610425600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610855565b005b34801561043357600080fd5b5061043c610f85565b005b34801561044a57600080fd5b50610453611087565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104a157600080fd5b506104d6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110ac565b005b3480156104e457600080fd5b506104ed611113565b005b606060018281548110151561050057fe5b906000526020600020018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561059e5780601f106105735761010080835404028352916020019161059e565b820191906000526020600020905b81548152906001019060200180831161058157829003601f168201915b50505050509050919050565b6000600180549050905090565b6000806003836040518082805190602001908083835b6020831015156105f257805182526020820191506020810190506020830392506105cd565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090506004836040518082805190602001908083835b60208310151561065f578051825260208201915060208101905060208303925061063a565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060008260018480549050038154811015156106a957fe5b9060005260206000200154815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b60606003826040518082805190602001908083835b6020831015156107255780518252602082019150602081019050602083039250610700565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054806020026020016040519081016040528092919081815260200182805480156107a257602002820191906000526020600020905b81548152602001906001019080831161078e575b50505050509050919050565b60006004836040518082805190602001908083835b6020831015156107e857805182526020820191506020810190506020830392506107c3565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b600080600060149054906101000a900460ff16806108bf57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156108ca57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166301ffc9a7806040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050602060405180830381600087803b15801561097757600080fd5b505af115801561098b573d6000803e3d6000fd5b505050506040513d60208110156109a157600080fd5b810190808051906020019092919050505015156109bd57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166301ffc9a763d48445ff6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050602060405180830381600087803b158015610a6e57600080fd5b505af1158015610a82573d6000803e3d6000fd5b505050506040513d6020811015610a9857600080fd5b81019080805190602001909291905050501515610ab457600080fd5b6002856040518082805190602001908083835b602083101515610aec5780518252602082019150602081019050602083039250610ac7565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610ba857503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1515610c42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001807f6964656e74696669657220616c7265616479207265676973746572656420627981526020017f20616e6f746865722072656769737472616e740000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d61576001859080600181540180825580915050906001820390600052602060002001600090919290919091509080519060200190610cb4929190611285565b5050336002866040518082805190602001908083835b602083101515610cef5780518252602082019150602081019050602083039250610cca565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6003856040518082805190602001908083835b602083101515610d995780518252602082019150602081019050602083039250610d74565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209050600081805490501115610e9857806001828054905003815481101515610df057fe5b906000526020600020015484111515610e97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f6e65772076657273696f6e206d7573742062652067726561746572207468616e81526020017f206f6c642076657273696f6e730000000000000000000000000000000000000081525060400191505060405180910390fd5b5b80849080600181540180825580915050906001820390600052602060002001600090919290919091505550826004866040518082805190602001908083835b602083101515610efc5780518252602082019150602081019050602083039250610ed7565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561110757600080fd5b6111108161118b565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561116e57600080fd5b6001600060146101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156111c757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106112c657805160ff19168380011785556112f4565b828001600101855582156112f4579182015b828111156112f35782518255916020019190600101906112d8565b5b5090506113019190611305565b5090565b61132791905b8082111561132357600081600090555060010161130b565b5090565b905600a165627a7a723058203c4cf6901909326c971da91f5539dd3ce0a458e3132ccbac3c9daec69fe559df0029", "deployedBytecode": "0x6080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063121a42c0146100a957806324d48c0d1461014f5780632a4798da1461017a5780632cf5cf8b146102235780635147fba1146102e15780635dc1aad314610394578063715018a6146104275780638da5cb5b1461043e578063f2fde38b14610495578063fcfff16f146104d8575b600080fd5b3480156100b557600080fd5b506100d4600480360381019080803590602001909291905050506104ef565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101145780820151818401526020810190506100f9565b50505050905090810190601f1680156101415780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015b57600080fd5b506101646105aa565b6040518082815260200191505060405180910390f35b34801561018657600080fd5b506101e1600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506105b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561022f57600080fd5b5061028a600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506106eb565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102cd5780820151818401526020810190506102b2565b505050509050019250505060405180910390f35b3480156102ed57600080fd5b50610352600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506107ae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103a057600080fd5b50610425600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610855565b005b34801561043357600080fd5b5061043c610f85565b005b34801561044a57600080fd5b50610453611087565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104a157600080fd5b506104d6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110ac565b005b3480156104e457600080fd5b506104ed611113565b005b606060018281548110151561050057fe5b906000526020600020018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561059e5780601f106105735761010080835404028352916020019161059e565b820191906000526020600020905b81548152906001019060200180831161058157829003601f168201915b50505050509050919050565b6000600180549050905090565b6000806003836040518082805190602001908083835b6020831015156105f257805182526020820191506020810190506020830392506105cd565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090506004836040518082805190602001908083835b60208310151561065f578051825260208201915060208101905060208303925061063a565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060008260018480549050038154811015156106a957fe5b9060005260206000200154815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b60606003826040518082805190602001908083835b6020831015156107255780518252602082019150602081019050602083039250610700565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054806020026020016040519081016040528092919081815260200182805480156107a257602002820191906000526020600020905b81548152602001906001019080831161078e575b50505050509050919050565b60006004836040518082805190602001908083835b6020831015156107e857805182526020820191506020810190506020830392506107c3565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b600080600060149054906101000a900460ff16806108bf57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156108ca57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166301ffc9a7806040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050602060405180830381600087803b15801561097757600080fd5b505af115801561098b573d6000803e3d6000fd5b505050506040513d60208110156109a157600080fd5b810190808051906020019092919050505015156109bd57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166301ffc9a763d48445ff6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180827c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001915050602060405180830381600087803b158015610a6e57600080fd5b505af1158015610a82573d6000803e3d6000fd5b505050506040513d6020811015610a9857600080fd5b81019080805190602001909291905050501515610ab457600080fd5b6002856040518082805190602001908083835b602083101515610aec5780518252602082019150602081019050602083039250610ac7565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610ba857503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1515610c42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001807f6964656e74696669657220616c7265616479207265676973746572656420627981526020017f20616e6f746865722072656769737472616e740000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d61576001859080600181540180825580915050906001820390600052602060002001600090919290919091509080519060200190610cb4929190611285565b5050336002866040518082805190602001908083835b602083101515610cef5780518252602082019150602081019050602083039250610cca565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6003856040518082805190602001908083835b602083101515610d995780518252602082019150602081019050602083039250610d74565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209050600081805490501115610e9857806001828054905003815481101515610df057fe5b906000526020600020015484111515610e97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f6e65772076657273696f6e206d7573742062652067726561746572207468616e81526020017f206f6c642076657273696f6e730000000000000000000000000000000000000081525060400191505060405180910390fd5b5b80849080600181540180825580915050906001820390600052602060002001600090919290919091505550826004866040518082805190602001908083835b602083101515610efc5780518252602082019150602081019050602083039250610ed7565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561110757600080fd5b6111108161118b565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561116e57600080fd5b6001600060146101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156111c757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106112c657805160ff19168380011785556112f4565b828001600101855582156112f4579182015b828111156112f35782518255916020019190600101906112d8565b5b5090506113019190611305565b5090565b61132791905b8082111561132357600081600090555060010161130b565b5090565b905600a165627a7a723058203c4cf6901909326c971da91f5539dd3ce0a458e3132ccbac3c9daec69fe559df0029", "sourceMap": "141:2670:17:-;;;407:76;8:9:-1;5:2;;;30:1;27;20:12;5:2;407:76:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;469:7:17;460:6;;:16;;;;;;;;;;;;;;;;;;407:76;141:2670;;;;;;", "deployedSourceMap": "141:2670:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2116:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2116:118:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2116:118:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2005:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2005:105:17;;;;;;;;;;;;;;;;;;;;;;;2557:252;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2557:252:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2240:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2240:134:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2240:134:17;;;;;;;;;;;;;;;;;2380:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2380:171:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1003:996;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1003:996:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:39;;;;;;238:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;1274:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1274:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;567:63:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;567:63:17;;;;;;2116:118;2172:17;2208:11;2220:6;2208:19;;;;;;;;;;;;;;;;;2201:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2116:118;;;:::o;2005:105::-;2057:9;2085:11;:18;;;;2078:25;;2005:105;:::o;2557:252::-;2624:17;2653:23;2679:20;2700:11;2679:33;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2679:33:17;;;;;;;;;;;;;;;;;;;;;2653:59;;2729:29;2759:11;2729:42;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2729:42:17;;;;;;;;;;;;;;;;;;;;;:73;2772:8;2799:1;2781:8;:15;;;;:19;2772:29;;;;;;;;;;;;;;;;;;2729:73;;;;;;;;;;;;;;;;;;;;;2722:80;;2557:252;;;;:::o;2240:134::-;2301:14;2334:20;2355:11;2334:33;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2334:33:17;;;;;;;;;;;;;;;;;;;;;2327:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2240:134;;;:::o;2380:171::-;2456:17;2492:29;2522:11;2492:42;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2492:42:17;;;;;;;;;;;;;;;;;;;;;:52;2535:8;2492:52;;;;;;;;;;;;;;;;;;;;;2485:59;;2380:171;;;;:::o;1003:996::-;1321:18;1669:23;1101:6;;;;;;;;;;;:29;;;;1125:5;;;;;;;;;;;1111:19;;:10;:19;;;1101:29;1093:38;;;;;;;;1180:9;:27;;;1208:10;1180:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1180:39:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1180:39:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1180:39:17;;;;;;;;;;;;;;;;1172:48;;;;;;;;1270:9;:27;;;1298:10;1270:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1270:39:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1270:39:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1270:39:17;;;;;;;;;;;;;;;;1262:48;;;;;;;;1342:22;1365:11;1342:35;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1342:35:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1321:56;;1417:1;1395:24;;:10;:24;;;:52;;;;1437:10;1423:24;;:10;:24;;;1395:52;1387:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1539:1;1517:24;;:10;:24;;;1513:146;;;1557:11;1574;1557:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1557:29:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1638:10;1600:22;1623:11;1600:35;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1600:35:17;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;1513:146;1695:20;1716:11;1695:33;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1695:33:17;;;;;;;;;;;;;;;;;;;;;1669:59;;1760:1;1742:8;:15;;;;:19;1738:148;;;1796:8;1823:1;1805:8;:15;;;;:19;1796:29;;;;;;;;;;;;;;;;;;1785:8;:40;1777:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1738:148;1895:8;1909;1895:23;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1895:23:17;;;;;;;;;;;;;;;;;;;;;;1983:9;1928:29;1958:11;1928:42;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1928:42:17;;;;;;;;;;;;;;;;;;;;;:52;1971:8;1928:52;;;;;;;;;;;;:64;;;;;;;;;;;;;;;;;;1003:996;;;;;:::o;1001:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1077:5;;;;;;;;;;;1058:25;;;;;;;;;;;;1105:1;1089:5;;:18;;;;;;;;;;;;;;;;;;1001:111::o;238:20::-;;;;;;;;;;;;;:::o;1274:103::-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;567:63:17:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;619:4:17;610:6;;:13;;;;;;;;;;;;;;;;;;567:63::o;1512:171:39:-;1603:1;1582:23;;:9;:23;;;;1574:32;;;;;;;;1645:9;1617:38;;1638:5;;;;;;;;;;;1617:38;;;;;;;;;;;;1669:9;1661:5;;:17;;;;;;;;;;;;;;;;;;1512:171;:::o;141:2670:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.24;\n\nimport \"../template/Template.sol\";\n\n/**\n * @title Registry\n * @notice Registry maintains Contracts by version.\n */\ncontract Registry is Ownable {\n bool opened;\n string[] identifiers;\n mapping(string => address) registrantOfIdentifier;\n mapping(string => uint[]) versionsOfIdentifier;\n mapping(string => mapping(uint => Template)) templateOfVersionOfIdentifier;\n\n constructor(bool _opened) Ownable() public {\n opened = _opened;\n }\n\n /**\n * @notice Open the Registry so that anyone can register.\n */\n function open() onlyOwner public {\n opened = true;\n }\n\n /**\n * @notice Registers a new `Template`.\n * @param _identifier If any template was registered for the same identifier, the registrant of the templates must be the same.\n * @param _version If any template was registered for the same identifier, new version must be greater than the old one.\n * @param _template Template to be registered.\n */\n function register(string _identifier, uint _version, Template _template) public {\n require(opened || msg.sender == owner);\n\n // InterfaceId_ERC165\n require(_template.supportsInterface(0x01ffc9a7));\n // InterfaceId_Template\n require(_template.supportsInterface(0xd48445ff));\n\n address registrant = registrantOfIdentifier[_identifier];\n require(registrant == address(0) || registrant == msg.sender, \"identifier already registered by another registrant\");\n if (registrant == address(0)) {\n identifiers.push(_identifier);\n registrantOfIdentifier[_identifier] = msg.sender;\n }\n\n uint[] storage versions = versionsOfIdentifier[_identifier];\n if (versions.length > 0) {\n require(_version > versions[versions.length - 1], \"new version must be greater than old versions\");\n }\n versions.push(_version);\n templateOfVersionOfIdentifier[_identifier][_version] = _template;\n }\n\n function numberOfIdentifiers() public view returns (uint size) {\n return identifiers.length;\n }\n\n function identifierAt(uint _index) public view returns (string identifier) {\n return identifiers[_index];\n }\n\n function versionsOf(string _identifier) public view returns (uint[] version) {\n return versionsOfIdentifier[_identifier];\n }\n\n function templateOf(string _identifier, uint _version) public view returns (Template template) {\n return templateOfVersionOfIdentifier[_identifier][_version];\n }\n\n function latestTemplateOf(string _identifier) public view returns (Template template) {\n uint[] storage versions = versionsOfIdentifier[_identifier];\n return templateOfVersionOfIdentifier[_identifier][versions[versions.length - 1]];\n }\n}\n", "sourcePath": "tokenboost-solidity/contracts/registry/Registry.sol", "ast": { "absolutePath": "tokenboost-solidity/contracts/registry/Registry.sol", "exportedSymbols": { "Registry": [ 2212 ] }, "id": 2213, "nodeType": "SourceUnit", "nodes": [ { "id": 1976, "literals": [ "solidity", "^", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:24:17" }, { "absolutePath": "tokenboost-solidity/contracts/template/Template.sol", "file": "../template/Template.sol", "id": 1977, "nodeType": "ImportDirective", "scope": 2213, "sourceUnit": 3129, "src": "26:34:17", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 1978, "name": "Ownable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 6426, "src": "162:7:17", "typeDescriptions": { "typeIdentifier": "t_contract$_Ownable_$6426", "typeString": "contract Ownable" } }, "id": 1979, "nodeType": "InheritanceSpecifier", "src": "162:7:17" } ], "contractDependencies": [ 6426 ], "contractKind": "contract", "documentation": "@title Registry\n@notice Registry maintains Contracts by version.", "fullyImplemented": true, "id": 2212, "linearizedBaseContracts": [ 2212, 6426 ], "name": "Registry", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 1981, "name": "opened", "nodeType": "VariableDeclaration", "scope": 2212, "src": "176:11:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1980, "name": "bool", "nodeType": "ElementaryTypeName", "src": "176:4:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1984, "name": "identifiers", "nodeType": "VariableDeclaration", "scope": 2212, "src": "193:20:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", "typeString": "string[]" }, "typeName": { "baseType": { "id": 1982, "name": "string", "nodeType": "ElementaryTypeName", "src": "193:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "id": 1983, "length": null, "nodeType": "ArrayTypeName", "src": "193:8:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", "typeString": "string[]" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1988, "name": "registrantOfIdentifier", "nodeType": "VariableDeclaration", "scope": 2212, "src": "219:49:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", "typeString": "mapping(string => address)" }, "typeName": { "id": 1987, "keyType": { "id": 1985, "name": "string", "nodeType": "ElementaryTypeName", "src": "227:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "nodeType": "Mapping", "src": "219:26:17", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", "typeString": "mapping(string => address)" }, "valueType": { "id": 1986, "name": "address", "nodeType": "ElementaryTypeName", "src": "237:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1993, "name": "versionsOfIdentifier", "nodeType": "VariableDeclaration", "scope": 2212, "src": "274:46:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_string_memory_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(string => uint256[])" }, "typeName": { "id": 1992, "keyType": { "id": 1989, "name": "string", "nodeType": "ElementaryTypeName", "src": "282:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "nodeType": "Mapping", "src": "274:25:17", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_string_memory_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(string => uint256[])" }, "valueType": { "baseType": { "id": 1990, "name": "uint", "nodeType": "ElementaryTypeName", "src": "292:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1991, "length": null, "nodeType": "ArrayTypeName", "src": "292:6:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1999, "name": "templateOfVersionOfIdentifier", "nodeType": "VariableDeclaration", "scope": 2212, "src": "326:74:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_uint256_$_t_contract$_Template_$3128_$_$", "typeString": "mapping(string => mapping(uint256 => contract Template))" }, "typeName": { "id": 1998, "keyType": { "id": 1994, "name": "string", "nodeType": "ElementaryTypeName", "src": "334:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "nodeType": "Mapping", "src": "326:44:17", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_uint256_$_t_contract$_Template_$3128_$_$", "typeString": "mapping(string => mapping(uint256 => contract Template))" }, "valueType": { "id": 1997, "keyType": { "id": 1995, "name": "uint", "nodeType": "ElementaryTypeName", "src": "352:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "344:25:17", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_Template_$3128_$", "typeString": "mapping(uint256 => contract Template)" }, "valueType": { "contractScope": null, "id": 1996, "name": "Template", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3128, "src": "360:8:17", "typeDescriptions": { "typeIdentifier": "t_contract$_Template_$3128", "typeString": "contract Template" } } } }, "value": null, "visibility": "internal" }, { "body": { "id": 2010, "nodeType": "Block", "src": "450:33:17", "statements": [ { "expression": { "argumentTypes": null, "id": 2008, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 2006, "name": "opened", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1981, "src": "460:6:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 2007, "name": "_opened", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2001, "src": "469:7:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "460:16:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2009, "nodeType": "ExpressionStatement", "src": "460:16:17" } ] }, "documentation": null, "id": 2011, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 2004, "modifierName": { "argumentTypes": null, "id": 2003, "name": "Ownable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6426, "src": "433:7:17", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Ownable_$6426_$", "typeString": "type(contract Ownable)" } }, "nodeType": "ModifierInvocation", "src": "433:9:17" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 2002, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2001, "name": "_opened", "nodeType": "VariableDeclaration", "scope": 2011, "src": "419:12:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2000, "name": "bool", "nodeType": "ElementaryTypeName", "src": "419:4:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "418:14:17" }, "payable": false, "returnParameters": { "id": 2005, "nodeType": "ParameterList", "parameters": [], "src": "450:0:17" }, "scope": 2212, "src": "407:76:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 2020, "nodeType": "Block", "src": "600:30:17", "statements": [ { "expression": { "argumentTypes": null, "id": 2018, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 2016, "name": "opened", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1981, "src": "610:6:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=",