UNPKG

@marketprotocol/marketprotocol

Version:

Decentralized Derivatives Trading Protocol For The Ethereum Blockchain

592 lines 248 kB
{ "contractName": "MarketContractRegistry", "abi": [ { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "addressWhiteList", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "factoryAddressWhiteList", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "isWhiteListed", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "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": true, "inputs": [], "name": "isOwner", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "contractAddress", "type": "address" } ], "name": "AddressAddedToWhitelist", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "contractAddress", "type": "address" } ], "name": "AddressRemovedFromWhitelist", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "factoryAddress", "type": "address" } ], "name": "FactoryAddressAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "factoryAddress", "type": "address" } ], "name": "FactoryAddressRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" }, { "indexed": true, "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "constant": true, "inputs": [ { "name": "contractAddress", "type": "address" } ], "name": "isAddressWhiteListed", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getAddressWhiteList", "outputs": [ { "name": "", "type": "address[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "contractAddress", "type": "address" }, { "name": "whiteListIndex", "type": "uint256" } ], "name": "removeContractFromWhiteList", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "contractAddress", "type": "address" } ], "name": "addAddressToWhiteList", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "factoryAddress", "type": "address" } ], "name": "addFactoryAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "factoryAddress", "type": "address" } ], "name": "removeFactoryAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"factoryAddress\",\"type\":\"address\"}],\"name\":\"addFactoryAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"addressWhiteList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"factoryAddressWhiteList\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"isWhiteListed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"addAddressToWhiteList\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"factoryAddress\",\"type\":\"address\"}],\"name\":\"removeFactoryAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"isAddressWhiteListed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAddressWhiteList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"contractAddress\",\"type\":\"address\"},{\"name\":\"whiteListIndex\",\"type\":\"uint256\"}],\"name\":\"removeContractFromWhiteList\",\"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\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"AddressAddedToWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"AddressRemovedFromWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"factoryAddress\",\"type\":\"address\"}],\"name\":\"FactoryAddressAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"factoryAddress\",\"type\":\"address\"}],\"name\":\"FactoryAddressRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"author\":\"Phil Elsasser <phil@marketprotocol.io>\",\"methods\":{\"addAddressToWhiteList(address)\":{\"details\":\"allows for the owner or factory to add a white listed contract, eventually ownership could transition to a decentralized smart contract of community members to vote\",\"params\":{\"contractAddress\":\"contract to removed from white list\"}},\"addFactoryAddress(address)\":{\"details\":\"allows for the owner to add a new address of a factory responsible for creating new market contracts\",\"params\":{\"factoryAddress\":\"address of factory to be allowed to add contracts to whitelist\"}},\"isAddressWhiteListed(address)\":{\"return\":\"false if the address is not white listed.\"},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"removeContractFromWhiteList(address,uint256)\":{\"details\":\"allows for the owner to remove a white listed contract, eventually ownership could transition to a decentralized smart contract of community members to vote\",\"params\":{\"contractAddress\":\"contract to removed from white list\",\"whiteListIndex\":\"of the contractAddress in the addressWhiteList to be removed.\"}},\"removeFactoryAddress(address)\":{\"details\":\"allows for the owner to remove an address of a factory\",\"params\":{\"factoryAddress\":\"address of factory to be removed\"}},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to transfer control of the contract to a newOwner.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}},\"title\":\"MarketContractRegistry\"},\"userdoc\":{\"methods\":{\"getAddressWhiteList()\":{\"notice\":\"all currently whitelisted addresses returns array of addresses\"},\"isAddressWhiteListed(address)\":{\"notice\":\"determines if an address is a valid MarketContract\"},\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/travis/build/MARKETProtocol/MARKETProtocol/contracts/MarketContractRegistry.sol\":\"MarketContractRegistry\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/travis/build/MARKETProtocol/MARKETProtocol/contracts/MarketContractRegistry.sol\":{\"keccak256\":\"0x6308666cf9676acfa5c89680e9c5c53bd5de3f6fe7400d12dfb8ea41510f7c82\",\"urls\":[\"bzzr://459c27b1d5a84fe15b33b95eb5bc368ef75a35848c8f2de0445857335a1a60d9\"]},\"/home/travis/build/MARKETProtocol/MARKETProtocol/contracts/MarketContractRegistryInterface.sol\":{\"keccak256\":\"0x08e535462791c92fa3d508921433678237c3cc6b6e64c856c5edfb6653ce09e2\",\"urls\":[\"bzzr://790793564fa36ee77a10986b601db861f80b7ab82c51b8a4d7a41b97523eea45\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xcb16adc00dcf0d75e0bdf94379f4d5a6d74dca7c74e4183b94e15721159f8a30\",\"urls\":[\"bzzr://b81e03f7203cd628cfed19255911a04a05e8670d248afb48a7b067dd03b4ff55\"]}},\"version\":1}", "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3611186806100cf6000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c0100000000000000000000000000000000000000000000000000000000900480638f32d59b116100a9578063ad23de6311610083578063ad23de6314610359578063c6f5d91f146103b5578063d8fbbf3114610414578063f2fde38b14610462576100ec565b80638f32d59b146102af5780639244f496146102d1578063a051d9c314610315576100ec565b806318c0c695146100f15780631e7f9f3614610135578063497acf08146101a35780636f9170f6146101ff578063715018a61461025b5780638da5cb5b14610265575b600080fd5b6101336004803603602081101561010757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104a6565b005b6101616004803603602081101561014b57600080fd5b8101908080359060200190929190505050610619565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e5600480360360208110156101b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610657565b604051808215151515815260200191505060405180910390f35b6102416004803603602081101561021557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610677565b604051808215151515815260200191505060405180910390f35b610263610697565b005b61026d610769565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102b7610792565b604051808215151515815260200191505060405180910390f35b610313600480360360208110156102e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107e9565b005b6103576004803603602081101561032b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a61565b005b61039b6004803603602081101561036f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b604051808215151515815260200191505060405180910390f35b6103bd610c0c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104005780820151818401526020810190506103e5565b505050509050019250505060405180910390f35b6104606004803603604081101561042a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c9a565b005b6104a46004803603602081101561047857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f7e565b005b6104ae610792565b15156104b957600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561057b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6164647265737320616c7265616479206164646564000000000000000000000081525060200191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f960c6a67a1f0f46ddffd138f2b7f44cbc573d0e0a073363b287a257b121dc48a60405160405180910390a250565b60028181548110151561062857fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b61069f610792565b15156106aa57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6107f1610792565b806108455750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b151561089c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806110e96025913960400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561095e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f41646472657373206d757374206e6f742062652077686974656c69737465640081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f534d18c8ff24ba5980906d732f3075704749427353734fbbf05d50485643b12460405160405180910390a250565b610a69610792565b1515610a7457600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610b18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061110e6028913960400191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f5d6ac55db628f137c53a554c300a684dc6b3db9d8f24e9611ea5e84c282d177d60405160405180910390a250565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60606002805480602002602001604051908101604052809291908181526020018280548015610c9057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610c46575b5050505050905090565b610ca2610792565b1515610cad57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610d51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806111366025913960400191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600282815481101515610d7757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f696e64657820646f6573206e6f74206d6174636820616464726573730000000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002600160028054905003815481101515610e9c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282815481101515610ed657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610f369190611097565b508173ffffffffffffffffffffffffffffffffffffffff167f535611fb62fa2a833988f283b779e417e996813e44046f521d76c17b5943b08c60405160405180910390a25050565b610f86610792565b1515610f9157600080fd5b610f9a81610f9d565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610fd957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8154818355818111156110be578183600052602060002091820191016110bd91906110c3565b5b505050565b6110e591905b808211156110e15760008160009055506001016110c9565b5090565b9056fe43616e206f6e6c7920626520616464656420627920666163746f7279206f72206f776e6572666163746f72792061646472657373206973206e6f7420696e20746865207768697465206c69737463616e206f6e6c792072656d6f76652077686974656c697374656420616464726573736573a165627a7a72305820282bad704834d559794d918b9dd264ff530a79256e1ed02b51d61ef7a47330580029", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ec576000357c0100000000000000000000000000000000000000000000000000000000900480638f32d59b116100a9578063ad23de6311610083578063ad23de6314610359578063c6f5d91f146103b5578063d8fbbf3114610414578063f2fde38b14610462576100ec565b80638f32d59b146102af5780639244f496146102d1578063a051d9c314610315576100ec565b806318c0c695146100f15780631e7f9f3614610135578063497acf08146101a35780636f9170f6146101ff578063715018a61461025b5780638da5cb5b14610265575b600080fd5b6101336004803603602081101561010757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104a6565b005b6101616004803603602081101561014b57600080fd5b8101908080359060200190929190505050610619565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e5600480360360208110156101b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610657565b604051808215151515815260200191505060405180910390f35b6102416004803603602081101561021557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610677565b604051808215151515815260200191505060405180910390f35b610263610697565b005b61026d610769565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102b7610792565b604051808215151515815260200191505060405180910390f35b610313600480360360208110156102e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107e9565b005b6103576004803603602081101561032b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a61565b005b61039b6004803603602081101561036f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b604051808215151515815260200191505060405180910390f35b6103bd610c0c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104005780820151818401526020810190506103e5565b505050509050019250505060405180910390f35b6104606004803603604081101561042a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c9a565b005b6104a46004803603602081101561047857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f7e565b005b6104ae610792565b15156104b957600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561057b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6164647265737320616c7265616479206164646564000000000000000000000081525060200191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f960c6a67a1f0f46ddffd138f2b7f44cbc573d0e0a073363b287a257b121dc48a60405160405180910390a250565b60028181548110151561062857fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b61069f610792565b15156106aa57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6107f1610792565b806108455750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b151561089c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806110e96025913960400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561095e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f41646472657373206d757374206e6f742062652077686974656c69737465640081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f534d18c8ff24ba5980906d732f3075704749427353734fbbf05d50485643b12460405160405180910390a250565b610a69610792565b1515610a7457600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610b18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061110e6028913960400191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f5d6ac55db628f137c53a554c300a684dc6b3db9d8f24e9611ea5e84c282d177d60405160405180910390a250565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60606002805480602002602001604051908101604052809291908181526020018280548015610c9057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610c46575b5050505050905090565b610ca2610792565b1515610cad57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610d51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806111366025913960400191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600282815481101515610d7757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f696e64657820646f6573206e6f74206d6174636820616464726573730000000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002600160028054905003815481101515610e9c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282815481101515610ed657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610f369190611097565b508173ffffffffffffffffffffffffffffffffffffffff167f535611fb62fa2a833988f283b779e417e996813e44046f521d76c17b5943b08c60405160405180910390a25050565b610f86610792565b1515610f9157600080fd5b610f9a81610f9d565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610fd957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8154818355818111156110be578183600052602060002091820191016110bd91906110c3565b5b505050565b6110e591905b808211156110e15760008160009055506001016110c9565b5090565b9056fe43616e206f6e6c7920626520616464656420627920666163746f7279206f72206f776e6572666163746f72792061646472657373206973206e6f7420696e20746865207768697465206c69737463616e206f6e6c792072656d6f76652077686974656c697374656420616464726573736573a165627a7a72305820282bad704834d559794d918b9dd264ff530a79256e1ed02b51d61ef7a47330580029", "sourceMap": "831:3757:2:-;;;524:10:17;515:6;;:19;;;;;;;;;;;;;;;;;;582:6;;;;;;;;;;;549:40;;578:1;549:40;;;;;;;;;;;;831:3757:2;;;;;;", "deployedSourceMap": "831:3757:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;831:3757:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3891:267;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3891:267:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;993:33;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;993:33:2;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1103:55;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1103:55:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;942:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;942:45:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1423:137:17;;;:::i;:::-;;659:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;979:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3263:415:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3263:415:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;4295:291;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4295:291:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;1652:138;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1652:138:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1883:112;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1883:112:2;;;;;;;;;;;;;;;;;2338:666;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2338:666:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1731:107:17;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1731:107:17;;;;;;;;;;;;;;;;;;;:::i;:::-;;3891:267:2;863:9:17;:7;:9::i;:::-;855:18;;;;;;;;3980:23:2;:39;4004:14;3980:39;;;;;;;;;;;;;;;;;;;;;;;;;3979:40;3971:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4097:4;4055:23;:39;4079:14;4055:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;4136:14;4116:35;;;;;;;;;;;;3891:267;:::o;993:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1103:55::-;;;;;;;;;;;;;;;;;;;;;;:::o;942:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;1423:137:17:-;863:9;:7;:9::i;:::-;855:18;;;;;;;;1521:1;1484:40;;1505:6;;;;;;;;;;;1484:40;;;;;;;;;;;;1551:1;1534:6;;:19;;;;;;;;;;;;;;;;;;1423:137::o;659:77::-;697:7;723:6;;;;;;;;;;;716:13;;659:77;:::o;979:90::-;1019:4;1056:6;;;;;;;;;;;1042:20;;:10;:20;;;1035:27;;979:90;:::o;3263:415:2:-;3346:9;:7;:9::i;:::-;:48;;;;3359:23;:35;3383:10;3359:35;;;;;;;;;;;;;;;;;;;;;;;;;3346:48;3338:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3455:13;:30;3469:15;3455:30;;;;;;;;;;;;;;;;;;;;;;;;;3454:31;3446:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3564:4;3531:13;:30;3545:15;3531:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;3578:16;3600:15;3578:38;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3578:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3655:15;3631:40;;;;;;;;;;;;3263:415;:::o;4295:291::-;863:9:17;:7;:9::i;:::-;855:18;;;;;;;;4386:23:2;:39;4410:14;4386:39;;;;;;;;;;;;;;;;;;;;;;;;;4378:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4522:5;4480:23;:39;4504:14;4480:39;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;4564:14;4542:37;;;;;;;;;;;;4295:291;:::o;1652:138::-;1730:4;1753:13;:30;1767:15;1753:30;;;;;;;;;;;;;;;;;;;;;;;;;1746:37;;1652:138;;;:::o;1883:112::-;1937:16;1972;1965:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1883:112;:::o;2338:666::-;863:9:17;:7;:9::i;:::-;855:18;;;;;;;;2484:13:2;:30;2498:15;2484:30;;;;;;;;;;;;;;;;;;;;;;;;;2476:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2610:15;2574:51;;:16;2591:14;2574:32;;;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;2566:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2701:5;2668:13;:30;2682:15;2668:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;2855:16;2898:1;2872:16;:23;;;;:27;2855:45;;;;;;;;;;;;;;;;;;;;;;;;;;;2820:16;2837:14;2820:32;;;;;;;;;;;;;;;;;;:80;;;;;;;;;;;;;;;;;;2937:1;2910:16;:28;;;;;;;;;;;;;;:::i;:::-;;2981:15;2953:44;;;;;;;;;;;;2338:666;;:::o;1731:107:17:-;863:9;:7;:9::i;:::-;855:18;;;;;;;;1803:28;1822:8;1803:18;:28::i;:::-;1731:107;:::o;1982:183::-;2075:1;2055:22;;:8;:22;;;;2047:31;;;;;;;;2122:8;2093:38;;2114:6;;;;;;;;;;;2093:38;;;;;;;;;;;;2150:8;2141:6;;:17;;;;;;;;;;;;;;;;;;1982:183;:::o;831:3757:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "/*\n Copyright 2017-2019 Phillip A. Elsasser\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.5.2;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"./MarketContractRegistryInterface.sol\";\n\n\n/// @title MarketContractRegistry\n/// @author Phil Elsasser <phil@marketprotocol.io>\ncontract MarketContractRegistry is Ownable, MarketContractRegistryInterface {\n\n // whitelist accounting\n mapping(address => bool) public isWhiteListed;\n address[] public addressWhiteList; // record of currently deployed addresses;\n mapping(address => bool) public factoryAddressWhiteList; // record of authorized factories\n\n // events\n event AddressAddedToWhitelist(address indexed contractAddress);\n event AddressRemovedFromWhitelist(address indexed contractAddress);\n event FactoryAddressAdded(address indexed factoryAddress);\n event FactoryAddressRemoved(address indexed factoryAddress);\n\n /*\n // External Methods\n */\n\n /// @notice determines if an address is a valid MarketContract\n /// @return false if the address is not white listed.\n function isAddressWhiteListed(address contractAddress) external view returns (bool) {\n return isWhiteListed[contractAddress];\n }\n\n /// @notice all currently whitelisted addresses\n /// returns array of addresses\n function getAddressWhiteList() external view returns (address[] memory) {\n return addressWhiteList;\n }\n\n /// @dev allows for the owner to remove a white listed contract, eventually ownership could transition to\n /// a decentralized smart contract of community members to vote\n /// @param contractAddress contract to removed from white list\n /// @param whiteListIndex of the contractAddress in the addressWhiteList to be removed.\n function removeContractFromWhiteList(\n address contractAddress,\n uint whiteListIndex\n ) external onlyOwner\n {\n require(isWhiteListed[contractAddress], \"can only remove whitelisted addresses\");\n require(addressWhiteList[whiteListIndex] == contractAddress, \"index does not match address\");\n isWhiteListed[contractAddress] = false;\n\n // push the last item in array to replace the address we are removing and then trim the array.\n addressWhiteList[whiteListIndex] = addressWhiteList[addressWhiteList.length - 1];\n addressWhiteList.length -= 1;\n emit AddressRemovedFromWhitelist(contractAddress);\n }\n\n /// @dev allows for the owner or factory to add a white listed contract, eventually ownership could transition to\n /// a decentralized smart contract of community members to vote\n /// @param contractAddress contract to removed from white list\n function addAddressToWhiteList(address contractAddress) external {\n require(isOwner() || factoryAddressWhiteList[msg.sender], \"Can only be added by factory or owner\");\n require(!isWhiteListed[contractAddress], \"Address must not be whitelisted\");\n isWhiteListed[contractAddress] = true;\n addressWhiteList.push(contractAddress);\n emit AddressAddedToWhitelist(contractAddress);\n }\n\n /// @dev allows for the owner to add a new address of a factory responsible for creating new market contracts\n /// @param factoryAddress address of factory to be allowed to add contracts to whitelist\n function addFactoryAddress(address factoryAddress) external onlyOwner {\n require(!factoryAddressWhiteList[factoryAddress], \"address already added\");\n factoryAddressWhiteList[factoryAddress] = true;\n emit FactoryAddressAdded(factoryAddress);\n }\n\n /// @dev allows for the owner to remove an address of a factory\n /// @param factoryAddress address of factory to be removed\n function removeFactoryAddress(address factoryAddress) external onlyOwner {\n require(factoryAddressWhiteList[factoryAddress], \"factory address is not in the white list\");\n factoryAddressWhiteList[factoryAddress] = false;\n emit FactoryAddressRemoved(factoryAddress);\n }\n}\n", "sourcePath": "/home/travis/build/MARKETProtocol/MARKETProtocol/contracts/MarketContractRegistry.sol", "ast": { "absolutePath": "/home/travis/build/MARKETProtocol/MARKETProtocol/contracts/MarketContractRegistry.sol", "exportedSymbols": { "MarketContractRegistry": [ 1146 ] }, "id": 1147, "nodeType": "SourceUnit", "nodes": [ { "id": 946, "literals": [ "solidity", "0.5", ".2" ], "nodeType": "PragmaDirective", "src": "608:22:2" }, { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "id": 947, "nodeType": "ImportDirective", "scope": 1147, "sourceUnit": 2455, "src": "632:63:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/MARKETProtocol/MARKETProtocol/contracts/MarketContractRegistryInterface.sol", "file": "./MarketContractRegistryInterface.sol", "id": 948, "nodeType": "ImportDirective", "scope": 1147, "sourceUnit": 1162, "src": "696:47:2", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 949, "name": "Ownable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2454, "src": "866:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_Ownable_$2454", "typeString": "contract Ownable" } }, "id": 950, "nodeType": "InheritanceSpecifier", "src": "866:7:2" }, { "arguments": null, "baseName": { "contractScope": null, "id": 951, "name": "MarketContractRegistryInterface", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1161, "src": "875:31:2", "typeDescriptions": { "typeIdentifier": "t_contract$_MarketContractRegistryInterface_$1161", "typeString": "contract MarketContractRegistryInterface" } }, "id": 952, "nodeType": "InheritanceSpecifier", "src": "875:31:2" } ], "contractDependencies": [ 1161, 2454 ], "contractKind": "contract", "documentation": "@title MarketContractRegistry\n @author Phil Elsasser <phil@marketprotocol.io>", "fullyImplemented": true, "id": 1146, "linearizedBaseContracts": [ 1146, 1161, 2454 ], "name": "MarketContractRegistry", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 956, "name": "isWhiteListed", "nodeType": "VariableDeclaration", "scope": 1146, "src": "942:45:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "typeName": { "id": 955, "keyType": { "id": 953, "name": "address", "nodeType": "ElementaryTypeName", "src": "950:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "942:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 954, "name": "bool", "nodeType": "ElementaryTypeName", "src": "961:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "value": null, "visibility": "public" }, { "constant": false, "id": 959, "name": "addressWhiteList", "nodeType": "VariableDeclaration", "scope": 1146, "src": "993:33:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[]" }, "typeName": { "baseType": { "id": 957, "name": "address", "nodeType": "ElementaryTypeName", "src": "993:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 958, "length": null, "nodeType": "ArrayTypeName", "src": "993:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 963, "name": "factoryAddressWhiteList", "nodeType": "VariableDeclaration", "scope": 1146, "src": "1103:55:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "typeName": { "id": 962, "keyType": { "id": 960, "name": "address", "nodeType": "ElementaryTypeName", "src": "1111:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1103:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 961, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1122:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "value": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 967, "name": "AddressAddedToWhitelist", "nodeType": "EventDefinition", "parameters": { "id": 966, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 965, "indexed": true, "name": "contractAddress", "nodeType": "VariableDeclaration", "scope": 967, "src": "1249:31:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 964, "name": "address", "nodeType": "ElementaryTypeName", "src": "1249:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1248:33:2" }, "src": "1219:63:2" }, { "anonymous": false, "documentation": null, "id": 971, "name": "AddressRemovedFromWhitelist", "nodeType": "EventDefinition", "parameters": { "id": 970, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 969, "indexed": true, "name": "contractAddress", "nodeType": "VariableDeclaration", "scope": 971, "src": "1321:31:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 968, "name": "address", "nodeType": "ElementaryTypeName", "src": "1321:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1320:33:2" }, "src": "1287:67:2" }, { "anonymous": false, "documentation": null, "id": 975, "name": "FactoryAddressAdded"