@dolomite-exchange/dolomite-margin
Version:
Ethereum Smart Contracts and TypeScript library used for the DolomiteMargin trading protocol
686 lines (685 loc) • 449 kB
JSON
{
"contractName": "TestToken",
"abi": [
{
"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": true,
"inputs": [],
"name": "shouldRevertNameCall",
"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": "_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": "_target",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "addBalance",
"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": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"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": [
{
"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": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"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": "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": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestToken.sol\":\"TestToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/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/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": "0x608060405234801561001057600080fd5b50610e9e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063313ce56711610097578063b6169b9c11610066578063b6169b9c146101d3578063cc872b66146101e6578063dd62ed3e146101f9578063e30443bc1461020c576100f5565b8063313ce5671461019057806370a08231146101a557806395d89b41146101b8578063a9059cbb146101c0576100f5565b806318160ddd116100d357806318160ddd1461014d5780631e929ac31461016257806321e5383a1461016a57806323b872dd1461017d576100f5565b806306fdde03146100fa578063095ea7b3146101185780631207f0c114610138575b600080fd5b61010261021f565b60405161010f9190610d11565b60405180910390f35b61012b610126366004610a9c565b6102a0565b60405161010f9190610d03565b61014b610146366004610a9c565b610318565b005b6101556103cb565b60405161010f9190610d82565b61012b6103d1565b61014b610178366004610a9c565b6103da565b61012b61018b366004610a4f565b6104c8565b6101986106d0565b60405161010f9190610d90565b6101556101b33660046109ef565b6106d5565b6101026106fd565b61012b6101ce366004610a9c565b610734565b61014b6101e1366004610acc565b610838565b61014b6101f4366004610aea565b610869565b610155610207366004610a15565b610876565b61014b61021a366004610a9c565b6108ae565b60035460609060ff1615610268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f90610d22565b60405180910390fd5b5060408051808201909152600a81527f5465737420546f6b656e00000000000000000000000000000000000000000000602082015290565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610306908690610d82565b60405180910390a35060015b92915050565b60005461032b908263ffffffff61090516565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054610363908263ffffffff61090516565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600160205260409081902092909255905130907f4b2682685b046a3dae8e75ff49b82fa703e366056a43c6a791411011134f4f5d906103bf908590610d82565b60405180910390a35050565b60005490565b60035460ff1681565b60006103e5836106d5565b9050808183011015610423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f90610d72565b610433818363ffffffff61090516565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600160205260408120919091555461046d908363ffffffff61090516565b600090815560405173ffffffffffffffffffffffffffffffffffffffff851691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104bb908690610d82565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040812054821115610527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f90610d62565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054821115610591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f90610d52565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546105c7908363ffffffff61090516565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590861681522054610609908363ffffffff61094b16565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600160209081526040808320939093556002815282822033835290522054610653908363ffffffff61094b16565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526002602090815260408083203384529091529081902093909355915190851691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106be908690610d82565b60405180910390a35060019392505050565b601290565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b60408051808201909152600481527f5445535400000000000000000000000000000000000000000000000000000000602082015290565b3360009081526001602052604081205482111561077d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f90610d32565b3360009081526001602052604090205461079d908363ffffffff61094b16565b336000908152600160205260408082209290925573ffffffffffffffffffffffffffffffffffffffff8516815220546107dc908363ffffffff61090516565b73ffffffffffffffffffffffffffffffffffffffff84166000818152600160205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610306908690610d82565b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6108733382610318565b50565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260016020526040808220849055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103bf908590610d82565b600082820183811015610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f90610d42565b9392505050565b600061094483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250600081848411156109c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f9190610d11565b505050900390565b803561031281610e35565b803561031281610e49565b803561031281610e52565b600060208284031215610a0157600080fd5b6000610a0d84846109ce565b949350505050565b60008060408385031215610a2857600080fd5b6000610a3485856109ce565b9250506020610a45858286016109ce565b9150509250929050565b600080600060608486031215610a6457600080fd5b6000610a7086866109ce565b9350506020610a81868287016109ce565b9250506040610a92868287016109e4565b9150509250925092565b60008060408385031215610aaf57600080fd5b6000610abb85856109ce565b9250506020610a45858286016109e4565b600060208284031215610ade57600080fd5b6000610a0d84846109d9565b600060208284031215610afc57600080fd5b6000610a0d84846109e4565b610b1181610db6565b82525050565b6000610b2282610d9e565b610b2c8185610da2565b9350610b3c818560208601610ddd565b610b4581610e0d565b9093019392505050565b6000610b5c601d83610da2565b7f54657374546f6b656e3a206e616d652063616c6c207265766572746564000000815260200192915050565b6000610b95601683610da2565b7f546f6b656e3a205472616e73666572206661696c656400000000000000000000815260200192915050565b6000610bce601b83610da2565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000610c07602583610da2565b7f237472616e7366657246726f6d3a20494e53554646494349454e545f414c4c4f81527f57414e4345000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000610c66602383610da2565b7f237472616e7366657246726f6d3a20494e53554646494349454e545f42414c4181527f4e43450000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000610cc5600d83610da2565b7f494e56414c49445f56414c554500000000000000000000000000000000000000815260200192915050565b610b1181610dd4565b610b1181610dd7565b602081016103128284610b08565b602080825281016109448184610b17565b6020808252810161031281610b4f565b6020808252810161031281610b88565b6020808252810161031281610bc1565b6020808252810161031281610bfa565b6020808252810161031281610c59565b6020808252810161031281610cb8565b602081016103128284610cf1565b602081016103128284610cfa565b5190565b90815260200190565b600061031282610dbb565b151590565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b60ff1690565b60005b83811015610df8578181015183820152602001610de0565b83811115610e07576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b610e3e81610dab565b811461087357600080fd5b610e3e81610db6565b610e3e81610dd456fea365627a7a72315820265bdec68dd245112a9e43c87fccdab1547a9187cdce1553c3df63259cd0ceb76c6578706572696d656e74616cf564736f6c63430005100040",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063313ce56711610097578063b6169b9c11610066578063b6169b9c146101d3578063cc872b66146101e6578063dd62ed3e146101f9578063e30443bc1461020c576100f5565b8063313ce5671461019057806370a08231146101a557806395d89b41146101b8578063a9059cbb146101c0576100f5565b806318160ddd116100d357806318160ddd1461014d5780631e929ac31461016257806321e5383a1461016a57806323b872dd1461017d576100f5565b806306fdde03146100fa578063095ea7b3146101185780631207f0c114610138575b600080fd5b61010261021f565b60405161010f9190610d11565b60405180910390f35b61012b610126366004610a9c565b6102a0565b60405161010f9190610d03565b61014b610146366004610a9c565b610318565b005b6101556103cb565b60405161010f9190610d82565b61012b6103d1565b61014b610178366004610a9c565b6103da565b61012b61018b366004610a4f565b6104c8565b6101986106d0565b60405161010f9190610d90565b6101556101b33660046109ef565b6106d5565b6101026106fd565b61012b6101ce366004610a9c565b610734565b61014b6101e1366004610acc565b610838565b61014b6101f4366004610aea565b610869565b610155610207366004610a15565b610876565b61014b61021a366004610a9c565b6108ae565b60035460609060ff1615610268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f90610d22565b60405180910390fd5b5060408051808201909152600a81527f5465737420546f6b656e00000000000000000000000000000000000000000000602082015290565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610306908690610d82565b60405180910390a35060015b92915050565b60005461032b908263ffffffff61090516565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054610363908263ffffffff61090516565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600160205260409081902092909255905130907f4b2682685b046a3dae8e75ff49b82fa703e366056a43c6a791411011134f4f5d906103bf908590610d82565b60405180910390a35050565b60005490565b60035460ff1681565b60006103e5836106d5565b9050808183011015610423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f90610d72565b610433818363ffffffff61090516565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600160205260408120919091555461046d908363ffffffff61090516565b600090815560405173ffffffffffffffffffffffffffffffffffffffff851691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104bb908690610d82565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040812054821115610527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f90610d62565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054821115610591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f90610d52565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546105c7908363ffffffff61090516565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590861681522054610609908363ffffffff61094b16565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600160209081526040808320939093556002815282822033835290522054610653908363ffffffff61094b16565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526002602090815260408083203384529091529081902093909355915190851691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106be908690610d82565b60405180910390a35060019392505050565b601290565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b60408051808201909152600481527f5445535400000000000000000000000000000000000000000000000000000000602082015290565b3360009081526001602052604081205482111561077d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f90610d32565b3360009081526001602052604090205461079d908363ffffffff61094b16565b336000908152600160205260408082209290925573ffffffffffffffffffffffffffffffffffffffff8516815220546107dc908363ffffffff61090516565b73ffffffffffffffffffffffffffffffffffffffff84166000818152600160205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610306908690610d82565b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6108733382610318565b50565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260016020526040808220849055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103bf908590610d82565b600082820183811015610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f90610d42565b9392505050565b600061094483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250600081848411156109c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025f9190610d11565b505050900390565b803561031281610e35565b803561031281610e49565b803561031281610e52565b600060208284031215610a0157600080fd5b6000610a0d84846109ce565b949350505050565b60008060408385031215610a2857600080fd5b6000610a3485856109ce565b9250506020610a45858286016109ce565b9150509250929050565b600080600060608486031215610a6457600080fd5b6000610a7086866109ce565b9350506020610a81868287016109ce565b9250506040610a92868287016109e4565b9150509250925092565b60008060408385031215610aaf57600080fd5b6000610abb85856109ce565b9250506020610a45858286016109e4565b600060208284031215610ade57600080fd5b6000610a0d84846109d9565b600060208284031215610afc57600080fd5b6000610a0d84846109e4565b610b1181610db6565b82525050565b6000610b2282610d9e565b610b2c8185610da2565b9350610b3c818560208601610ddd565b610b4581610e0d565b9093019392505050565b6000610b5c601d83610da2565b7f54657374546f6b656e3a206e616d652063616c6c207265766572746564000000815260200192915050565b6000610b95601683610da2565b7f546f6b656e3a205472616e73666572206661696c656400000000000000000000815260200192915050565b6000610bce601b83610da2565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000610c07602583610da2565b7f237472616e7366657246726f6d3a20494e53554646494349454e545f414c4c4f81527f57414e4345000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000610c66602383610da2565b7f237472616e7366657246726f6d3a20494e53554646494349454e545f42414c4181527f4e43450000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000610cc5600d83610da2565b7f494e56414c49445f56414c554500000000000000000000000000000000000000815260200192915050565b610b1181610dd4565b610b1181610dd7565b602081016103128284610b08565b602080825281016109448184610b17565b6020808252810161031281610b4f565b6020808252810161031281610b88565b6020808252810161031281610bc1565b6020808252810161031281610bfa565b6020808252810161031281610c59565b6020808252810161031281610cb8565b602081016103128284610cf1565b602081016103128284610cfa565b5190565b90815260200190565b600061031282610dbb565b151590565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b60ff1690565b60005b83811015610df8578181015183820152602001610de0565b83811115610e07576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b610e3e81610dab565b811461087357600080fd5b610e3e81610db6565b610e3e81610dd456fea365627a7a72315820265bdec68dd245112a9e43c87fccdab1547a9187cdce1553c3df63259cd0ceb76c6578706572696d656e74616cf564736f6c63430005100040",
"sourceMap": "810:3180:139:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;810:3180:139;;;;;;;",
"deployedSourceMap": "810:3180:139:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;810:3180:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2538:187;;;:::i;:::-;;;;;;;;;;;;;;;;3746:242;;;;;;;;;:::i;:::-;;;;;;;;1918:196;;;;;;;;;:::i;:::-;;2120:83;;;:::i;:::-;;;;;;;;1009:32;;;:::i;1550:362::-;;;;;;;;;:::i;3191:549::-;;;;;;;;;:::i;2731:74::-;;;:::i;:::-;;;;;;;;2209:99;;;;;;;;;:::i;2448:84::-;;;:::i;2811:374::-;;;;;;;;;:::i;1415:129::-;;;;;;;;;:::i;1164:82::-;;;;;;;;;:::i;2314:128::-;;;;;;;;;:::i;1252:157::-;;;;;;;;;:::i;2538:187::-;2604:20;;2575:13;;2604:20;;2600:90;;;2640:39;;;;;;;;;;;;;;;;;;;2600:90;-1:-1:-1;2699:19:139;;;;;;;;;;;;;;;;;2538:187;:::o;3746:242::-;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;2120:83::-;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;2731:74::-;2796:2;2731:74;:::o;2209:99::-;2288:13;;2262:7;2288:13;;;:8;:13;;;;;;;2209:99::o;2448:84::-;2512:13;;;;;;;;;;;;;;;;;2448:84;:::o;2811:374::-;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;1164:82::-;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;;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:366;;;1650:2;1638:9;1629:7;1625:23;1621:32;1618:2;;;1666:1;1663;1656:12;1618:2;1701:1;1718:53;1763:7;1743:9;1718:53;;;1708:63;;1680:97;1808:2;1826:53;1871:7;1862:6;1851:9;1847:22;1826:53;;1902:235;;2003:2;1991:9;1982:7;1978:23;1974:32;1971:2;;;2019:1;2016;2009:12;1971:2;2054:1;2071:50;2113:7;2093:9;2071:50;;2144:241;;2248:2;2236:9;2227:7;2223:23;2219:32;2216:2;;;2264:1;2261;2254:12;2216:2;2299:1;2316:53;2361:7;2341:9;2316:53;;2392:104;2469:21;2484:5;2469:21;;;2464:3;2457:34;2451:45;;;2503:347;;2615:39;2648:5;2615:39;;;2666:71;2730:6;2725:3;2666:71;;;2659:78;;2742:52;2787:6;2782:3;2775:4;2768:5;2764:16;2742:52;;;2815:29;2837:6;2815:29;;;2806:39;;;;2595:255;-1:-1;;;2595:255;2858:329;;3018:67;3082:2;3077:3;3018:67;;;3118:31;3098:52;;3178:2;3169:12;;3004:183;-1:-1;;3004:183;3196:322;;3356:67;3420:2;3415:3;3356:67;;;3456:24;3436:45;;3509:2;3500:12;;3342:176;-1:-1;;3342:176;3527:327;;3687:67;3751:2;3746:3;3687:67;;;3787:29;3767:50;;3845:2;3836:12;;3673:181;-1:-1;;3673:181;3863:374;;4023:67;4087:2;4082:3;4023:67;;;4123:34;4103:55;;4192:7;4187:2;4178:12;;4171:29;4228:2;4219:12;;4009:228;-1:-1;;4009:228;4246:372;;4406:67;4470:2;4465:3;4406:67;;;4506:34;4486:55;;4575:5;4570:2;4561:12;;4554:27;4609:2;4600:12;;4392:226;-1:-1;;4392:226;4627:313;;4787:67;4851:2;4846:3;4787:67;;;4887:15;4867:36;;4931:2;4922:12;;4773:167;-1:-1;;4773:167;4948:113;5031:24;5049:5;5031:24;;5068:107;5147:22;5163:5;5147:22;;5182:201;5294:2;5279:18;;5308:65;5283:9;5346:6;5308:65;;5390:301;5528:2;5542:47;;;5513:18;;5603:78;5513:18;5667:6;5603:78;;5698:407;5889:2;5903:47;;;5874:18;;5964:131;5874:18;5964:131;;6112:407;6303:2;6317:47;;;6288:18;;6378:131;6288:18;6378:131;;6526:407;6717:2;6731:47;;;6702:18;;6792:131;6702:18;6792:131;;6940:407;7131:2;7145:47;;;7116:18;;7206:131;7116:18;7206:131;;7354:407;7545:2;7559:47;;;7530:18;;7620:131;7530:18;7620:131;;7768:407;7959:2;7973:47;;;7944:18;;8034:131;7944:18;8034:131;;8182:213;8300:2;8285:18;;8314:71;8289:9;8358:6;8314:71;;8402:205;8516:2;8501:18;;8530:67;8505:9;8570:6;8530:67;;8614:122;8702:12;;8673:63;8744:163;8847:19;;;8896:4;8887:14;;8840:67;8915:91;;8977:24;8995:5;8977:24;;9013:85;9079:13;9072:21;;9055:43;9105:121;9178:42;9167:54;;9150:76;9233:72;9295:5;9278:27;9312:81;9383:4;9372:16;;9355:38;9401:268;9466:1;9473:101;9487:6;9484:1;9481:13;9473:101;;;9554:11;;;9548:18;9535:11;;;9528:39;9509:2;9502:10;9473:101;;;9589:6;9586:1;9583:13;9580:2;;;9654:1;9645:6;9640:3;9636:16;9629:27;9580:2;9450:219;;;;;9677:97;9765:2;9745:14;9761:7;9741:28;;9725:49;9782:117;9851:24;9869:5;9851:24;;;9844:5;9841:35;9831:2;;9890:1;9887;9880:12;9906:111;9972:21;9987:5;9972:21;;10024:117;10093:24;10111:5;10093:24;",
"source": "/*\n\n Copyright 2019 dYdX Trading Inc.\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 { SafeMath } from \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport { IERC20Detailed } from \"../protocol/interfaces/IERC20Detailed.sol\";\n\n\ncontract TestToken is IERC20Detailed {\n using SafeMath for uint256;\n\n uint256 supply;\n mapping(address => uint256) balances;\n mapping(address => mapping(address => uint256)) allowed;\n bool public shouldRevertNameCall;\n\n event Issue(address indexed token, address indexed owner, uint256 value);\n\n // Allow anyone to get new token\n function issue(uint256 amount) public {\n issueTo(msg.sender, amount);\n }\n\n function setBalance(address _target, uint256 _value) public {\n balances[_target] = _value;\n emit Transfer(address(0x0), _target, _value);\n }\n\n function setShouldRevertNameCall(bool _shouldRevertNameCall) public {\n shouldRevertNameCall = _shouldRevertNameCall;\n }\n\n function addBalance(\n address _target,\n uint256 _value\n )\n public\n {\n uint256 currBalance = balanceOf(_target);\n require(_value + currBalance >= currBalance, \"INVALID_VALUE\");\n balances[_target] = currBalance.add(_value);\n supply = supply.add(_value);\n emit Transfer(address(0x0), _target, _value);\n }\n\n function issueTo(address who, uint256 amount) public {\n supply = supply.add(amount);\n balances[who] = balances[who].add(amount);\n emit Issue(address(this), who, amount);\n }\n\n function totalSupply() public view returns (uint256) {\n return supply;\n }\n\n function balanceOf(address who) public view returns (uint256) {\n return balances[who];\n }\n\n function allowance(address owner, address spender) public view returns (uint256) {\n return allowed[owner][spender];\n }\n\n function symbol() public view returns (string memory) {\n return \"TEST\";\n }\n\n function name() public view returns (string memory) {\n if (shouldRevertNameCall) {\n revert(\"TestToken: name call reverted\");\n }\n return \"Test Token\";\n }\n\n function decimals() public view returns (uint8) {\n return 18;\n }\n\n function transfer(address to, uint256 value) public returns (bool) {\n require(balances[msg.sender] >= value, \"Token: Transfer failed\");\n\n balances[msg.sender] = balances[msg.sender].sub(value);\n balances[to] = balances[to].add(value);\n emit Transfer(\n msg.sender,\n to,\n value\n );\n return true;\n }\n\n function transferFrom(address from, address to, uint256 value) public returns (bool) {\n require(balances[from] >= value, \"#transferFrom: INSUFFICIENT_BALANCE\");\n require(allowed[from][msg.sender] >= value, \"#transferFrom: INSUFFICIENT_ALLOWANCE\");\n\n balances[to] = balances[to].add(value);\n balances[from] = balances[from].sub(value);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(value);\n emit Transfer(\n from,\n to,\n value\n );\n return true;\n }\n\n function approve(address spender, uint256 value) public returns (bool) {\n allowed[msg.sender][spender] = value;\n emit Approval(\n msg.sender,\n spender,\n value\n );\n return true;\n }\n}\n",
"sourcePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestToken.sol",
"ast": {
"absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestToken.sol",
"exportedSymbols": {
"TestToken": [
36716
]
},
"id": 36717,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 36330,
"literals": [
"solidity",
"^",
"0.5",
".7"
],
"nodeType": "PragmaDirective",
"src": "603:23:139"
},
{
"id": 36331,
"literals": [
"experimental",
"ABIEncoderV2"
],
"nodeType": "PragmaDirective",
"src": "627:33:139"
},
{
"absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
"file": "@openzeppelin/contracts/math/SafeMath.sol",
"id": 36333,
"nodeType": "ImportDirective",
"scope": 36717,
"sourceUnit": 37366,
"src": "662:69:139",
"symbolAliases": [
{
"foreign": 36332,
"local": null
}
],
"unitAlias": ""
},
{
"absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol",
"file": "../protocol/interfaces/IERC20Detailed.sol",
"id": 36335,
"nodeType": "ImportDirective",
"scope": 36717,
"sourceUnit": 24716,
"src": "732:75:139",
"symbolAliases": [
{
"foreign": 36334,
"local": null
}
],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 36336,
"name": "IERC20Detailed",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 24715,
"src": "832:14:139",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC20Detailed_$24715",
"typeString": "contract IERC20Detailed"
}
},
"id": 36337,
"nodeType": "InheritanceSpecifier",
"src": "832:14:139"
}
],
"contractDependencies": [
24715,
37552
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 36716,
"linearizedBaseContracts": [
36716,
24715,
37552
],
"name": "TestToken",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 36340,
"libraryName": {
"contractScope": null,
"id": 36338,
"name": "SafeMath",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 37365,
"src": "859:8:139",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SafeMath_$37365",
"typeString": "library SafeMath"
}
},
"nodeType": "UsingForDirective",
"src": "853:27:139",
"typeName": {
"id": 36339,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "872:7:139",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"constant": false,
"id": 36342,
"name": "supply",
"nodeType": "VariableDeclaration",
"scope": 36716,
"src": "886:14:139",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 36341,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "886:7:139",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 36346,
"name": "balances",
"nodeType": "VariableDeclaration",
"scope": 36716,
"src": "906:36:139",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"typeName": {
"id": 36345,
"keyType": {
"id": 36343,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "914:7:139",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "906:27:139",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 36344,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "925:7:139",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 36352,
"name": "allowed",
"nodeType": "VariableDeclaration",
"scope": 36716,
"src": "948:55:139",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
},
"typeName": {
"id": 36351,
"keyType": {
"id": 36347,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "956:7:139",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "948:47:139",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
},
"valueType": {
"id": 36350,
"keyType": {
"id": 36348,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "975:7:139",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "967:27:139",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 36349,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "986:7:139",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 36354,
"name": "shouldRevertNameCall",
"nodeType": "VariableDeclaration",
"scope": 36716,
"src": "1009:32:139",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 36353,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1009:4:139",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
"id": 36362,
"name": "Issue",
"nodeType": "EventDefinition",
"parameters": {
"id": 36361,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 36356,
"indexed": true,
"name": "token",
"nodeType": "VariableDeclaration",
"scope": 36362,