{
    "contractName": "Vault",
    "abi": [
        {
            "constant": false,
            "inputs": [
                {
                    "name": "who",
                    "type": "address"
                }
            ],
            "name": "grantAccess",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "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": "",
                    "type": "address"
                }
            ],
            "name": "totalBalances",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "authorized",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "bytes32"
                },
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "balances",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "TOKEN_PROXY",
            "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"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "GRACE_PERIOD_EXPIRATION",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "name": "proxy",
                    "type": "address"
                },
                {
                    "name": "gracePeriod",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "constructor"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "token",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "to",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "caller",
                    "type": "address"
                }
            ],
            "name": "ExcessTokensWithdrawn",
            "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"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "who",
                    "type": "address"
                }
            ],
            "name": "AccessGranted",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "who",
                    "type": "address"
                }
            ],
            "name": "AccessRevoked",
            "type": "event"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "token",
                    "type": "address"
                },
                {
                    "name": "to",
                    "type": "address"
                }
            ],
            "name": "withdrawExcessToken",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "id",
                    "type": "bytes32"
                },
                {
                    "name": "token",
                    "type": "address"
                },
                {
                    "name": "from",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "transferToVault",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "id",
                    "type": "bytes32"
                },
                {
                    "name": "token",
                    "type": "address"
                },
                {
                    "name": "to",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "transferFromVault",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "bytecode": "0x608060405234801561001057600080fd5b50604051604080610fae83398101604052805160209091015160018054600160a060020a03191633179055806100534282640100000000610d1e61007d82021704565b600255505060038054600160a060020a031916600160a060020a0392909216919091179055610090565b8181018281101561008a57fe5b92915050565b610f0f8061009f6000396000f3006080604052600436106100b85763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041662aa21e681146100bd5780630ae5e739146100f9578063408275bb14610127578063715018a6146101615780637995ba90146101765780638da5cb5b146101bc578063aee9c872146101fa578063b918161114610228578063d93d73611461026a578063e9131b821461029b578063f2fde38b146102b0578063fa4f71f5146102de575b600080fd5b3480156100c957600080fd5b506100f760043573ffffffffffffffffffffffffffffffffffffffff602435811690604435166064356102f3565b005b34801561010557600080fd5b506100f773ffffffffffffffffffffffffffffffffffffffff600435166104ac565b34801561013357600080fd5b506100f760043573ffffffffffffffffffffffffffffffffffffffff60243581169060443516606435610624565b34801561016d57600080fd5b506100f7610864565b34801561018257600080fd5b506101aa73ffffffffffffffffffffffffffffffffffffffff600435811690602435166108f7565b60408051918252519081900360200190f35b3480156101c857600080fd5b506101d1610a89565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561020657600080fd5b506101aa73ffffffffffffffffffffffffffffffffffffffff60043516610aa5565b34801561023457600080fd5b5061025673ffffffffffffffffffffffffffffffffffffffff60043516610ab7565b604080519115158252519081900360200190f35b34801561027657600080fd5b506101aa60043573ffffffffffffffffffffffffffffffffffffffff60243516610acc565b3480156102a757600080fd5b506101d1610ae9565b3480156102bc57600080fd5b506100f773ffffffffffffffffffffffffffffffffffffffff60043516610b05565b3480156102ea57600080fd5b506101aa610b35565b3360009081526020819052604090205460ff1615156103bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f416363657373436f6e74726f6c6c65644261736523726571756972657341757460448201527f686f72697a6174696f6e3a2053656e646572206e6f7420617574686f72697a6560648201527f6400000000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600084815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091529020546103ff908263ffffffff610b3b16565b600085815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff88168452825280832093909355600590522054610448908263ffffffff610b3b16565b73ffffffffffffffffffffffffffffffffffffffff841660008181526005602081815260408084208690558984526004825280842094845293815292909120549152111561049257fe5b61049d838383610b4d565b6104a683610ce6565b50505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146104d057600080fd5b600254421061058c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f537461746963416363657373436f6e74726f6c6c6564236772616e744163636560448201527f73733a2043616e6e6f74206772616e742061636365737320616674657220677260648201527f61636520706572696f6400000000000000000000000000000000000000000000608482015290519081900360a40190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517fdeb5c31899474fe8c086c95ff9344480d19365676a6a1d22d37bb8e3e7c0ef189181900360200190a173ffffffffffffffffffffffffffffffffffffffff16600090815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b3360009081526020819052604090205460ff1615156106f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f416363657373436f6e74726f6c6c65644261736523726571756972657341757460448201527f686f72697a6174696f6e3a2053656e646572206e6f7420617574686f72697a6560648201527f6400000000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600354604080517f68155ec100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152858116602483015230604483015260648201859052915191909216916368155ec191608480830192600092919082900301818387803b15801561077957600080fd5b505af115801561078d573d6000803e3d6000fd5b505050600085815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff881684529091529020546107d191508263ffffffff610d1e16565b600085815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8816845282528083209390935560059052205461081a908263ffffffff610d1e16565b73ffffffffffffffffffffffffffffffffffffffff841660008181526005602081815260408084208690558984526004825280842094845293815292909120549152111561049d57fe5b60015473ffffffffffffffffffffffffffffffffffffffff16331461088857600080fd5b60015460405173ffffffffffffffffffffffffffffffffffffffff909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a2600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60015460009081908190819073ffffffffffffffffffffffffffffffffffffffff16331461092457600080fd5b61092e8630610d31565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600560205260409020549093509150610969838363ffffffff610b3b16565b9050801515610a2557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f5661756c74237769746864726177457863657373546f6b656e3a20576974686460448201527f72617761626c6520746f6b656e20616d6f756e74206d757374206265206e6f6e60648201527f2d7a65726f000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b610a30868683610b4d565b60408051338152905173ffffffffffffffffffffffffffffffffffffffff80881692908916917f2f4f841d49761a463dfab352dce10ad33c9713ebe61b0d0acfb2048360dbd2449181900360200190a395945050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60056020526000908152604090205481565b60006020819052908152604090205460ff1681565b600460209081526000928352604080842090915290825290205481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff163314610b2957600080fd5b610b3281610dff565b50565b60025481565b600082821115610b4757fe5b50900390565b30811580610b8657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610b90576104a6565b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b50505050610c53610eaf565b15156104a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f546f6b656e496e746572616374237472616e736665723a205472616e7366657260448201527f206661696c656400000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260056020526040902054610d168230610d31565b1015610b3257fe5b81810182811015610d2b57fe5b92915050565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610dcc57600080fd5b505afa158015610de0573d6000803e3d6000fd5b505050506040513d6020811015610df657600080fd5b50519392505050565b73ffffffffffffffffffffffffffffffffffffffff81161515610e2157600080fd5b60015460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000803d8015610ec65760208114610ecf57610edb565b60019150610edb565b60206000803e60005191505b5015159190505600a165627a7a7230582090d973707dcde05698b66ee26df916d44affc2e396674b562f5e44c34f5367c60029",
    "networks": {
        "1": {
            "links": {},
            "address": "0x5199071825cc1d6cd019b0d7d42b08106f6cf16d",
            "transactionHash": "0x444ca1772cc3280bbeff76ec3e63f70fbe2e516fb5dfca918816ac45d7ecaac7"
        },
        "42": {
            "links": {},
            "address": "0xfb1e57588d2a7079e59a68aa3999cc02bbeb11fc",
            "transactionHash": "0x54cc9d75a7b38981b92a2bfc19aca887c4b6e8f0cd8b93fcf769e88c5ce1461f"
        },
        "1212": {
            "links": {},
            "address": "0x4bf749ec68270027c5910220ceab30cc284c7ba2",
            "transactionHash": "0x49866bd434c74686b9520c326a7eb097af8b16580e4768729422ffe513b8aaaf"
        }
    },
    "schemaVersion": "2.0.1"
}