@dolomite-exchange/dolomite-margin
Version:
Ethereum Smart Contracts and TypeScript library used for the DolomiteMargin trading protocol
558 lines (557 loc) • 164 kB
JSON
{
"contractName": "TestCallee",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "dolomiteMargin",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "accountOwner",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "accountNumber",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "accountData",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "senderData",
"type": "uint256"
}
],
"name": "Called",
"type": "event"
},
{
"constant": true,
"inputs": [],
"name": "DOLOMITE_MARGIN",
"outputs": [
{
"internalType": "contract IDolomiteMargin",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "accountData",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "senderData",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "number",
"type": "uint256"
}
],
"internalType": "struct Account.Info",
"name": "account",
"type": "tuple"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "callFunction",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dolomiteMargin\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"accountOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"accountNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"accountData\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"senderData\",\"type\":\"uint256\"}],\"name\":\"Called\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_MARGIN\",\"outputs\":[{\"internalType\":\"contract IDolomiteMargin\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"accountData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"callFunction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"senderData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"dYdX * ICallee for testing\",\"methods\":{},\"title\":\"TestCallee\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/testing/TestCallee.sol\":\"TestCallee\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/helpers/OnlyDolomiteMargin.sol\":{\"keccak256\":\"0xe40babc0a6dd2a767d76f3e0f0a22de124c4c480f2b2227a7b924b44e57526ea\",\"urls\":[\"bzz-raw://458f7f1f16eacd4faae597090503dc1e58446e9d371640c77b2e01e3e3113f17\",\"dweb:/ipfs/QmXqTG4sWJeDh5XA286KarbqHT4qJ7m3dphS16enpqtQiX\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IAccountRiskOverrideSetter.sol\":{\"keccak256\":\"0x5b9fde139ddfdaae7b650b3c3f6699e0e44605f0d9d3daadc1622eb06ad4c3f8\",\"urls\":[\"bzz-raw://2dfd5af24b6de63f94519c99fd8777a264d7cd11266fa2d525c7d72d96a9c7cf\",\"dweb:/ipfs/QmPg9fjhbnmBayZMh6yTG79xsK1PWSoAHA5pfwSXfnKKjF\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IAutoTrader.sol\":{\"keccak256\":\"0x123b5d92696b180c60a838d3117a9fd571851911f37c78212969015e169e14fc\",\"urls\":[\"bzz-raw://cd5d9aeb5b4e3de18ac8a51a3b2320f3e7a247b959defa9c289ee6aaf2bfc348\",\"dweb:/ipfs/QmPdjeya5BDYHEUMuz6jiwZrKJa8p2uN1vumLAJ7nhG5cN\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/ICallee.sol\":{\"keccak256\":\"0x0b65209369307041e67c28634fc17a19e953199ac42a88198b76578f7fa9b0f8\",\"urls\":[\"bzz-raw://46618851882c2bc5a6212bb0a8ad095e0f38049f24ecf404163ad6b493c728a1\",\"dweb:/ipfs/QmRx4VabTaXTGSyMt8NCTZ7nMiWCHfrvqZjRaKNRir3zEe\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IDolomiteMargin.sol\":{\"keccak256\":\"0x7e86ed1ed04dc205245db9f4e7cf7cca60c3bfc46c57ade8129a463780647967\",\"urls\":[\"bzz-raw://f8fbd85afd334c12bdccbb6523ebea9172b27b7b4b132c4a48b4b4dd03ceeb2b\",\"dweb:/ipfs/QmU1srfSqBTz3kw7oz1KEzfTUJvphZiE4K8MRZcy9uJjv1\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IOracleSentinel.sol\":{\"keccak256\":\"0xa94499fda55ef112640daed2cb1d06062e72c51c7b925c323b4e0ffa9b456ce5\",\"urls\":[\"bzz-raw://18b4a16acac577590a57f34f7ec6583e3cb35f575c948abb928b308d29cac1ab\",\"dweb:/ipfs/QmR1jLkzj6w7SjrdZ7GVW4V2vofSdMJwzjTqKpeUKABvxu\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x2059276ea5e478bd5ac7f2712e7b1b6c85d291c647a54b264909044844828e67\",\"urls\":[\"bzz-raw://f153777051d12131b13a57e5c3af10a2670927cfc7d22c9519ab20c9b4b9bc89\",\"dweb:/ipfs/QmQMP3qS5xDAVGYKDfNkbkSqBKozQGQsGqX4e8VyjRtxPS\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x7b2fcf441c034952dd042b6c8b20b148359db771e7c9ac07d06369560a9f0301\",\"urls\":[\"bzz-raw://84665ee4a780360fe6160d197ba98f0bf0ab0d7c6ad87bfed6226bf2f88d8d30\",\"dweb:/ipfs/QmRDfRdAd8hSXeu4SAeeYKkKoXBhStu7n4uReYBce2JD5Z\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x6d9a641163b2dd25e648c65f5d9e4949a57938e29ddc4c9dddefd74a9964aeef\",\"urls\":[\"bzz-raw://67e5a04ed4055faafbc100d6ccca9c54448ed378a1a8c71171562edda7bcbf7c\",\"dweb:/ipfs/QmYRikK3Xbgiq3UBJkgoo2zNUSSrShVabpRHmQj6iQHhrc\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0xe57c80a7621a77fcb2acb9f883fb5248e71a6dce03bc2db56df0db3fee332950\",\"urls\":[\"bzz-raw://28e221c04629674490b9a0041d4f9a5f15e669dc0cc192a5df6e2c701c36369f\",\"dweb:/ipfs/QmaL3oh8c7v9cx91pB175pyCEuzxnhNTab4UxmBMsDYfUx\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0xd9a348c2b1eec076609ba12bbec6b9c2e4ea135790a7ef4f5411feb050af2144\",\"urls\":[\"bzz-raw://d5bcff29e47d5cd02d7a9966e9f44c46ccbb4f0e4adfc4b0b86646880677db39\",\"dweb:/ipfs/QmRKfJD4FFM1AvTynSFNx1NcDg94o9SAcjz7dvMaJCfecp\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/DolomiteMarginMath.sol\":{\"keccak256\":\"0x53f205f6a779d579be29faa9412c806a892b3e605fff092dfd9d14d936fa019f\",\"urls\":[\"bzz-raw://0ff936f89602a63b8e6a4eb4ce8f87673c0f45b7ce29694920905a3f0b5a6a69\",\"dweb:/ipfs/QmbYME9BeEvPC1ndV8EaUDX5fDMghLc3rocNUxFtgHmg8m\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x41a3460e34b7b8635d936e35e6568ceb5354b638f53b884530e0d4875fa0f151\",\"urls\":[\"bzz-raw://d1a5ba866ee95d455afe5075dadd91fc71c2806371f2c1b358a1f67c632bb0df\",\"dweb:/ipfs/QmW4qCjmsG8J3UJv97GwDLDM7wt1K4yLDKAwzWMY7TFYi5\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x141a0ecb4a746f0e5767df4b99dbe33c6362df507ae9d5c02da1c1c17bc26df3\",\"urls\":[\"bzz-raw://9ff03e64a8ce5231acde07788624bf8c7a8ff55d90b157fa32f62fa887a0eff0\",\"dweb:/ipfs/QmUVxxWeE954RDXbmHJAYnHsXcit6rSXGqZUigu8t9oH2z\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0x05a2a90b41b6a5f42f0a72da63d015fb0b406a9ba2172823352e522e8bf3a606\",\"urls\":[\"bzz-raw://19883f0c6d33266f756ec5c3d17539524aa24b993c46c33f8400801d09373a6c\",\"dweb:/ipfs/QmYX2fwK3vQQDSZLMrc5wMfeb8RWrcC9CGX8XECLty8QDk\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0x9c27f3cd52af28c9b6bca18097b1793f114d08284d78417467d0d05f67e9e2a9\",\"urls\":[\"bzz-raw://d1ed0e7a7f76d59f30572996d4e164ab8fb5b2ec4bfca127983f9e936b904813\",\"dweb:/ipfs/QmePVYbgrY8Yw3Vf76pmEvE9pX916Jaa9we4kjM8tGM4J1\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x87ee8d3c1d6e315a116426d8c8fc6f083e220fd14dda27fad4e8d7cab3dc7305\",\"urls\":[\"bzz-raw://7c20f2c52da682c3b5917fb6a19e81f43699b1d13c62b569ed723f34da72e766\",\"dweb:/ipfs/QmbXWYXi67nHBVNDKYUpo2E9ZaEVcHLvmXQkpYLMm1d5Vm\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0x095b5f8eb3665f6e246200311efc8a654fa3e90f9a1a522e27a4d089e8ab3917\",\"urls\":[\"bzz-raw://5db812b752a03d601d424e6e21be38153477082af0acf51b5c98eefa5553ed18\",\"dweb:/ipfs/QmbE549QUXYTurpx8hSMLBJvuBpfYqyNE6FBCgHJDY8PLf\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xe1bab8c8799d83e86c7a49aaf815d8e3bc8d09562d46d44d921500db5e98de0e\",\"urls\":[\"bzz-raw://8ea3d0cc4fdab6dd9bba545a792170f939b342d8d1a7051c1c6365009af72658\",\"dweb:/ipfs/QmaLJgbavu88eEit6JPqfWnw6NmGBDZfveMXxumgWywBFG\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/testing/TestCallee.sol\":{\"keccak256\":\"0xd5c123a1505d236f935567b9cebd380153a05967ddbe5a29ee548e24138dbde3\",\"urls\":[\"bzz-raw://096c86be334c44873b9600bb94cd4a4e367b817b263b534646e7ffbbdb1944b2\",\"dweb:/ipfs/QmZSBNfL5EEdwvc5WsG8KuoxzUC74sHW4TYvweBbKVRWRC\"]},\"@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": "0x608060405234801561001057600080fd5b50604051610c05380380610c0583398101604081905261002f91610065565b600080546001600160a01b0319166001600160a01b03929092169190911790556100b3565b805161005f8161009c565b92915050565b60006020828403121561007757600080fd5b60006100838484610054565b949350505050565b60006001600160a01b03821661005f565b6100a58161008b565b81146100b057600080fd5b50565b610b43806100c26000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806315c14a4a146100515780632137c0e51461006f5780638b4187131461008f578063b33b9cc0146100a4575b600080fd5b6100596100b7565b604051610066919061092e565b60405180910390f35b61008261007d3660046107a8565b6100d3565b6040516100669190610954565b6100a261009d366004610743565b6100f0565b005b6100826100b236600461071d565b61022a565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600160209081526000928352604080842090915290825290205481565b60005433906101599073ffffffffffffffffffffffffffffffffffffffff1682147f4f6e6c79446f6c6f6d6974654d617267696e00000000000000000000000000007f4f6e6c7920446f6c6f6d6974652063616e2063616c6c2066756e6374696f6e008461023c565b60008061016584610341565b91509150846000015173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f4c3c182d38f9efecd4bc09ba9ff16cf39e0b4c71b7f0286d0306f9ef91a5a6a8876020015185856040516101d293929190610962565b60405180910390a3845173ffffffffffffffffffffffffffffffffffffffff90811660009081526001602090815260408083209882015183529781528782209490945596168652600290915292909320919091555050565b60026020526000908152604090205481565b8361033b5761024a836103a4565b7f3a20000000000000000000000000000000000000000000000000000000000000610274846103a4565b7f203c00000000000000000000000000000000000000000000000000000000000061029e8561047e565b6040516102d49594939291907f3e00000000000000000000000000000000000000000000000000000000000000906020016108d0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526103329160040161093c565b60405180910390fd5b50505050565b60008061039383516040147f5465737443616c6c6565000000000000000000000000000000000000000000007f43616c6c206461746120696e76616c6964206c656e67746800000000000000006105f5565b505060208101516040820151915091565b606080826040516020016103b8919061088a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b80156104615781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091019082908290811061042457fe5b01602001517fff00000000000000000000000000000000000000000000000000000000000000161561045c5760010181529050610479565b6103eb565b5060408051600080825260208201909252905b509150505b919050565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b816000815181106104ca57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b8160018151811061050b57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b60148110156104745760028102610556600f8516610644565b83826029038151811061056557fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c93506105a7600f8516610644565b8382602803815181106105b657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c9160010161053d565b8261063f57610603826103a4565b7f3a2000000000000000000000000000000000000000000000000000000000000061062d836103a4565b6040516020016102d49392919061089f565b505050565b6000600a82101561065c57506030810160f81b610479565b5060570160f81b90565b803561067181610ae0565b92915050565b600082601f83011261068857600080fd5b813561069b610696826109b1565b61098a565b915080825260208301602083018583830111156106b757600080fd5b6106c2838284610a80565b50505092915050565b6000604082840312156106dd57600080fd5b6106e7604061098a565b905060006106f58484610666565b825250602061070684848301610712565b60208301525092915050565b803561067181610af7565b60006020828403121561072f57600080fd5b600061073b8484610666565b949350505050565b60008060006080848603121561075857600080fd5b60006107648686610666565b9350506020610775868287016106cb565b925050606084013567ffffffffffffffff81111561079257600080fd5b61079e86828701610677565b9150509250925092565b600080604083850312156107bb57600080fd5b60006107c78585610666565b92505060206107d885828601610712565b9150509250929050565b6107f36107ee82610a0f565b610a59565b82525050565b6107f36107ee82610a34565b6107f36107ee82610a59565b600061081c826109f7565b6108268185610479565b9350610836818560208601610a8c565b9290920192915050565b6107f381610a75565b6000610854826109f7565b61085e81856109fb565b935061086e818560208601610a8c565b61087781610ab8565b9093019392505050565b6107f381610a59565b60006108968284610805565b50602001919050565b60006108ab8286610811565b91506108b782856107f9565b6002820191506108c78284610811565b95945050505050565b60006108dc8289610811565b91506108e882886107f9565b6002820191506108f88287610811565b915061090482866107f9565b6002820191506109148285610811565b915061092082846107e2565b506001019695505050505050565b602081016106718284610840565b6020808252810161094d8184610849565b9392505050565b602081016106718284610881565b606081016109708286610881565b61097d6020830185610881565b61073b6040830184610881565b60405181810167ffffffffffffffff811182821017156109a957600080fd5b604052919050565b600067ffffffffffffffff8211156109c857600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b90815260200190565b600061067182610a5c565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b600061067182610a04565b82818337506000910152565b60005b83811015610aa7578181015183820152602001610a8f565b8381111561033b5750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b610ae981610a04565b8114610af457600080fd5b50565b610ae981610a5956fea365627a7a72315820f17bdc5ed05ad109cccb62f91f52d7a2891d9e89c08501fee69490f303e10ffb6c6578706572696d656e74616cf564736f6c63430005100040",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806315c14a4a146100515780632137c0e51461006f5780638b4187131461008f578063b33b9cc0146100a4575b600080fd5b6100596100b7565b604051610066919061092e565b60405180910390f35b61008261007d3660046107a8565b6100d3565b6040516100669190610954565b6100a261009d366004610743565b6100f0565b005b6100826100b236600461071d565b61022a565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600160209081526000928352604080842090915290825290205481565b60005433906101599073ffffffffffffffffffffffffffffffffffffffff1682147f4f6e6c79446f6c6f6d6974654d617267696e00000000000000000000000000007f4f6e6c7920446f6c6f6d6974652063616e2063616c6c2066756e6374696f6e008461023c565b60008061016584610341565b91509150846000015173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f4c3c182d38f9efecd4bc09ba9ff16cf39e0b4c71b7f0286d0306f9ef91a5a6a8876020015185856040516101d293929190610962565b60405180910390a3845173ffffffffffffffffffffffffffffffffffffffff90811660009081526001602090815260408083209882015183529781528782209490945596168652600290915292909320919091555050565b60026020526000908152604090205481565b8361033b5761024a836103a4565b7f3a20000000000000000000000000000000000000000000000000000000000000610274846103a4565b7f203c00000000000000000000000000000000000000000000000000000000000061029e8561047e565b6040516102d49594939291907f3e00000000000000000000000000000000000000000000000000000000000000906020016108d0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526103329160040161093c565b60405180910390fd5b50505050565b60008061039383516040147f5465737443616c6c6565000000000000000000000000000000000000000000007f43616c6c206461746120696e76616c6964206c656e67746800000000000000006105f5565b505060208101516040820151915091565b606080826040516020016103b8919061088a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b80156104615781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091019082908290811061042457fe5b01602001517fff00000000000000000000000000000000000000000000000000000000000000161561045c5760010181529050610479565b6103eb565b5060408051600080825260208201909252905b509150505b919050565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b816000815181106104ca57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b8160018151811061050b57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b60148110156104745760028102610556600f8516610644565b83826029038151811061056557fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c93506105a7600f8516610644565b8382602803815181106105b657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c9160010161053d565b8261063f57610603826103a4565b7f3a2000000000000000000000000000000000000000000000000000000000000061062d836103a4565b6040516020016102d49392919061089f565b505050565b6000600a82101561065c57506030810160f81b610479565b5060570160f81b90565b803561067181610ae0565b92915050565b600082601f83011261068857600080fd5b813561069b610696826109b1565b61098a565b915080825260208301602083018583830111156106b757600080fd5b6106c2838284610a80565b50505092915050565b6000604082840312156106dd57600080fd5b6106e7604061098a565b905060006106f58484610666565b825250602061070684848301610712565b60208301525092915050565b803561067181610af7565b60006020828403121561072f57600080fd5b600061073b8484610666565b949350505050565b60008060006080848603121561075857600080fd5b60006107648686610666565b9350506020610775868287016106cb565b925050606084013567ffffffffffffffff81111561079257600080fd5b61079e86828701610677565b9150509250925092565b600080604083850312156107bb57600080fd5b60006107c78585610666565b92505060206107d885828601610712565b9150509250929050565b6107f36107ee82610a0f565b610a59565b82525050565b6107f36107ee82610a34565b6107f36107ee82610a59565b600061081c826109f7565b6108268185610479565b9350610836818560208601610a8c565b9290920192915050565b6107f381610a75565b6000610854826109f7565b61085e81856109fb565b935061086e818560208601610a8c565b61087781610ab8565b9093019392505050565b6107f381610a59565b60006108968284610805565b50602001919050565b60006108ab8286610811565b91506108b782856107f9565b6002820191506108c78284610811565b95945050505050565b60006108dc8289610811565b91506108e882886107f9565b6002820191506108f88287610811565b915061090482866107f9565b6002820191506109148285610811565b915061092082846107e2565b506001019695505050505050565b602081016106718284610840565b6020808252810161094d8184610849565b9392505050565b602081016106718284610881565b606081016109708286610881565b61097d6020830185610881565b61073b6040830184610881565b60405181810167ffffffffffffffff811182821017156109a957600080fd5b604052919050565b600067ffffffffffffffff8211156109c857600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b90815260200190565b600061067182610a5c565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b600061067182610a04565b82818337506000910152565b60005b83811015610aa7578181015183820152602001610a8f565b8381111561033b5750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b610ae981610a04565b8114610af457600080fd5b50565b610ae981610a5956fea365627a7a72315820f17bdc5ed05ad109cccb62f91f52d7a2891d9e89c08501fee69490f303e10ffb6c6578706572696d656e74616cf564736f6c63430005100040",
"sourceMap": "1058:1976:113:-;;;1711:114;8:9:-1;5:2;;;30:1;27;20:12;5:2;1711:114:113;;;;;;;;;;;;;;;;;;;;;1302:15:6;:50;;-1:-1:-1;;;;;;1302:50:6;-1:-1:-1;;;;;1302:50:6;;;;;;;;;;1058:1976:113;;5:134:-1;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:263;;261:2;249:9;240:7;236:23;232:32;229:2;;;277:1;274;267:12;229:2;312:1;329:64;385:7;365:9;329:64;;;319:74;223:186;-1:-1;;;;223:186;416:91;;-1:-1;;;;;576:54;;478:24;559:76;642:117;711:24;729:5;711:24;;;704:5;701:35;691:2;;750:1;747;740:12;691:2;685:74;;;1058:1976:113;;;;;;",
"deployedSourceMap": "1058:1976:113:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1058:1976:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1130:38:6;;;:::i;:::-;;;;;;;;;;;;;;;;1515:68:113;;;;;;;;;:::i;:::-;;;;;;;;1883:515;;;;;;;;;:::i;:::-;;1612:46;;;;;;;;;:::i;1130:38:6:-;;;;;;:::o;1515:68:113:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1883:515::-;1505:15:6;;2041:10:113;;1462:153:6;;1505:15;;1488:33;;1535:4;1462:153;2041:10:113;1462:12:6;:153::i;:::-;2081:13:113;2108;2134:15;2144:4;2134:9;:15::i;:::-;2067:82;;;;2205:7;:13;;;2165:129;;2185:6;2165:129;;;2232:7;:14;;;2260:5;2279;2165:129;;;;;;;;;;;;;;;;;2317:13;;2305:26;;;;;;;;:11;:26;;;;;;;;2332:14;;;;2305:42;;;;;;;;:50;;;;2365:18;;;;:10;:18;;;;;;;:26;;;;-1:-1:-1;;1883:515:113:o;1612:46::-;;;;;;;;;;;;;:::o;2962:561:99:-;3122:4;3117:400;;3236:24;3255:4;3236:18;:24::i;:::-;3286:5;3317:26;3336:6;3317:18;:26::i;:::-;3369:6;3401:19;3411:8;3401:9;:19::i;:::-;3194:280;;;;;;;;;3446:6;;3194:280;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;3194:280:99;;;;3142:364;;;;;;;;;;;;;;;;;3117:400;2962:561;;;;:::o;2456:576:113:-;2567:7;2588;2620:111;2646:4;:11;2661:2;2646:17;2677:4;2620:111;:12;:111::i;:::-;-1:-1:-1;;2904:2:113;2894:13;;2888:20;2946:2;2936:13;;2930:20;2456:576;;;:::o;6359:968:99:-;6463:12;6538:19;6577:5;6560:23;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;6560:23:99;;;;-1:-1:-1;49:4;6689:572:99;6710:6;;6689:572;;6962:9;;6864:3;;;;;6962:6;;6864:3;;6962:9;;;;;;;;;;;;:14;6958:293;;7017:1;7013:5;7143:22;;7150:6;-1:-1:-1;7223:13:99;;6958:293;6689:572;;;-1:-1:-1;7308:12:99;;;7318:1;7308:12;;;;;;;;;;;;7301:19;;;6359:968;;;;:::o;8252:958::-;8524:13;;;8534:2;8524:13;;;8346:12;8524:13;;;;;;8386:14;;;;8346:12;;8524:13;;;21:6:-1;;104:10;8524:13:99;87:34:-1;135:17;;-1:-1;8524:13:99;8502:35;;902:2;8601:23;;8589:6;8596:1;8589:9;;;;;;;;;;;:35;;;;;;;;;;;1010:3;8646:27;;8634:6;8641:1;8634:9;;;;;;;;;;;:39;;;;;;;;;;;8787:9;8782:398;8802:2;8798:1;:6;8782:398;;;8891:1;8887:5;;8984:23;1232:3;8989:17;;8984:4;:23::i;:::-;8963:6;8975:5;8970:2;:10;8963:18;;;;;;;;;;;:44;;;;;;;;;;;9030:1;9025;:6;;9021:10;;9122:23;1232:3;9127:1;:17;9122:4;:23::i;:::-;9101:6;9113:5;9108:2;:10;9101:18;;;;;;;;;;;:44;;;;;;;;;;-1:-1:-1;;9168:1:99;9163:6;;;;;8806:3;;8782:398;;1294:426;1428:4;1423:291;;1542:24;1561:4;1542:18;:24::i;:::-;1592:5;1623:26;1642:6;1623:18;:26::i;:::-;1500:171;;;;;;;;;;;1423:291;1294:426;;;:::o;10178:325::-;10267:4;10335:2;10327:5;:10;10323:79;;;-1:-1:-1;902:2:99;10371:18;;10360:31;;10353:38;;10323:79;-1:-1:-1;956:2:99;10467:27;10456:40;;;10178:325::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;;57:78;;;;;143:440;;244:3;237:4;229:6;225:17;221:27;211:2;;262:1;259;252:12;211:2;299:6;286:20;321:64;336:48;377:6;336:48;;;321:64;;;312:73;;405:6;398:5;391:21;441:4;433:6;429:17;474:4;467:5;463:16;509:3;500:6;495:3;491:16;488:25;485:2;;;526:1;523;516:12;485:2;536:41;570:6;565:3;560;536:41;;;204:379;;;;;;;;617:468;;729:4;717:9;712:3;708:19;704:30;701:2;;;747:1;744;737:12;701:2;765:20;780:4;765:20;;;756:29;-1:-1;836:1;868:49;913:3;893:9;868:49;;;843:75;;-1:-1;981:2;1014:49;1059:3;1035:22;;;1014:49;;;1007:4;1000:5;996:16;989:75;939:136;695:390;;;;;1092:130;1159:20;;1184:33;1159:20;1184:33;;1229:241;;1333:2;1321:9;1312:7;1308:23;1304:32;1301:2;;;1349:1;1346;1339:12;1301:2;1384:1;1401:53;1446:7;1426:9;1401:53;;;1391:63;1295:175;-1:-1;;;;1295:175;1477:642;;;;1647:3;1635:9;1626:7;1622:23;1618:33;1615:2;;;1664:1;1661;1654:12;1615:2;1699:1;1716:53;1761:7;1741:9;1716:53;;;1706:63;;1678:97;1806:2;1824:76;1892:7;1883:6;1872:9;1868:22;1824:76;;;1814:86;;1785:121;1965:2;1954:9;1950:18;1937:32;1989:18;1981:6;1978:30;1975:2;;;2021:1;2018;2011:12;1975:2;2041:62;2095:7;2086:6;2075:9;2071:22;2041:62;;;2031:72;;1916:193;1609:510;;;;;;2126:366;;;2247:2;2235:9;2226:7;2222:23;2218:32;2215:2;;;2263:1;2260;2253:12;2215:2;2298:1;2315:53;2360:7;2340:9;2315:53;;;2305:63;;2277:97;2405:2;2423:53;2468:7;2459:6;2448:9;2444:22;2423:53;;;2413:63;;2384:98;2209:283;;;;;;2499:148;2598:43;2617:23;2634:5;2617:23;;;2598:43;;;2593:3;2586:56;2580:67;;;2654:148;2753:43;2772:23;2789:5;2772:23;;2809:152;2910:45;2930:24;2948:5;2930:24;;2968:356;;3096:38;3128:5;3096:38;;;3146:88;3227:6;3222:3;3146:88;;;3139:95;;3239:52;3284:6;3279:3;3272:4;3265:5;3261:16;3239:52;;;3303:16;;;;;3076:248;-1:-1;;3076:248;3331:176;3439:62;3495:5;3439:62;;3514:347;;3626:39;3659:5;3626:39;;;3677:71;3741:6;3736:3;3677:71;;;3670:78;;3753:52;3798:6;3793:3;3786:4;3779:5;3775:16;3753:52;;;3826:29;3848:6;3826:29;;;3817:39;;;;3606:255;-1:-1;;;3606:255;3868:113;3951:24;3969:5;3951:24;;3988:244;;4107:75;4178:3;4169:6;4107:75;;;-1:-1;4204:2;4195:12;;4095:137;-1:-1;4095:137;4239:553;;4455:93;4544:3;4535:6;4455:93;;;4448:100;;4559:73;4628:3;4619:6;4559:73;;;4654:1;4649:3;4645:11;4638:18;;4674:93;4763:3;4754:6;4674:93;;;4667:100;4436:356;-1:-1;;;;;4436:356;4799:978;;5113:93;5202:3;5193:6;5113:93;;;5106:100;;5217:73;5286:3;5277:6;5217:73;;;5312:1;5307:3;5303:11;5296:18;;5332:93;5421:3;5412:6;5332:93;;;5325:100;;5436:73;5505:3;5496:6;5436:73;;;5531:1;5526:3;5522:11;5515:18;;5551:93;5640:3;5631:6;5551:93;;;5544:100;;5655:73;5724:3;5715:6;5655:73;;;-1:-1;5750:1;5741:11;;5094:683;-1:-1;;;;;;5094:683;5784:263;5927:2;5912:18;;5941:96;5916:9;6010:6;5941:96;;6054:301;6192:2;6206:47;;;6177:18;;6267:78;6177:18;6331:6;6267:78;;;6259:86;6163:192;-1:-1;;;6163:192;6362:213;6480:2;6465:18;;6494:71;6469:9;6538:6;6494:71;;6582:435;6756:2;6741:18;;6770:71;6745:9;6814:6;6770:71;;;6852:72;6920:2;6909:9;6905:18;6896:6;6852:72;;;6935;7003:2;6992:9;6988:18;6979:6;6935:72;;7024:256;7086:2;7080:9;7112:17;;;7187:18;7172:34;;7208:22;;;7169:62;7166:2;;;7244:1;7241;7234:12;7166:2;7260;7253:22;7064:216;;-1:-1;7064:216;7287:321;;7430:18;7422:6;7419:30;7416:2;;;7462:1;7459;7452:12;7416:2;-1:-1;7593:4;7529;7506:17;;;;7525:9;7502:33;7583:15;;7353:255;7615:121;7702:12;;7673:63;8026:163;8129:19;;;8178:4;8169:14;;8122:67;8197:91;;8259:24;8277:5;8259:24;;8295:144;8367:66;8356:78;;8339:100;8446:144;8518:66;8507:78;;8490:100;8597:72;8659:5;8642:27;8676:121;8749:42;8738:54;;8721:76;8883:171;;8987:62;9043:5;8987:62;;9202:145;9283:6;9278:3;9273;9260:30;-1:-1;9339:1;9321:16;;9314:27;9253:94;9356:268;9421:1;9428:101;9442:6;9439:1;9436:13;9428:101;;;9509:11;;;9503:18;9490:11;;;9483:39;9464:2;9457:10;9428:101;;;9544:6;9541:1;9538:13;9535:2;;;-1:-1;;9609:1;9591:16;;9584:27;9405:219;9873:97;9961:2;9941:14;9957:7;9937:28;;9921:49;9978:117;10047:24;10065:5;10047:24;;;10040:5;10037:35;10027:2;;10086:1;10083;10076:12;10027:2;10021:74;;10102:117;10171:24;10189:5;10171: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 { OnlyDolomiteMargin } from \"../external/helpers/OnlyDolomiteMargin.sol\";\nimport { ICallee } from \"../protocol/interfaces/ICallee.sol\";\nimport { IAutoTrader } from \"../protocol/interfaces/IAutoTrader.sol\";\nimport { Account } from \"../protocol/lib/Account.sol\";\nimport { Require } from \"../protocol/lib/Require.sol\";\n\n\n/**\n * @title TestCallee\n * @author dYdX\n *\n * ICallee for testing\n */\ncontract TestCallee is\n ICallee,\n OnlyDolomiteMargin\n{\n // ============ Constants ============\n\n bytes32 private constant FILE = \"TestCallee\";\n\n // ============ Events ============\n\n event Called(\n address indexed sender,\n address indexed accountOwner,\n uint256 accountNumber,\n uint256 accountData,\n uint256 senderData\n );\n\n // ============ Storage ============\n\n // owner => number => data\n mapping (address => mapping (uint256 => uint256)) public accountData;\n\n // sender => data\n mapping (address => uint256) public senderData;\n\n // ============ Constructor ============\n\n constructor(\n address dolomiteMargin\n )\n public\n OnlyDolomiteMargin(dolomiteMargin)\n {}\n\n // ============ ICallee Functions ============\n\n function callFunction(\n address sender,\n Account.Info memory account,\n bytes memory data\n )\n public\n onlyDolomiteMargin(msg.sender)\n {\n (\n uint256 aData,\n uint256 sData\n ) = parseData(data);\n\n emit Called(\n sender,\n account.owner,\n account.number,\n aData,\n sData\n );\n\n accountData[account.owner][account.number] = aData;\n senderData[sender] = sData;\n }\n\n // ============ Private Functions ============\n\n function parseData(\n bytes memory data\n )\n private\n pure\n returns (\n uint256,\n uint256\n )\n {\n Require.that(\n data.length == 64,\n FILE,\n \"Call data invalid length\"\n );\n\n uint256 aData;\n uint256 sData;\n\n /* solium-disable-next-line security/no-inline-assembly */\n assembly {\n aData := mload(add(data, 32))\n sData := mload(add(data, 64))\n }\n\n return (\n aData,\n sData\n );\n }\n}\n",
"sourcePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/testing/TestCallee.sol",
"ast": {
"absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/testing/TestCallee.sol",
"exportedSymbols": {
"TestCallee": [
32941
]
},
"id": 32942,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 32811,
"literals": [
"solidity",
"^",
"0.5",
".7"
],
"nodeType": "PragmaDirective",
"src": "603:23:113"
},
{
"id": 32812,
"literals": [
"experimental",
"ABIEncoderV2"
],
"nodeType": "PragmaDirective",
"src": "627:33:113"
},
{
"absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/helpers/OnlyDolomiteMargin.sol",
"file": "../external/helpers/OnlyDolomiteMargin.sol",
"id": 32814,
"nodeType": "ImportDirective",
"scope": 32942,
"sourceUnit": 3067,
"src": "662:80:113",
"symbolAliases": [
{
"foreign": 32813,
"local": null
}
],
"unitAlias": ""
},
{
"absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/ICallee.sol",
"file": "../protocol/interfaces/ICallee.sol",
"id": 32816,
"nodeType": "ImportDirective",
"scope": 32942,
"sourceUnit": 24074,
"src": "743:61:113",
"symbolAliases": [
{
"foreign": 32815,
"local": null
}
],
"unitAlias": ""
},
{
"absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IAutoTrader.sol",
"file": "../protocol/interfaces/IAutoTrader.sol",
"id": 32818,
"nodeType": "ImportDirective",
"scope": 32942,
"sourceUnit": 24059,
"src": "805:69:113",
"symbolAliases": [
{
"foreign": 32817,
"local": null
}
],
"unitAlias": ""
},
{
"absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Account.sol",
"file": "../protocol/lib/Account.sol",
"id": 32820,
"nodeType": "ImportDirective",
"scope": 32942,
"sourceUnit": 24886,
"src": "875:54:113",
"symbolAliases": [
{
"foreign": 32819,
"local": null
}
],
"unitAlias": ""
},
{
"absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Require.sol",
"file": "../protocol/lib/Require.sol",
"id": 32822,
"nodeType": "ImportDirective",
"scope": 32942,
"sourceUnit": 28453,
"src": "930:54:113",
"symbolAliases": [
{
"foreign": 32821,
"local": null
}
],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 32823,
"name": "ICallee",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 24073,
"src": "1085:7:113",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ICallee_$24073",
"typeString": "contract ICallee"
}
},
"id": 32824,
"nodeType": "InheritanceSpecifier",
"src": "1085:7:113"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 32825,
"name": "OnlyDolomiteMargin",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3066,
"src": "1098:18:113",
"typeDescriptions": {
"typeIdentifier": "t_contract$_OnlyDolomiteMargin_$3066",
"typeString": "contract OnlyDolomiteMargin"
}
},
"id": 32826,
"nodeType": "InheritanceSpecifier",
"src": "1098:18:113"
}
],
"contractDependencies": [
3066,
24073
],
"contractKind": "contract",
"documentation": "@title TestCallee\n@author dYdX\n * ICallee for testing",
"fullyImplemented": true,
"id": 32941,
"linearizedBaseContracts": [
32941,
3066,
24073
],
"name": "TestCallee",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": true,
"id": 32829,
"name": "FILE",
"nodeType": "VariableDeclaration",
"scope": 32941,
"src": "1167:44:113",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 32827,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1167:7:113",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"argumentTypes": null,
"hexValue": "5465737443616c6c6565",
"id": 32828,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1199:12:113",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b8fe05e474259c1dc5079042a8c3dff9b6b2c67643868693313263e900c1db6d",
"typeString": "literal_string \"TestCallee\""
},
"value": "TestCallee"
},
"visibility": "private"
},
{
"anonymous": false,
"documentation": null,
"id": 32841,
"name": "Called",
"nodeType": "EventDefinition",
"parameters": {
"id": 32840,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 32831,
"indexed": true,
"name": "sender",
"nodeType": "VariableDeclaration",
"scope": 32841,
"src": "1281:22:113",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 32830,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1281:7:113",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 32833,
"indexed": true,
"name": "accountOwner",
"nodeType": "VariableDeclaration",
"scope": 32841,
"src": "1313:28:113",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 32832,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1313:7:113",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 32835,
"indexed": false,
"name": "accountNumber",
"nodeType": "VariableDeclaration",
"scope": 32841,
"src": "1351:21:113",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 32834,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1351:7:113",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 32837,
"indexed": false,
"name": "accountData",
"nodeType": "VariableDeclaration",
"scope": 32841,
"src": "1382:19:113",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 32836,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1382:7:113",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 32839,
"indexed": false,
"name": "senderData",
"nodeType": "VariableDeclaration",
"scope": 32841,
"src": "1411:18:113",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 32838,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1411:7:113",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1271:164:113"
},
"src": "1259:177:113"
},
{
"constant": false,
"id": 32847,
"name": "accountData",
"nodeType": "VariableDeclaration",
"scope": 32941,
"src": "1515:68:113",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(uint256 => uint256))"
},
"typeName": {
"id": 32846,
"keyType": {
"id": 32842,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1524:7:113",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "1515:49:113",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(uint256 => uint256))"
},
"valueType": {
"id": 32845,
"keyType": {
"id": 32843,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1544:7:113",