UNPKG

@omisego/omg-quasar-js

Version:

JavaScript Library to interact with OMG Network's Quasar

508 lines 112 kB
{ "contractName": "QToken", "abi": [ { "constant": true, "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "quasarContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "address", "name": "owner", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"quasarContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"See `IERC20.allowance`.\"},\"approve(address,uint256)\":{\"details\":\"See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"burn(address,uint256)\":{\"details\":\"Burn specified tokens from the address\",\"params\":{\"account\":\"the address\",\"amount\":\"the number of tokens to burn\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"mint(address,uint256)\":{\"details\":\"Mint tokens for the address\",\"params\":{\"account\":\"the address\",\"amount\":\"the number of tokens to mint\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transfer(address,uint256)\":{\"details\":\"See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/souradeep/Downloads/plasma-contracts/plasma_framework/contracts/poc/fast_exits/QToken.sol\":\"QToken\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/souradeep/Downloads/plasma-contracts/plasma_framework/contracts/poc/fast_exits/QToken.sol\":{\"keccak256\":\"0x7dc40d92c7c1be3d44436f02c0297ad57ef0a2725678e589a7d04249312cc7fd\",\"urls\":[\"bzz-raw://c5aa5c6138832eab31d8c7fd9879ce01e581e202f38874f00259b2837c2113ac\",\"dweb:/ipfs/QmS6eb3YSLWepDMPQGksm4TJEqgEg7kpaWhShCQy658GQS\"]},\"/Users/souradeep/Downloads/plasma-contracts/plasma_framework/contracts/poc/fast_exits/interfaces/IQToken.sol\":{\"keccak256\":\"0x7b795043756f7d20b360eda5b6e076f5779ad14eea629608389726e870b29d24\",\"urls\":[\"bzz-raw://f43b19468588173d746130ead9d343007eda6a94600da00c9f06c6bde8c21ee5\",\"dweb:/ipfs/QmTwz3uWUmVLqNpPHBmkJZKZ3VU7nJ4k1vqfm5t9Nqi1a9\"]},\"/Users/souradeep/Downloads/plasma-contracts/plasma_framework/contracts/src/utils/OnlyFromAddress.sol\":{\"keccak256\":\"0x54d4cb74bf5c448bb383ff4ffce898473739a5ba015e439dae1c092c70df943f\",\"urls\":[\"bzz-raw://5c9efbe363534d6746573b9b0dda687d257272c3ce0123b6a45bc7eef55a40b4\",\"dweb:/ipfs/QmZPLF1bKdU6DAZZcxWfMudUwzeubLxsSk14x8hvUMj15X\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzz-raw://4f5b57664069671648fb81f55b0082faecdf1b2f159eec6b1fa6cef9b7d73bc5\",\"dweb:/ipfs/QmcyytaLs7zFdb4Uu7C5PmQRhQdB3wA3fUdkV6mkYfdDFH\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzz-raw://de8bb0003d53de236913f0e0102e7a9d015e02098f2495edd000f207fe2be2f4\",\"dweb:/ipfs/QmbtwNwAJEehWWL7yGGyyMoenQvcqtz91pqLgQPpLRoLYC\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzz-raw://d0abb99bb8bfc2bc0a89902b8ed1dc0442ad08cc78cee64c291b3df6a27bcccc\",\"dweb:/ipfs/QmP5NaEwZthQeM2ESz4WTT3osrP7jhbvu7ocbttBi2JAw6\"]}},\"version\":1}", "bytecode": "0x60806040523480156200001157600080fd5b50604051620010c4380380620010c48339810160408190526200003491620001ca565b83838382600390805190602001906200004f929190620000a9565b50815162000065906004906020850190620000a9565b50600580546001600160a01b0390951661010002610100600160a81b031960ff90931660ff1990961695909517919091169390931790925550620003229350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000ec57805160ff19168380011785556200011c565b828001600101855582156200011c579182015b828111156200011c578251825591602001919060010190620000ff565b506200012a9291506200012e565b5090565b6200014b91905b808211156200012a576000815560010162000135565b90565b80516200015b81620002fd565b92915050565b600082601f8301126200017357600080fd5b81516200018a62000184826200028a565b62000263565b91508082526020830160208301858383011115620001a757600080fd5b620001b4838284620002ca565b50505092915050565b80516200015b8162000317565b60008060008060808587031215620001e157600080fd5b84516001600160401b03811115620001f857600080fd5b620002068782880162000161565b94505060208501516001600160401b038111156200022357600080fd5b620002318782880162000161565b93505060406200024487828801620001bd565b925050606062000257878288016200014e565b91505092959194509250565b6040518181016001600160401b03811182821017156200028257600080fd5b604052919050565b60006001600160401b03821115620002a157600080fd5b506020601f91909101601f19160190565b60006001600160a01b0382166200015b565b60ff1690565b60005b83811015620002e7578181015183820152602001620002cd565b83811115620002f7576000848401525b50505050565b6200030881620002b2565b81146200031457600080fd5b50565b6200030881620002c4565b610d9280620003326000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806340c10f191161008c5780639dc29fac116100665780639dc29fac146101c2578063a457c2d7146101d5578063a9059cbb146101e8578063dd62ed3e146101fb576100ea565b806340c10f191461019257806370a08231146101a757806395d89b41146101ba576100ea565b806318160ddd116100c857806318160ddd1461014257806323b872dd14610157578063313ce5671461016a578063395093511461017f576100ea565b806306fdde03146100ef578063095ea7b31461010d578063105881541461012d575b600080fd5b6100f761020e565b6040516101049190610c06565b60405180910390f35b61012061011b36600461091b565b6102a4565b6040516101049190610bf8565b6101356102bb565b6040516101049190610bea565b61014a6102cf565b6040516101049190610ca7565b6101206101653660046108ce565b6102d5565b61017261032c565b6040516101049190610cb5565b61012061018d36600461091b565b610335565b6101a56101a036600461091b565b610371565b005b61014a6101b536600461086e565b6103b9565b6100f76103d4565b6101a56101d036600461091b565b610435565b6101206101e336600461091b565b61046f565b6101206101f636600461091b565b6104ab565b61014a610209366004610894565b6104b8565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561029a5780601f1061026f5761010080835404028352916020019161029a565b820191906000526020600020905b81548152906001019060200180831161027d57829003601f168201915b5050505050905090565b60006102b13384846104e3565b5060015b92915050565b60055461010090046001600160a01b031681565b60025490565b60006102e2848484610597565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461032291869161031d908663ffffffff61069316565b6104e3565b5060019392505050565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102b191859061031d908663ffffffff6106bb16565b60055461010090046001600160a01b03163381146103aa5760405162461bcd60e51b81526004016103a190610c57565b60405180910390fd5b6103b483836106e7565b505050565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561029a5780601f1061026f5761010080835404028352916020019161029a565b60055461010090046001600160a01b03163381146104655760405162461bcd60e51b81526004016103a190610c57565b6103b483836107a7565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102b191859061031d908663ffffffff61069316565b60006102b1338484610597565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166105095760405162461bcd60e51b81526004016103a190610c87565b6001600160a01b03821661052f5760405162461bcd60e51b81526004016103a190610c27565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061058a908590610ca7565b60405180910390a3505050565b6001600160a01b0383166105bd5760405162461bcd60e51b81526004016103a190610c77565b6001600160a01b0382166105e35760405162461bcd60e51b81526004016103a190610c17565b6001600160a01b03831660009081526020819052604090205461060c908263ffffffff61069316565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610641908263ffffffff6106bb16565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061058a908590610ca7565b6000828211156106b55760405162461bcd60e51b81526004016103a190610c47565b50900390565b6000828201838110156106e05760405162461bcd60e51b81526004016103a190610c37565b9392505050565b6001600160a01b03821661070d5760405162461bcd60e51b81526004016103a190610c97565b600254610720908263ffffffff6106bb16565b6002556001600160a01b03821660009081526020819052604090205461074c908263ffffffff6106bb16565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061079b908590610ca7565b60405180910390a35050565b6001600160a01b0382166107cd5760405162461bcd60e51b81526004016103a190610c67565b6002546107e0908263ffffffff61069316565b6002556001600160a01b03821660009081526020819052604090205461080c908263ffffffff61069316565b6001600160a01b0383166000818152602081905260408082209390935591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061079b908590610ca7565b80356102b581610d2f565b80356102b581610d46565b60006020828403121561088057600080fd5b600061088c8484610858565b949350505050565b600080604083850312156108a757600080fd5b60006108b38585610858565b92505060206108c485828601610858565b9150509250929050565b6000806000606084860312156108e357600080fd5b60006108ef8686610858565b935050602061090086828701610858565b925050604061091186828701610863565b9150509250925092565b6000806040838503121561092e57600080fd5b600061093a8585610858565b92505060206108c485828601610863565b61095481610cd0565b82525050565b61095481610cdb565b600061096e82610cc3565b6109788185610cc7565b9350610988818560208601610cf5565b61099181610d25565b9093019392505050565b60006109a8602383610cc7565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b602082015260400192915050565b60006109ed602283610cc7565b7f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b602082015260400192915050565b6000610a31601b83610cc7565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000610a6a601e83610cc7565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000610aa3601e83610cc7565b7f43616c6c6572206164647265737320697320756e617574686f72697a65640000815260200192915050565b6000610adc602183610cc7565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265738152607360f81b602082015260400192915050565b6000610b1f602583610cc7565b7f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b602082015260400192915050565b6000610b66602483610cc7565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b602082015260400192915050565b6000610bac601f83610cc7565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300815260200192915050565b61095481610cec565b61095481610cef565b602081016102b5828461094b565b602081016102b5828461095a565b602080825281016106e08184610963565b602080825281016102b58161099b565b602080825281016102b5816109e0565b602080825281016102b581610a24565b602080825281016102b581610a5d565b602080825281016102b581610a96565b602080825281016102b581610acf565b602080825281016102b581610b12565b602080825281016102b581610b59565b602080825281016102b581610b9f565b602081016102b58284610bd8565b602081016102b58284610be1565b5190565b90815260200190565b60006102b582610ce0565b151590565b6001600160a01b031690565b90565b60ff1690565b60005b83811015610d10578181015183820152602001610cf8565b83811115610d1f576000848401525b50505050565b601f01601f191690565b610d3881610cd0565b8114610d4357600080fd5b50565b610d3881610cec56fea365627a7a72315820e434755035423bd94c6f8c76c1c672b058a1853ed36d862a96aae2ba4e261e606c6578706572696d656e74616cf564736f6c634300050b0040", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806340c10f191161008c5780639dc29fac116100665780639dc29fac146101c2578063a457c2d7146101d5578063a9059cbb146101e8578063dd62ed3e146101fb576100ea565b806340c10f191461019257806370a08231146101a757806395d89b41146101ba576100ea565b806318160ddd116100c857806318160ddd1461014257806323b872dd14610157578063313ce5671461016a578063395093511461017f576100ea565b806306fdde03146100ef578063095ea7b31461010d578063105881541461012d575b600080fd5b6100f761020e565b6040516101049190610c06565b60405180910390f35b61012061011b36600461091b565b6102a4565b6040516101049190610bf8565b6101356102bb565b6040516101049190610bea565b61014a6102cf565b6040516101049190610ca7565b6101206101653660046108ce565b6102d5565b61017261032c565b6040516101049190610cb5565b61012061018d36600461091b565b610335565b6101a56101a036600461091b565b610371565b005b61014a6101b536600461086e565b6103b9565b6100f76103d4565b6101a56101d036600461091b565b610435565b6101206101e336600461091b565b61046f565b6101206101f636600461091b565b6104ab565b61014a610209366004610894565b6104b8565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561029a5780601f1061026f5761010080835404028352916020019161029a565b820191906000526020600020905b81548152906001019060200180831161027d57829003601f168201915b5050505050905090565b60006102b13384846104e3565b5060015b92915050565b60055461010090046001600160a01b031681565b60025490565b60006102e2848484610597565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461032291869161031d908663ffffffff61069316565b6104e3565b5060019392505050565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102b191859061031d908663ffffffff6106bb16565b60055461010090046001600160a01b03163381146103aa5760405162461bcd60e51b81526004016103a190610c57565b60405180910390fd5b6103b483836106e7565b505050565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561029a5780601f1061026f5761010080835404028352916020019161029a565b60055461010090046001600160a01b03163381146104655760405162461bcd60e51b81526004016103a190610c57565b6103b483836107a7565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102b191859061031d908663ffffffff61069316565b60006102b1338484610597565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166105095760405162461bcd60e51b81526004016103a190610c87565b6001600160a01b03821661052f5760405162461bcd60e51b81526004016103a190610c27565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061058a908590610ca7565b60405180910390a3505050565b6001600160a01b0383166105bd5760405162461bcd60e51b81526004016103a190610c77565b6001600160a01b0382166105e35760405162461bcd60e51b81526004016103a190610c17565b6001600160a01b03831660009081526020819052604090205461060c908263ffffffff61069316565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610641908263ffffffff6106bb16565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061058a908590610ca7565b6000828211156106b55760405162461bcd60e51b81526004016103a190610c47565b50900390565b6000828201838110156106e05760405162461bcd60e51b81526004016103a190610c37565b9392505050565b6001600160a01b03821661070d5760405162461bcd60e51b81526004016103a190610c97565b600254610720908263ffffffff6106bb16565b6002556001600160a01b03821660009081526020819052604090205461074c908263ffffffff6106bb16565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061079b908590610ca7565b60405180910390a35050565b6001600160a01b0382166107cd5760405162461bcd60e51b81526004016103a190610c67565b6002546107e0908263ffffffff61069316565b6002556001600160a01b03821660009081526020819052604090205461080c908263ffffffff61069316565b6001600160a01b0383166000818152602081905260408082209390935591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061079b908590610ca7565b80356102b581610d2f565b80356102b581610d46565b60006020828403121561088057600080fd5b600061088c8484610858565b949350505050565b600080604083850312156108a757600080fd5b60006108b38585610858565b92505060206108c485828601610858565b9150509250929050565b6000806000606084860312156108e357600080fd5b60006108ef8686610858565b935050602061090086828701610858565b925050604061091186828701610863565b9150509250925092565b6000806040838503121561092e57600080fd5b600061093a8585610858565b92505060206108c485828601610863565b61095481610cd0565b82525050565b61095481610cdb565b600061096e82610cc3565b6109788185610cc7565b9350610988818560208601610cf5565b61099181610d25565b9093019392505050565b60006109a8602383610cc7565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b602082015260400192915050565b60006109ed602283610cc7565b7f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b602082015260400192915050565b6000610a31601b83610cc7565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000610a6a601e83610cc7565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000610aa3601e83610cc7565b7f43616c6c6572206164647265737320697320756e617574686f72697a65640000815260200192915050565b6000610adc602183610cc7565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265738152607360f81b602082015260400192915050565b6000610b1f602583610cc7565b7f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b602082015260400192915050565b6000610b66602483610cc7565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b602082015260400192915050565b6000610bac601f83610cc7565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300815260200192915050565b61095481610cec565b61095481610cef565b602081016102b5828461094b565b602081016102b5828461095a565b602080825281016106e08184610963565b602080825281016102b58161099b565b602080825281016102b5816109e0565b602080825281016102b581610a24565b602080825281016102b581610a5d565b602080825281016102b581610a96565b602080825281016102b581610acf565b602080825281016102b581610b12565b602080825281016102b581610b59565b602080825281016102b581610b9f565b602081016102b58284610bd8565b602081016102b58284610be1565b5190565b90815260200190565b60006102b582610ce0565b151590565b6001600160a01b031690565b90565b60ff1690565b60005b83811015610d10578181015183820152602001610cf8565b83811115610d1f576000848401525b50505050565b601f01601f191690565b610d3881610cd0565b8114610d4357600080fd5b50565b610d3881610cec56fea365627a7a72315820e434755035423bd94c6f8c76c1c672b058a1853ed36d862a96aae2ba4e261e606c6578706572696d656e74616cf564736f6c634300050b0040", "sourceMap": "277:821:45:-;;;386:169;8:9:-1;5:2;;;30:1;27;20:12;5:2;386:169:45;;;;;;;;;;;;;;;;;;;;;492:4;498:6;506:8;512:4:120;504:5;:12;;;;;;;;;;;;:::i;:::-;-1:-1:-1;526:16:120;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;552:9:120;:20;;-1:-1:-1;;;;;526:22:45;;;552:20:120;526:22:45;-1:-1:-1;;;;;;552:20:120;;;;-1:-1:-1;;552:20:120;;;;;;;526:22:45;;;;;;;;;;;-1:-1:-1;277:821:45;;-1:-1:-1;;;;277:821:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;277:821:45;;;-1:-1:-1;277:821:45;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;5:134:-1:-;83:13;;101:33;83:13;101:33;;;68:71;;;;;147:444;;260:3;253:4;245:6;241:17;237:27;227:2;;278:1;275;268:12;227:2;308:6;302:13;330:65;345:49;387:6;345:49;;;330:65;;;321:74;;415:6;408:5;401:21;451:4;443:6;439:17;484:4;477:5;473:16;519:3;510:6;505:3;501:16;498:25;495:2;;;536:1;533;526:12;495:2;546:39;578:6;573:3;568;546:39;;;220:371;;;;;;;;599:130;675:13;;693:31;675:13;693:31;;736:866;;;;;920:3;908:9;899:7;895:23;891:33;888:2;;;937:1;934;927:12;888:2;972:24;;-1:-1;;;;;1005:30;;1002:2;;;1048:1;1045;1038:12;1002:2;1068:74;1134:7;1125:6;1114:9;1110:22;1068:74;;;1058:84;;951:197;1200:2;1189:9;1185:18;1179:25;-1:-1;;;;;1216:6;1213:30;1210:2;;;1256:1;1253;1246:12;1210:2;1276:74;1342:7;1333:6;1322:9;1318:22;1276:74;;;1266:84;;1158:198;1387:2;1405:62;1459:7;1450:6;1439:9;1435:22;1405:62;;;1395:72;;1366:107;1504:2;1522:64;1578:7;1569:6;1558:9;1554:22;1522:64;;;1512:74;;1483:109;882:720;;;;;;;;1609:256;1671:2;1665:9;1697:17;;;-1:-1;;;;;1757:34;;1793:22;;;1754:62;1751:2;;;1829:1;1826;1819:12;1751:2;1845;1838:22;1649:216;;-1:-1;1649:216;1872:322;;-1:-1;;;;;2008:6;2005:30;2002:2;;;2048:1;2045;2038:12;2002:2;-1:-1;2179:4;2115;2092:17;;;;-1:-1;;2088:33;2169:15;;1939:255;2201:91;;-1:-1;;;;;2361:54;;2263:24;2344:76;2427:81;2498:4;2487:16;;2470:38;2516:268;2581:1;2588:101;2602:6;2599:1;2596:13;2588:101;;;2669:11;;;2663:18;2650:11;;;2643:39;2624:2;2617:10;2588:101;;;2704:6;2701:1;2698:13;2695:2;;;2769:1;2760:6;2755:3;2751:16;2744:27;2695:2;2565:219;;;;;2792:117;2861:24;2879:5;2861:24;;;2854:5;2851:35;2841:2;;2900:1;2897;2890:12;2841:2;2835:74;;2916:113;2983:22;2999:5;2983:22;;2957:72;277:821:45;;;;;;", "deployedSourceMap": "277:821:45:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;277:821:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81:120;;;:::i;:::-;;;;;;;;;;;;;;;;2453:145:119;;;;;;;;;:::i;:::-;;;;;;;;350:29:45;;;:::i;:::-;;;;;;;;1514:89:119;;;:::i;:::-;;;;;;;;3055:252;;;;;;;;;:::i;1478:81:120:-;;;:::i;:::-;;;;;;;;3702:203:119;;;;;;;;;:::i;700:120:45:-;;;;;;;;;:::i;:::-;;1661:108:119;;;;;;;;;:::i;838:85:120:-;;;:::i;976:120:45:-;;;;;;;;;:::i;4392:213:119:-;;;;;;;;;:::i;1972:153::-;;;;;;;;;:::i;2183:132::-;;;;;;;;;:::i;644:81:120:-;713:5;706:12;;;;;;;;-1:-1:-1;;706:12:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:13;;706:12;;713:5;;706:12;;713:5;706:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81;:::o;2453:145:119:-;2518:4;2534:36;2543:10;2555:7;2564:5;2534:8;:36::i;:::-;-1:-1:-1;2587:4:119;2453:145;;;;;:::o;350:29:45:-;;;;;;-1:-1:-1;;;;;350:29:45;;:::o;1514:89:119:-;1584:12;;1514:89;:::o;3055:252::-;3144:4;3160:36;3170:6;3178:9;3189:6;3160:9;:36::i;:::-;-1:-1:-1;;;;;3235:19:119;;;;;;:11;:19;;;;;;;;3223:10;3235:31;;;;;;;;;3206:73;;3215:6;;3235:43;;3271:6;3235:43;:35;:43;:::i;:::-;3206:8;:73::i;:::-;-1:-1:-1;3296:4:119;3055:252;;;;;:::o;1478:81:120:-;1543:9;;;;1478:81;:::o;3702:203:119:-;3807:10;3782:4;3828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3828:32:119;;;;;;;;;;3782:4;;3798:79;;3819:7;;3828:48;;3865:10;3828:48;:36;:48;:::i;700:120:45:-;765:14;;;;;-1:-1:-1;;;;;765:14:45;109:10:98;:20;;101:63;;;;-1:-1:-1;;;101:63:98;;;;;;;;;;;;;;;;;791:22:45;797:7;806:6;791:5;:22::i;:::-;700:120;;;:::o;1661:108:119:-;-1:-1:-1;;;;;1744:18:119;1718:7;1744:18;;;;;;;;;;;;1661:108::o;838:85:120:-;909:7;902:14;;;;;;;;-1:-1:-1;;902:14:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;877:13;;902:14;;909:7;;902:14;;909:7;902:14;;;;;;;;;;;;;;;;;;;;;;;;976:120:45;1041:14;;;;;-1:-1:-1;;;;;1041:14:45;109:10:98;:20;;101:63;;;;-1:-1:-1;;;101:63:98;;;;;;;;;1067:22:45;1073:7;1082:6;1067:5;:22::i;4392:213:119:-;4502:10;4477:4;4523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4523:32:119;;;;;;;;;;4477:4;;4493:84;;4514:7;;4523:53;;4560:15;4523:53;:36;:53;:::i;1972:153::-;2041:4;2057:40;2067:10;2079:9;2090:6;2057:9;:40::i;2183:132::-;-1:-1:-1;;;;;2281:18:119;;;2255:7;2281:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2183:132::o;7117:329::-;-1:-1:-1;;;;;7209:19:119;;7201:68;;;;-1:-1:-1;;;7201:68:119;;;;;;;;;-1:-1:-1;;;;;7287:21:119;;7279:68;;;;-1:-1:-1;;;7279:68:119;;;;;;;;;-1:-1:-1;;;;;7358:18:119;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:35;;;7408:31;;;;;7388:5;;7408:31;;;;;;;;;;7117:329;;;:::o;5079:422::-;-1:-1:-1;;;;;5176:20:119;;5168:70;;;;-1:-1:-1;;;5168:70:119;;;;;;;;;-1:-1:-1;;;;;5256:23:119;;5248:71;;;;-1:-1:-1;;;5248:71:119;;;;;;;;;-1:-1:-1;;;;;5350:17:119;;:9;:17;;;;;;;;;;;:29;;5372:6;5350:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;5330:17:119;;;:9;:17;;;;;;;;;;;:49;;;;5412:20;;;;;;;:32;;5437:6;5412:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5389:20:119;;;:9;:20;;;;;;;;;;;;:55;;;;5459:35;;;;;;;;;;5487:6;;5459:35;;1274:179:117;1332:7;1364:1;1359;:6;;1351:49;;;;-1:-1:-1;;;1351:49:117;;;;;;;;;-1:-1:-1;1422:5:117;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;-1:-1:-1;;;938:46:117;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:117:o;5771:302:119:-;-1:-1:-1;;;;;5846:21:119;;5838:65;;;;-1:-1:-1;;;5838:65:119;;;;;;;;;5929:12;;:24;;5946:6;5929:24;:16;:24;:::i;:::-;5914:12;:39;-1:-1:-1;;;;;5984:18:119;;:9;:18;;;;;;;;;;;:30;;6007:6;5984:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;5963:18:119;;:9;:18;;;;;;;;;;;:51;;;;6029:37;;5963:18;;:9;6029:37;;;;6059:6;;6029:37;;;;;;;;;;5771:302;;:::o;6392:300::-;-1:-1:-1;;;;;6466:21:119;;6458:67;;;;-1:-1:-1;;;6458:67:119;;;;;;;;;6551:12;;:23;;6568:5;6551:23;:16;:23;:::i;:::-;6536:12;:38;-1:-1:-1;;;;;6605:18:119;;:9;:18;;;;;;;;;;;:29;;6628:5;6605:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;6584:18:119;;:9;:18;;;;;;;;;;;:50;;;;6649:36;;;;;;6679:5;;6649:36;;5:130:-1;72:20;;97:33;72:20;97:33;;142:130;209:20;;234:33;209:20;234:33;;279:241;;383:2;371:9;362:7;358:23;354:32;351:2;;;399:1;396;389:12;351:2;434:1;451:53;496:7;476:9;451:53;;;441:63;345:175;-1:-1;;;;345:175;527:366;;;648:2;636:9;627:7;623:23;619:32;616:2;;;664:1;661;654:12;616:2;699:1;716:53;761:7;741:9;716:53;;;706:63;;678:97;806:2;824:53;869:7;860:6;849:9;845:22;824:53;;;814:63;;785:98;610:283;;;;;;900:491;;;;1038:2;1026:9;1017:7;1013:23;1009:32;1006:2;;;1054:1;1051;1044:12;1006:2;1089:1;1106:53;1151:7;1131:9;1106:53;;;1096:63;;1068:97;1196:2;1214:53;1259:7;1250:6;1239:9;1235:22;1214:53;;;1204:63;;1175:98;1304:2;1322:53;1367:7;1358:6;1347:9;1343:22;1322:53;;;1312:63;;1283:98;1000:391;;;;;;1398:366;;;1519:2;1507:9;1498:7;1494:23;1490:32;1487:2;;;1535:1;1532;1525:12;1487:2;1570:1;1587:53;1632:7;1612:9;1587:53;;;1577:63;;1549:97;1677:2;1695:53;1740:7;1731:6;1720:9;1716:22;1695:53;;1771:113;1854:24;1872:5;1854:24;;;1849:3;1842:37;1836:48;;;1891:104;1968:21;1983:5;1968:21;;2002:347;;2114:39;2147:5;2114:39;;;2165:71;2229:6;2224:3;2165:71;;;2158:78;;2241:52;2286:6;2281:3;2274:4;2267:5;2263:16;2241:52;;;2314:29;2336:6;2314:29;;;2305:39;;;;2094:255;-1:-1;;;2094:255;2357:465;;2517:67;2581:2;2576:3;2517:67;;;2617:66;2597:87;;-1:-1;;;2713:2;2704:12;;2697:88;2813:2;2804:12;;2503:319;-1:-1;;2503:319;2831:465;;2991:67;3055:2;3050:3;2991:67;;;3091:66;3071:87;;-1:-1;;;3187:2;3178:12;;3171:88;3287:2;3278:12;;2977:319;-1:-1;;2977:319;3305:364;;3465:67;3529:2;3524:3;3465:67;;;3565:66;3545:87;;3660:2;3651:12;;3451:218;-1:-1;;3451:218;3678:364;;3838:67;3902:2;3897:3;3838:67;;;3938:66;3918:87;;4033:2;4024:12;;3824:218;-1:-1;;3824:218;4051:364;;4211:67;4275:2;4270:3;4211:67;;;4311:66;4291:87;;4406:2;4397:12;;4197:218;-1:-1;;4197:218;4424:465;;4584:67;4648:2;4643:3;4584:67;;;4684:66;4664:87;;-1:-1;;;4780:2;4771:12;;4764:88;4880:2;4871:12;;4570:319;-1:-1;;4570:319;4898:465;;5058:67;5122:2;5117:3;5058:67;;;5158:66;5138:87;;-1:-1;;;5254:2;5245:12;;5238:88;5354:2;5345:12;;5044:319;-1:-1;;5044:319;5372:465;;5532:67;5596:2;5591:3;5532:67;;;5632:66;5612:87;;-1:-1;;;5728:2;5719:12;;5712:88;5828:2;5819:12;;5518:319;-1:-1;;5518:319;5846:364;;6006:67;6070:2;6065:3;6006:67;;;6106:66;6086:87;;6201:2;6192:12;;5992:218;-1:-1;;5992:218;6218:113;6301:24;6319:5;6301:24;;6338:107;6417:22;6433:5;6417:22;;6452:213;6570:2;6555:18;;6584:71;6559:9;6628:6;6584:71;;6672:201;6784:2;6769:18;;6798:65;6773:9;6836:6;6798:65;;6880:301;7018:2;7032:47;;;7003:18;;7093:78;7003:18;7157:6;7093:78;;7188:407;7379:2;7393:47;;;7364:18;;7454:131;7364:18;7454:131;;7602:407;7793:2;7807:47;;;7778:18;;7868:131;7778:18;7868:131;;8016:407;8207:2;8221:47;;;8192:18;;8282:131;8192:18;8282:131;;8430:407;8621:2;8635:47;;;8606:18;;8696:131;8606:18;8696:131;;8844:407;9035:2;9049:47;;;9020:18;;9110:131;9020:18;9110:131;;9258:407;9449:2;9463:47;;;9434:18;;9524:131;9434:18;9524:131;;9672:407;9863:2;9877:47;;;9848:18;;9938:131;9848:18;9938:131;;10086:407;10277:2;10291:47;;;10262:18;;10352:131;10262:18;10352:131;;10500:407;10691:2;10705:47;;;10676:18;;10766:131;10676:18;10766:131;;10914:213;11032:2;11017:18;;11046:71;11021:9;11090:6;11046:71;;11134:205;11248:2;11233:18;;11262:67;11237:9;11302:6;11262:67;;11346:122;11434:12;;11405:63;11476:163;11579:19;;;11628:4;11619:14;;11572:67;11647:91;;11709:24;11727:5;11709:24;;11745:85;11811:13;11804:21;;11787:43;11837:121;-1:-1;;;;;11899:54;;11882:76;11965:72;12027:5;12010:27;12044:81;12115:4;12104:16;;12087:38;12133:268;12198:1;12205:101;12219:6;12216:1;12213:13;12205:101;;;12286:11;;;12280:18;12267:11;;;12260:39;12241:2;12234:10;12205:101;;;12321:6;12318:1;12315:13;12312:2;;;12386:1;12377:6;12372:3;12368:16;12361:27;12312:2;12182:219;;;;;12409:97;12497:2;12477:14;-1:-1;;12473:28;;12457:49;12514:117;12583:24;12601:5;12583:24;;;12576:5;12573:35;12563:2;;12622:1;12619;12612:12;12563:2;12557:74;;12638:117;12707:24;12725:5;12707:24;", "source": "pragma solidity 0.5.11;\npragma experimental ABIEncoderV2;\n\nimport \"../../src/utils/OnlyFromAddress.sol\";\nimport \"./interfaces/IQToken.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\n\ncontract QToken is IQToken, ERC20, ERC20Detailed, OnlyFromAddress {\n\n address public quasarContract;\n\n constructor(string memory name, string memory symbol, uint8 decimals, address owner) public ERC20Detailed(name, symbol, decimals) {\n quasarContract = owner;\n }\n\n /**\n * @dev Mint tokens for the address\n * @param account the address\n * @param amount the number of tokens to mint\n */\n function mint(address account, uint256 amount) external onlyFrom(quasarContract) {\n _mint(account, amount);\n }\n\n /**\n * @dev Burn specified tokens from the address\n * @param account the address\n * @param amount the number of tokens to burn\n */\n function burn(address account, uint256 amount) external onlyFrom(quasarContract) {\n _burn(account, amount);\n }\n}\n", "sourcePath": "/Users/souradeep/Downloads/plasma-contracts/plasma_framework/contracts/poc/fast_exits/QToken.sol", "ast": { "absolutePath": "/Users/souradeep/Downloads/plasma-contracts/plasma_framework/contracts/poc/fast_exits/QToken.sol", "exportedSymbols": { "QToken": [ 4167 ] }, "id": 4168, "nodeType": "SourceUnit", "nodes": [ { "id": 4098, "literals": [ "solidity", "0.5", ".11" ], "nodeType": "PragmaDirective", "src": "0:23:45" }, { "id": 4099, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "24:33:45" }, { "absolutePath": "/Users/souradeep/Downloads/plasma-contracts/plasma_framework/contracts/src/utils/OnlyFromAddress.sol", "file": "../../src/utils/OnlyFromAddress.sol", "id": 4100, "nodeType": "ImportDirective", "scope": 4168, "sourceUnit": 16868, "src": "59:45:45", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/souradeep/Downloads/plasma-contracts/plasma_framework/contracts/poc/fast_exits/interfaces/IQToken.sol", "file": "./interfaces/IQToken.sol", "id": 4101, "nodeType": "ImportDirective", "scope": 4168, "sourceUnit": 5848, "src": "105:34:45", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "id": 4102, "nodeType": "ImportDirective", "scope": 4168, "sourceUnit": 19641, "src": "140:63:45", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", "id": 4103, "nodeType": "ImportDirective", "scope": 4168, "sourceUnit": 19699, "src": "204:71:45", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 4104, "name": "IQToken", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 5847, "src": "296:7:45", "typeDescriptions": { "typeIdentifier": "t_contract$_IQToken_$5847", "typeString": "contract IQToken" } }, "id": 4105, "nodeType": "InheritanceSpecifier", "src": "296:7:45" }, { "arguments": null, "baseName": { "contractScope": null, "id": 4106, "name": "ERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 19640, "src": "305:5:45", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$19640", "typeString": "contract ERC20" } }, "id": 4107, "nodeType": "InheritanceSpecifier", "src": "305:5:45" }, { "arguments": null, "baseName": { "contractScope": null, "id": 4108, "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 19698, "src": "312:13:45", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Detailed_$19698", "typeString": "contract ERC20D