@dolomite-exchange/dolomite-margin
Version:
Ethereum Smart Contracts and TypeScript library used for the DolomiteMargin trading protocol
545 lines • 98.2 kB
JSON
{
"contractName": "TestIsolationModeToken",
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "__name",
"type": "string"
},
{
"internalType": "string",
"name": "__symbol",
"type": "string"
},
{
"internalType": "uint8",
"name": "__decimals",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"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"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Issue",
"type": "event"
},
{
"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"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_target",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "addBalance",
"outputs": [],
"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"
},
{
"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": [
{
"internalType": "address",
"name": "who",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "issue",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "who",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "issueTo",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_target",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "setBalance",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "bool",
"name": "_shouldRevertNameCall",
"type": "bool"
}
],
"name": "setShouldRevertNameCall",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "shouldRevertNameCall",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"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": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_tokenConverter",
"type": "address"
},
{
"internalType": "bool",
"name": "_trusted",
"type": "bool"
}
],
"name": "setTokenConverterTrusted",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "_tokenConverter",
"type": "address"
}
],
"name": "isTokenConverterTrusted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "isIsolationAsset",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"__name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"__symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"__decimals\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Issue\",\"type\":\"event\"},{\"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\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"addBalance\",\"outputs\":[],\"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\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isIsolationAsset\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenConverter\",\"type\":\"address\"}],\"name\":\"isTokenConverterTrusted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"issue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"issueTo\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"setBalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_shouldRevertNameCall\",\"type\":\"bool\"}],\"name\":\"setShouldRevertNameCall\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenConverter\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_trusted\",\"type\":\"bool\"}],\"name\":\"setTokenConverterTrusted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"shouldRevertNameCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestIsolationModeToken.sol\":\"TestIsolationModeToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IIsolationModeToken.sol\":{\"keccak256\":\"0x7924266dd63b2bfdad669f0f3c5be0b8562533a212c40459a5e350e75c27a438\",\"urls\":[\"bzz-raw://68fc0b4a568d19902b7c938edc74416dd6fb2af7a80f1c89375dce3f55d9b89d\",\"dweb:/ipfs/QmZMT59QgrAo3tmMCaY8HxiWfix5fBXVGs7HFrnSZ7mp9g\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/CustomTestToken.sol\":{\"keccak256\":\"0x2580ad1d4b6092a9f0a8ff20dd4bbdc7fc98bdfb44ff840c873fa6a7a9a6e8ad\",\"urls\":[\"bzz-raw://eeae34f2a35d92dc9e2a39d3d8e128377897907de527d6c56471dbc9ca7867ec\",\"dweb:/ipfs/QmcD4MfP5MCPQSmv8FFDScjiL9Yw724EyFqnyqgKzJqg74\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestIsolationModeToken.sol\":{\"keccak256\":\"0x9bd62bae200c4ad513cc936e5ea6a8f82f8ae6c5a59d2f33beb0e39ebca7b8bf\",\"urls\":[\"bzz-raw://13fad1963792076e00e8eba94b02add90e9893a06eaf0cb2526c12b43fc1d4c1\",\"dweb:/ipfs/QmWdoSpRCHQqmnCfoo7P9wrLuAC3D6eVXtgtNcGjgFCYd8\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestToken.sol\":{\"keccak256\":\"0xfbf238308c7b72cfc85387bdcf3a88145ab193c82268bed81f6eeea470c8e1bb\",\"urls\":[\"bzz-raw://ee425eb5d26cf169e6fc1ec50c66a59596bb4af77c9b190e5d8b3a0abd26efa1\",\"dweb:/ipfs/QmRKFYpuX7Q3pJ3UuLMcAHJ8SF1Gegp7Q99r2wZo57hDrR\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}",
"bytecode": "0x60806040523480156200001157600080fd5b50604051620013543803806200135483398101604081905262000034916200019a565b82828282600490805190602001906200004f92919062000086565b5081516200006590600590602085019062000086565b506006805460ff191660ff9290921691909117905550620002bf9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000c957805160ff1916838001178555620000f9565b82800160010185558215620000f9579182015b82811115620000f9578251825591602001919060010190620000dc565b50620001079291506200010b565b5090565b6200012891905b8082111562000107576000815560010162000112565b90565b600082601f8301126200013d57600080fd5b8151620001546200014e8262000244565b6200021d565b915080825260208301602083018583830111156200017157600080fd5b6200017e83828462000272565b50505092915050565b80516200019481620002a5565b92915050565b600080600060608486031215620001b057600080fd5b83516001600160401b03811115620001c757600080fd5b620001d5868287016200012b565b93505060208401516001600160401b03811115620001f257600080fd5b62000200868287016200012b565b9250506040620002138682870162000187565b9150509250925092565b6040518181016001600160401b03811182821017156200023c57600080fd5b604052919050565b60006001600160401b038211156200025b57600080fd5b506020601f91909101601f19160190565b60ff1690565b60005b838110156200028f57818101518382015260200162000275565b838111156200029f576000848401525b50505050565b620002b0816200026c565b8114620002bc57600080fd5b50565b61108580620002cf6000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c806370a08231116100b2578063c6e7642b11610081578063dd62ed3e11610066578063dd62ed3e14610260578063e30443bc14610273578063ed4e3a351461028657610136565b8063c6e7642b1461023a578063cc872b661461024d57610136565b806370a08231146101f957806395d89b411461020c578063a9059cbb14610214578063b6169b9c1461022757610136565b806318160ddd1161010957806321e5383a116100ee57806321e5383a146101be57806323b872dd146101d1578063313ce567146101e457610136565b806318160ddd146101a15780631e929ac3146101b657610136565b806306fdde031461013b578063095ea7b3146101595780631207f0c11461017957806316774ba01461018e575b600080fd5b61014361028e565b6040516101509190610ef8565b60405180910390f35b61016c610167366004610c83565b610385565b6040516101509190610eea565b61018c610187366004610c83565b6103fd565b005b61016c61019c366004610ba6565b6104b0565b6101a96104db565b6040516101509190610f69565b61016c6104e1565b61018c6101cc366004610c83565b6104ea565b61016c6101df366004610c06565b6105d8565b6101ec6107e0565b6040516101509190610f77565b6101a9610207366004610ba6565b6107e9565b610143610811565b61016c610222366004610c83565b610890565b61018c610235366004610cb3565b610994565b61018c610248366004610c53565b6109c5565b61018c61025b366004610cd1565b610a1b565b6101a961026e366004610bcc565b610a28565b61018c610281366004610c83565b610a60565b61016c610ab7565b60035460609060ff16156102d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce90610f09565b60405180910390fd5b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561037b5780601f106103505761010080835404028352916020019161037b565b820191906000526020600020905b81548152906001019060200180831161035e57829003601f168201915b5050505050905090565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103eb908690610f69565b60405180910390a35060015b92915050565b600054610410908263ffffffff610abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054610448908263ffffffff610abc16565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600160205260409081902092909255905130907f4b2682685b046a3dae8e75ff49b82fa703e366056a43c6a791411011134f4f5d906104a4908590610f69565b60405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526007602052604090205460ff1690565b60005490565b60035460ff1681565b60006104f5836107e9565b9050808183011015610533576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce90610f59565b610543818363ffffffff610abc16565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600160205260408120919091555461057d908363ffffffff610abc16565b600090815560405173ffffffffffffffffffffffffffffffffffffffff851691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105cb908690610f69565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040812054821115610637576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce90610f49565b73ffffffffffffffffffffffffffffffffffffffff841660009081526002602090815260408083203384529091529020548211156106a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce90610f39565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546106d7908363ffffffff610abc16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590861681522054610719908363ffffffff610b0216565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600160209081526040808320939093556002815282822033835290522054610763908363ffffffff610b0216565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526002602090815260408083203384529091529081902093909355915190851691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107ce908690610f69565b60405180910390a35060019392505050565b60065460ff1690565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b60058054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561037b5780601f106103505761010080835404028352916020019161037b565b336000908152600160205260408120548211156108d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce90610f19565b336000908152600160205260409020546108f9908363ffffffff610b0216565b336000908152600160205260408082209290925573ffffffffffffffffffffffffffffffffffffffff851681522054610938908363ffffffff610abc16565b73ffffffffffffffffffffffffffffffffffffffff84166000818152600160205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103eb908690610f69565b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b610a2533826103fd565b50565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260016020526040808220849055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104a4908590610f69565b600190565b600082820183811015610afb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce90610f29565b9392505050565b6000610afb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060008184841115610b7d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce9190610ef8565b505050900390565b80356103f78161101c565b80356103f781611030565b80356103f781611039565b600060208284031215610bb857600080fd5b6000610bc48484610b85565b949350505050565b60008060408385031215610bdf57600080fd5b6000610beb8585610b85565b9250506020610bfc85828601610b85565b9150509250929050565b600080600060608486031215610c1b57600080fd5b6000610c278686610b85565b9350506020610c3886828701610b85565b9250506040610c4986828701610b9b565b9150509250925092565b60008060408385031215610c6657600080fd5b6000610c728585610b85565b9250506020610bfc85828601610b90565b60008060408385031215610c9657600080fd5b6000610ca28585610b85565b9250506020610bfc85828601610b9b565b600060208284031215610cc557600080fd5b6000610bc48484610b90565b600060208284031215610ce357600080fd5b6000610bc48484610b9b565b610cf881610f9d565b82525050565b6000610d0982610f85565b610d138185610f89565b9350610d23818560208601610fc4565b610d2c81610ff4565b9093019392505050565b6000610d43601d83610f89565b7f54657374546f6b656e3a206e616d652063616c6c207265766572746564000000815260200192915050565b6000610d7c601683610f89565b7f546f6b656e3a205472616e73666572206661696c656400000000000000000000815260200192915050565b6000610db5601b83610f89565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000610dee602583610f89565b7f237472616e7366657246726f6d3a20494e53554646494349454e545f414c4c4f81527f57414e4345000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000610e4d602383610f89565b7f237472616e7366657246726f6d3a20494e53554646494349454e545f42414c4181527f4e43450000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000610eac600d83610f89565b7f494e56414c49445f56414c554500000000000000000000000000000000000000815260200192915050565b610cf881610fbb565b610cf881610fbe565b602081016103f78284610cef565b60208082528101610afb8184610cfe565b602080825281016103f781610d36565b602080825281016103f781610d6f565b602080825281016103f781610da8565b602080825281016103f781610de1565b602080825281016103f781610e40565b602080825281016103f781610e9f565b602081016103f78284610ed8565b602081016103f78284610ee1565b5190565b90815260200190565b60006103f782610fa2565b151590565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b60ff1690565b60005b83811015610fdf578181015183820152602001610fc7565b83811115610fee576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b61102581610f92565b8114610a2557600080fd5b61102581610f9d565b61102581610fbb56fea365627a7a723158206a4685df35648414ab492b98a82018c40aa8e6648c7e29b818ed0958380e50876c6578706572696d656e74616cf564736f6c63430005100040",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101365760003560e01c806370a08231116100b2578063c6e7642b11610081578063dd62ed3e11610066578063dd62ed3e14610260578063e30443bc14610273578063ed4e3a351461028657610136565b8063c6e7642b1461023a578063cc872b661461024d57610136565b806370a08231146101f957806395d89b411461020c578063a9059cbb14610214578063b6169b9c1461022757610136565b806318160ddd1161010957806321e5383a116100ee57806321e5383a146101be57806323b872dd146101d1578063313ce567146101e457610136565b806318160ddd146101a15780631e929ac3146101b657610136565b806306fdde031461013b578063095ea7b3146101595780631207f0c11461017957806316774ba01461018e575b600080fd5b61014361028e565b6040516101509190610ef8565b60405180910390f35b61016c610167366004610c83565b610385565b6040516101509190610eea565b61018c610187366004610c83565b6103fd565b005b61016c61019c366004610ba6565b6104b0565b6101a96104db565b6040516101509190610f69565b61016c6104e1565b61018c6101cc366004610c83565b6104ea565b61016c6101df366004610c06565b6105d8565b6101ec6107e0565b6040516101509190610f77565b6101a9610207366004610ba6565b6107e9565b610143610811565b61016c610222366004610c83565b610890565b61018c610235366004610cb3565b610994565b61018c610248366004610c53565b6109c5565b61018c61025b366004610cd1565b610a1b565b6101a961026e366004610bcc565b610a28565b61018c610281366004610c83565b610a60565b61016c610ab7565b60035460609060ff16156102d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce90610f09565b60405180910390fd5b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561037b5780601f106103505761010080835404028352916020019161037b565b820191906000526020600020905b81548152906001019060200180831161035e57829003601f168201915b5050505050905090565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103eb908690610f69565b60405180910390a35060015b92915050565b600054610410908263ffffffff610abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054610448908263ffffffff610abc16565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600160205260409081902092909255905130907f4b2682685b046a3dae8e75ff49b82fa703e366056a43c6a791411011134f4f5d906104a4908590610f69565b60405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526007602052604090205460ff1690565b60005490565b60035460ff1681565b60006104f5836107e9565b9050808183011015610533576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce90610f59565b610543818363ffffffff610abc16565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600160205260408120919091555461057d908363ffffffff610abc16565b600090815560405173ffffffffffffffffffffffffffffffffffffffff851691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105cb908690610f69565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040812054821115610637576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce90610f49565b73ffffffffffffffffffffffffffffffffffffffff841660009081526002602090815260408083203384529091529020548211156106a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce90610f39565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546106d7908363ffffffff610abc16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590861681522054610719908363ffffffff610b0216565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600160209081526040808320939093556002815282822033835290522054610763908363ffffffff610b0216565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526002602090815260408083203384529091529081902093909355915190851691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107ce908690610f69565b60405180910390a35060019392505050565b60065460ff1690565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b60058054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561037b5780601f106103505761010080835404028352916020019161037b565b336000908152600160205260408120548211156108d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce90610f19565b336000908152600160205260409020546108f9908363ffffffff610b0216565b336000908152600160205260408082209290925573ffffffffffffffffffffffffffffffffffffffff851681522054610938908363ffffffff610abc16565b73ffffffffffffffffffffffffffffffffffffffff84166000818152600160205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103eb908690610f69565b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b610a2533826103fd565b50565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260016020526040808220849055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104a4908590610f69565b600190565b600082820183811015610afb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce90610f29565b9392505050565b6000610afb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060008184841115610b7d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce9190610ef8565b505050900390565b80356103f78161101c565b80356103f781611030565b80356103f781611039565b600060208284031215610bb857600080fd5b6000610bc48484610b85565b949350505050565b60008060408385031215610bdf57600080fd5b6000610beb8585610b85565b9250506020610bfc85828601610b85565b9150509250929050565b600080600060608486031215610c1b57600080fd5b6000610c278686610b85565b9350506020610c3886828701610b85565b9250506040610c4986828701610b9b565b9150509250925092565b60008060408385031215610c6657600080fd5b6000610c728585610b85565b9250506020610bfc85828601610b90565b60008060408385031215610c9657600080fd5b6000610ca28585610b85565b9250506020610bfc85828601610b9b565b600060208284031215610cc557600080fd5b6000610bc48484610b90565b600060208284031215610ce357600080fd5b6000610bc48484610b9b565b610cf881610f9d565b82525050565b6000610d0982610f85565b610d138185610f89565b9350610d23818560208601610fc4565b610d2c81610ff4565b9093019392505050565b6000610d43601d83610f89565b7f54657374546f6b656e3a206e616d652063616c6c207265766572746564000000815260200192915050565b6000610d7c601683610f89565b7f546f6b656e3a205472616e73666572206661696c656400000000000000000000815260200192915050565b6000610db5601b83610f89565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000610dee602583610f89565b7f237472616e7366657246726f6d3a20494e53554646494349454e545f414c4c4f81527f57414e4345000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000610e4d602383610f89565b7f237472616e7366657246726f6d3a20494e53554646494349454e545f42414c4181527f4e43450000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000610eac600d83610f89565b7f494e56414c49445f56414c554500000000000000000000000000000000000000815260200192915050565b610cf881610fbb565b610cf881610fbe565b602081016103f78284610cef565b60208082528101610afb8184610cfe565b602080825281016103f781610d36565b602080825281016103f781610d6f565b602080825281016103f781610da8565b602080825281016103f781610de1565b602080825281016103f781610e40565b602080825281016103f781610e9f565b602081016103f78284610ed8565b602081016103f78284610ee1565b5190565b90815260200190565b60006103f782610fa2565b151590565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b60ff1690565b60005b83811015610fdf578181015183820152602001610fc7565b83811115610fee576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b61102581610f92565b8114610a2557600080fd5b61102581610f9d565b61102581610fbb56fea365627a7a723158206a4685df35648414ab492b98a82018c40aa8e6648c7e29b818ed0958380e50876c6578706572696d656e74616cf564736f6c63430005100040",
"sourceMap": "799:780:124:-;;;940:234;8:9:-1;5:2;;;30:1;27;20:12;5:2;940:234:124;;;;;;;;;;;;;;;;;;;;;1077:6;1085:8;1095:10;963:6:105;955:5;:14;;;;;;;;;;;;:::i;:::-;-1:-1:-1;979:18:105;;;;:7;;:18;;;;;:::i;:::-;-1:-1:-1;1007:9:105;:22;;-1:-1:-1;;1007:22:105;;;;;;;;;;;;-1:-1:-1;799:780:124;;-1:-1:-1;;;;799:780:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;799:780:124;;;-1:-1:-1;799:780:124;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;6:444:-1:-;;119:3;112:4;104:6;100:17;96:27;86:2;;137:1;134;127:12;86:2;167:6;161:13;189:65;204:49;246:6;204:49;;;189:65;;;180:74;;274:6;267:5;260:21;310:4;302:6;298:17;343:4;336:5;332:16;378:3;369:6;364:3;360:16;357:25;354:2;;;395:1;392;385:12;354:2;405:39;437:6;432:3;427;405:39;;;79:371;;;;;;;;458:130;534:13;;552:31;534:13;552:31;;;519:69;;;;;595:729;;;;762:2;750:9;741:7;737:23;733:32;730:2;;;778:1;775;768:12;730:2;813:24;;-1:-1;;;;;846:30;;843:2;;;889:1;886;879:12;843:2;909:74;975:7;966:6;955:9;951:22;909:74;;;899:84;;792:197;1041:2;1030:9;1026:18;1020:25;-1:-1;;;;;1057:6;1054:30;1051:2;;;1097:1;1094;1087:12;1051:2;1117:74;1183:7;1174:6;1163:9;1159:22;1117:74;;;1107:84;;999:198;1228:2;1246:62;1300:7;1291:6;1280:9;1276:22;1246:62;;;1236:72;;1207:107;724:600;;;;;;1331:256;1393:2;1387:9;1419:17;;;-1:-1;;;;;1479:34;;1515:22;;;1476:62;1473:2;;;1551:1;1548;1541:12;1473:2;1567;1560:22;1371:216;;-1:-1;1371:216;1594:322;;-1:-1;;;;;1730:6;1727:30;1724:2;;;1770:1;1767;1760:12;1724:2;-1:-1;1901:4;1837;1814:17;;;;-1:-1;;1810:33;1891:15;;1661:255;1923:81;1994:4;1983:16;;1966:38;2012:268;2077:1;2084:101;2098:6;2095:1;2092:13;2084:101;;;2165:11;;;2159:18;2146:11;;;2139:39;2120:2;2113:10;2084:101;;;2200:6;2197:1;2194:13;2191:2;;;2265:1;2256:6;2251:3;2247:16;2240:27;2191:2;2061:219;;;;;2288:113;2355:22;2371:5;2355:22;;;2348:5;2345:33;2335:2;;2392:1;2389;2382:12;2335:2;2329:72;;;799:780:124;;;;;;",
"deployedSourceMap": "799:780:124:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;799:780:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1133:180:105;;;:::i;:::-;;;;;;;;;;;;;;;;3746:242:139;;;;;;;;;:::i;:::-;;;;;;;;1918:196;;;;;;;;;:::i;:::-;;1336:150:124;;;;;;;;;:::i;2120:83:139:-;;;:::i;:::-;;;;;;;;1009:32;;;:::i;1550:362::-;;;;;;;;;:::i;3191:549::-;;;;;;;;;:::i;1319:81:105:-;;;:::i;:::-;;;;;;;;2209:99:139;;;;;;;;;:::i;1042:85:105:-;;;:::i;2811:374:139:-;;;;;;;;;:::i;1415:129::-;;;;;;;;;:::i;1180:150:124:-;;;;;;;;;:::i;1164:82:139:-;;;;;;;;;:::i;2314:128::-;;;;;;;;;:::i;1252:157::-;;;;;;;;;:::i;1492:85:124:-;;;:::i;1133:180:105:-;1199:20;;1170:13;;1199:20;;1195:90;;;1235:39;;;;;;;;;;;;;;;;;;;1195:90;1301:5;1294:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1301:5;1294:12;;1301:5;1294:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1133:180;:::o;3746:242:139:-;3835:10;3811:4;3827:19;;;:7;:19;;;;;;;;;:28;;;;;;;;;;:36;;;3878:82;3811:4;;3827:28;;3878:82;;;;3858:5;;3878:82;;;;;;;;;;-1:-1:-1;3977:4:139;3746:242;;;;;:::o;1918:196::-;1990:6;;:18;;2001:6;1990:18;:10;:18;:::i;:::-;1981:6;:27;;;2034:13;;;;;:8;:13;;;;;;:25;;2052:6;2034:25;:17;:25;:::i;:::-;2018:13;;;;;;;:8;:13;;;;;;;:41;;;;2074:33;;2088:4;;2074:33;;;;2100:6;;2074:33;;;;;;;;;;1918:196;;:::o;1336:150:124:-;1440:39;;1417:4;1440:39;;;:22;:39;;;;;;;;;1336:150::o;2120:83:139:-;2164:7;2190:6;2120:83;:::o;1009:32::-;;;;;;:::o;1550:362::-;1650:19;1672:18;1682:7;1672:9;:18::i;:::-;1650:40;;1732:11;1717;1708:6;:20;:35;;1700:61;;;;;;;;;;;;;;1791:23;:11;1807:6;1791:23;:15;:23;:::i;:::-;1771:17;;;;;;;:8;:17;;;;;:43;;;;1833:6;:18;;1844:6;1833:18;:10;:18;:::i;:::-;1824:6;:27;;;1866:39;;;;;;1824:6;1866:39;;;;1898:6;;1866:39;;;;;;;;;;1550:362;;;:::o;3191:549::-;3294:14;;;3270:4;3294:14;;;:8;:14;;;;;;:23;-1:-1:-1;3294:23:139;3286:71;;;;;;;;;;;;;;3375:13;;;;;;;:7;:13;;;;;;;;3389:10;3375:25;;;;;;;;:34;-1:-1:-1;3375:34:139;3367:84;;;;;;;;;;;;;;3477:12;;;;;;;:8;:12;;;;;;:23;;3494:5;3477:23;:16;:23;:::i;:::-;3462:12;;;;;;;;:8;:12;;;;;;:38;;;;3527:14;;;;;;;:25;;3546:5;3527:25;:18;:25;:::i;:::-;3510:14;;;;;;;:8;:14;;;;;;;;:42;;;;3590:7;:13;;;;;3604:10;3590:25;;;;;;:36;;3620:5;3590:36;:29;:36;:::i;:::-;3562:13;;;;;;;;:7;:13;;;;;;;;3576:10;3562:25;;;;;;;;;:64;;;;3641:71;;;;;;3562:13;3641:71;;;;3697:5;;3641:71;;;;;;;;;;-1:-1:-1;3729:4:139;3191:549;;;;;:::o;1319:81:105:-;1384:9;;;;1319:81;:::o;2209:99:139:-;2288:13;;2262:7;2288:13;;;:8;:13;;;;;;;2209:99::o;1042:85:105:-;1113:7;1106:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1081:13;;1106:14;;1113:7;;1106:14;;1113:7;1106:14;;;;;;;;;;;;;;;;;;;;;;;;2811:374:139;2905:10;2872:4;2896:20;;;:8;:20;;;;;;:29;-1:-1:-1;2896:29:139;2888:64;;;;;;;;;;;;;;2995:10;2986:20;;;;:8;:20;;;;;;:31;;3011:5;2986:31;:24;:31;:::i;:::-;2972:10;2963:20;;;;:8;:20;;;;;;:54;;;;:20;3042:12;;;;;;:23;;3059:5;3042:23;:16;:23;:::i;:::-;3027:12;;;;;;;:8;:12;;;;;;;:38;;;;3080:77;;3102:10;;3080:77;;;;3142:5;;3080:77;;1415:129;1493:20;:44;;;;;;;;;;;;;1415:129::o;1180:150:124:-;1273:39;;;;;;;;;:22;:39;;;;;:50;;;;;;;;;;;;;1180:150::o;1164:82:139:-;1212:27;1220:10;1232:6;1212:7;:27::i;:::-;1164:82;:::o;2314:128::-;2412:14;;;;2386:7;2412:14;;;:7;:14;;;;;;;;:23;;;;;;;;;;;;;2314:128::o;1252:157::-;1322:17;;;;;;;:8;:17;;;;;;:26;;;1363:39;;;;;1342:6;;1363:39;;1492:85:124;1566:4;1492:85;:::o;834:176:150:-;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:150:o;1274:134::-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;1818:7;1853:12;1845:6;;;;1837:29;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:150;;;1732:187::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;142:124;206:20;;231:30;206:20;231:30;;273:130;340:20;;365:33;340:20;365:33;;410:241;;514:2;502:9;493:7;489:23;485:32;482:2;;;530:1;527;520:12;482:2;565:1;582:53;627:7;607:9;582:53;;;572:63;476:175;-1:-1;;;;476:175;658:366;;;779:2;767:9;758:7;754:23;750:32;747:2;;;795:1;792;785:12;747:2;830:1;847:53;892:7;872:9;847:53;;;837:63;;809:97;937:2;955:53;1000:7;991:6;980:9;976:22;955:53;;;945:63;;916:98;741:283;;;;;;1031:491;;;;1169:2;1157:9;1148:7;1144:23;1140:32;1137:2;;;1185:1;1182;1175:12;1137:2;1220:1;1237:53;1282:7;1262:9;1237:53;;;1227:63;;1199:97;1327:2;1345:53;1390:7;1381:6;1370:9;1366:22;1345:53;;;1335:63;;1306:98;1435:2;1453:53;1498:7;1489:6;1478:9;1474:22;1453:53;;;1443:63;;1414:98;1131:391;;;;;;1529:360;;;1647:2;1635:9;1626:7;1622:23;1618:32;1615:2;;;1663:1;1660;1653:12;1615:2;1698:1;1715:53;1760:7;1740:9;1715:53;;;1705:63;;1677:97;1805:2;1823:50;1865:7;1856:6;1845:9;1841:22;1823:50;;1896:366;;;2017:2;2005:9;1996:7;1992:23;1988:32;1985:2;;;2033:1;2030;2023:12;1985:2;2068:1;2085:53;2130:7;2110:9;2085:53;;;2075:63;;2047:97;2175:2;2193:53;2238:7;2229:6;2218:9;2214:22;2193:53;;2269:235;;2370:2;2358:9;2349:7;2345:23;2341:32;2338:2;;;2386:1;2383;2376:12;2338:2;2421:1;2438:50;2480:7;2460:9;2438:50;;2511:241;;2615:2;2603:9;2594:7;2590:23;2586:32;2583:2;;;2631:1;2628;2621:12;2583:2;2666:1;2683:53;2728:7;2708:9;2683:53;;2759:104;2836:21;2851:5;2836:21;;;2831:3;2824:34;2818:45;;;2870:347;;2982:39;3015:5;2982:39;;;3033:71;3097:6;3092:3;3033:71;;;3026:78;;3109:52;3154:6;3149:3;3142:4;3135:5;3131:16;3109:52;;;3182:29;3204:6;3182:29;;;3173:39;;;;2962:255;-1:-1;;;2962:255;3225:329;;3385:67;3449:2;3444:3;3385:67;;;3485:31;3465:52;;3545:2;3536:12;;3371:183;-1:-1;;3371:183;3563:322;;3723:67;3787:2;3782:3;3723:67;;;3823:24;3803:45;;3876:2;3867:12;;3709:176;-1:-1;;3709:176;3894:327;;4054:67;4118:2;4113:3;4054:67;;;4154:29;4134:50;;4212:2;4203:12;;4040:181;-1:-1;;4040:181;4230:374;;4390:67;4454:2;4449:3;4390:67;;;4490:34;4470:55;;4559:7;4554:2;4545:12;;4538:29;4595:2;4586:12;;4376:228;-1:-1;;4376:228;4613:372;;4773:67;4837:2;4832:3;4773:67;;;4873:34;4853:55;;4942:5;4937:2;4928:12;;4921:27;4976:2;4967:12;;4759:226;-1:-1;;4759:226;4994:313;;5154:67;5218:2;5213:3;5154:67;;;5254:15;5234:36;;5298:2;5289:12;;5140:167;-1:-1;;5140:167;5315:113;5398:24;5416:5;5398:24;;5435:107;5514:22;5530:5;5514:22;;5549:201;5661:2;5646:18;;5675:65;5650:9;5713:6;5675:65;;5757:301;5895:2;5909:47;;;5880:18;;5970:78;5880:18;6034:6;5970:78;;6065:407;6256:2;6270:47;;;6241:18;;6331:131;6241:18;6331:131;;6479:407;6670:2;6684:47;;;6655:18;;6745:131;6655:18;6745:131;;6893:407;7084:2;7098:47;;;7069:18;;7159:131;7069:18;7159:131;;7307:407;7498:2;7512:47;;;7483:18;;7573:131;7483:18;7573:131;;7721:407;7912:2;7926:47;;;7897:18;;7987:131;7897:18;7987:131;;8135:407;8326:2;8340:47;;;8311:18;;8401:131;8311:18;8401:131;;8549:213;8667:2;8652:18;;8681:71;8656:9;8725:6;8681:71;;8769:205;8883:2;8868:18;;8897:67;8872:9;8937:6;8897:67;;8981:122;9069:12;;9040:63;9111:163;9214:19;;;9263:4;9254:14;;9207:67;9282:91;;9344:24;9362:5;9344:24;;9380:85;9446:13;9439:21;;9422:43;9472:121;9545:42;9534:54;;9517:76;9600:72;9662:5;9645:27;9679:81;9750:4;9739:16;;9722:38;9768:268;9833:1;9840:101;9854:6;9851:1;9848:13;9840:101;;;9921:11;;;9915:18;9902:11;;;9895:39;9876:2;9869:10;9840:101;;;9956:6;9953:1;9950:13;9947:2;;;10021:1;10012:6;10007:3;10003:16;9996:27;9947:2;9817:219;;;;;10044:97;10132:2;10112:14;10128:7;10108:28;;10092:49;10149:117;10218:24;10236:5;10218:24;;;10211:5;10208:35;10198:2;;10257:1;10254;10247:12;10273:111;10339:21;10354:5;10339:21;;10391:117;10460:24;10478:5;10460:24;",
"source": "/*\n\n Copyright 2021 Dolomite\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*/\n\npragma solidity ^0.5.7;\npragma experimental ABIEncoderV2;\n\nimport { IIsolationModeToken } from \"../external/interfaces/IIsolationModeToken.sol\";\n\nimport { CustomTestToken } from \"./CustomTestToken.sol\";\n\n\ncontract TestIsolationModeToken is IIsolationModeToken, CustomTestToken {\n\n mapping(address => bool) private trustedTokenConverters;\n\n constructor(\n string memory __name,\n string memory __symbol,\n uint8 __decimals\n )\n public\n CustomTestToken(__name, __symbol, __decimals)\n {\n // solium-disable-previous-line no-empty-blocks\n }\n\n function setTokenConverterTrusted(address _tokenConverter, bool _trusted) external {\n trustedTokenConverters[_tokenConverter] = _trusted;\n }\n\n function isTokenConverterTrusted(address _tokenConverter) external view returns (bool) {\n return trustedTokenConverters[_tokenConverter];\n }\n\n function isIsolationAsset() external view returns (bool) {\n return true;\n }\n}\n",
"sourcePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestIsolationModeToken.sol",
"ast": {
"absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestIsolationModeToken.sol",
"exportedSymbols": {
"TestIsolationModeToken": [
34089
]
},
"id": 34090,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 34026,
"literals": [
"solidity",
"^",
"0.5",
".7"
],
"nodeType": "PragmaDirective",
"src": "594:23:124"
},
{
"id": 34027,
"literals": [
"experimental",
"ABIEncoderV2"
],
"nodeType": "PragmaDirective",
"src": "618:33:124"
},
{
"absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IIsolationModeToken.sol",
"file": "../external/interfaces/IIsolationModeToken.sol",
"id": 34029,
"nodeType": "ImportDirective",
"scope": 34090,
"sourceUnit": 4713,
"src": "653:85:124",
"symbolAliases": [
{
"foreign": 34028,
"local": null
}
],
"unitAlias": ""
},
{
"absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/CustomTestToken.sol",
"file": "./CustomTestToken.sol",
"id": 34031,
"nodeType": "ImportDirective",
"scope": 34090,
"sourceUnit": 31429,
"src": "740:56:124",
"symbolAliases": [
{
"foreign": 34030,
"local": null
}
],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 34032,
"name": "IIsolationModeToken",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4712,
"src": "834:19:124",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IIsolationModeToken_$4712",
"typeString": "contract IIsolationModeToken"
}
},
"id": 34033,
"nodeType": "InheritanceSpecifier",
"src": "834:19:124"
},
{
"arguments": null,
"baseName": {
"contractScope": nul