UNPKG

@dolomite-exchange/dolomite-margin

Version:

Ethereum Smart Contracts and TypeScript library used for the DolomiteMargin trading protocol

1,347 lines 871 kB
{ "contractName": "TestLib", "abi": [ { "constant": true, "inputs": [ { "internalType": "uint256", "name": "_accountIndex", "type": "uint256" } ], "name": "AccountMarginHelperIsMarginAccountWithIndex", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "number", "type": "uint256" } ], "internalType": "struct Account.Info", "name": "_account", "type": "tuple" } ], "name": "AccountMarginHelperIsMarginAccountWithStruct", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [], "name": "MarketCacheGetBeforeInitialized", "outputs": [], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [], "name": "MarketCacheGetAtIndexOOB", "outputs": [], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [], "name": "MarketCacheSetAfterAlreadyInitialized", "outputs": [], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "EnumerableSetAdd", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "EnumerableSetRemove", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "EnumerableSetContains", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "EnumerableSetLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bytes32", "name": "hash", "type": "bytes32" }, { "internalType": "bytes", "name": "signatureWithType", "type": "bytes" } ], "name": "TypedSignatureRecover", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "name": "MathGetPartial", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "name": "MathGetPartialRoundHalfUp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "name": "MathGetPartialRoundUp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "x", "type": "uint256" } ], "name": "MathTo128", "outputs": [ { "internalType": "uint128", "name": "", "type": "uint128" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "x", "type": "uint256" } ], "name": "MathTo112", "outputs": [ { "internalType": "uint112", "name": "", "type": "uint112" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "x", "type": "uint256" } ], "name": "MathTo32", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bytes32", "name": "reason", "type": "bytes32" } ], "name": "RequireThat0", "outputs": [], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bytes32", "name": "reason", "type": "bytes32" }, { "internalType": "uint256", "name": "payloadA", "type": "uint256" } ], "name": "RequireThat1", "outputs": [], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bytes32", "name": "reason", "type": "bytes32" }, { "internalType": "uint256", "name": "payloadA", "type": "uint256" }, { "internalType": "uint256", "name": "payloadB", "type": "uint256" } ], "name": "RequireThat2", "outputs": [], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bytes32", "name": "reason", "type": "bytes32" }, { "internalType": "address", "name": "payloadA", "type": "address" } ], "name": "RequireThatA0", "outputs": [], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bytes32", "name": "reason", "type": "bytes32" }, { "internalType": "address", "name": "payloadA", "type": "address" }, { "internalType": "uint256", "name": "payloadB", "type": "uint256" } ], "name": "RequireThatA1", "outputs": [], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bytes32", "name": "reason", "type": "bytes32" }, { "internalType": "address", "name": "payloadA", "type": "address" }, { "internalType": "uint256", "name": "payloadB", "type": "uint256" }, { "internalType": "uint256", "name": "payloadC", "type": "uint256" } ], "name": "RequireThatA2", "outputs": [], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bytes32", "name": "reason", "type": "bytes32" }, { "internalType": "bytes32", "name": "payloadA", "type": "bytes32" } ], "name": "RequireThatB0", "outputs": [], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bytes32", "name": "reason", "type": "bytes32" }, { "internalType": "bytes32", "name": "payloadA", "type": "bytes32" }, { "internalType": "uint256", "name": "payloadB", "type": "uint256" }, { "internalType": "uint256", "name": "payloadC", "type": "uint256" } ], "name": "RequireThatB2", "outputs": [], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bytes32", "name": "reason", "type": "bytes32" }, { "internalType": "bytes32", "name": "payloadA", "type": "bytes32" }, { "internalType": "uint256", "name": "payloadB", "type": "uint256" }, { "internalType": "uint256", "name": "payloadC", "type": "uint256" } ], "name": "RequireNotThatB2", "outputs": [], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [], "name": "TimeCurrentTime", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "TokenBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TokenTransfer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TokenTransferFrom", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "TypesZeroPar", "outputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint128", "name": "value", "type": "uint128" } ], "internalType": "struct Types.Par", "name": "", "type": "tuple" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint128", "name": "value", "type": "uint128" } ], "internalType": "struct Types.Par", "name": "a", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint128", "name": "value", "type": "uint128" } ], "internalType": "struct Types.Par", "name": "b", "type": "tuple" } ], "name": "TypesParSub", "outputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint128", "name": "value", "type": "uint128" } ], "internalType": "struct Types.Par", "name": "", "type": "tuple" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint128", "name": "value", "type": "uint128" } ], "internalType": "struct Types.Par", "name": "a", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint128", "name": "value", "type": "uint128" } ], "internalType": "struct Types.Par", "name": "b", "type": "tuple" } ], "name": "TypesParAdd", "outputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint128", "name": "value", "type": "uint128" } ], "internalType": "struct Types.Par", "name": "", "type": "tuple" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint128", "name": "value", "type": "uint128" } ], "internalType": "struct Types.Par", "name": "a", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint128", "name": "value", "type": "uint128" } ], "internalType": "struct Types.Par", "name": "b", "type": "tuple" } ], "name": "TypesParEquals", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint128", "name": "value", "type": "uint128" } ], "internalType": "struct Types.Par", "name": "a", "type": "tuple" } ], "name": "TypesParNegative", "outputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint128", "name": "value", "type": "uint128" } ], "internalType": "struct Types.Par", "name": "", "type": "tuple" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint128", "name": "value", "type": "uint128" } ], "internalType": "struct Types.Par", "name": "a", "type": "tuple" } ], "name": "TypesParIsNegative", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint128", "name": "value", "type": "uint128" } ], "internalType": "struct Types.Par", "name": "a", "type": "tuple" } ], "name": "TypesParIsPositive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint128", "name": "value", "type": "uint128" } ], "internalType": "struct Types.Par", "name": "a", "type": "tuple" } ], "name": "TypesParIsZero", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [], "name": "TypesZeroWei", "outputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.Wei", "name": "", "type": "tuple" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.Wei", "name": "a", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.Wei", "name": "b", "type": "tuple" } ], "name": "TypesWeiSub", "outputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.Wei", "name": "", "type": "tuple" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.Wei", "name": "a", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.Wei", "name": "b", "type": "tuple" } ], "name": "TypesWeiAdd", "outputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.Wei", "name": "", "type": "tuple" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.Wei", "name": "a", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.Wei", "name": "b", "type": "tuple" } ], "name": "TypesWeiEquals", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.Wei", "name": "a", "type": "tuple" } ], "name": "TypesWeiNegative", "outputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.Wei", "name": "", "type": "tuple" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.Wei", "name": "a", "type": "tuple" } ], "name": "TypesWeiIsNegative", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.Wei", "name": "a", "type": "tuple" } ], "name": "TypesWeiIsPositive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.Wei", "name": "a", "type": "tuple" } ], "name": "TypesWeiIsZero", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "pure", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_accountIndex\",\"type\":\"uint256\"}],\"name\":\"AccountMarginHelperIsMarginAccountWithIndex\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"_account\",\"type\":\"tuple\"}],\"name\":\"AccountMarginHelperIsMarginAccountWithStruct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"EnumerableSetAdd\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"EnumerableSetContains\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"EnumerableSetLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"EnumerableSetRemove\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MarketCacheGetAtIndexOOB\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MarketCacheGetBeforeInitialized\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MarketCacheSetAfterAlreadyInitialized\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"target\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"name\":\"MathGetPartial\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"target\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"name\":\"MathGetPartialRoundHalfUp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"target\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"name\":\"MathGetPartialRoundUp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"MathTo112\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"\",\"type\":\"uint112\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"MathTo128\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"MathTo32\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"reason\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"payloadA\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payloadB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payloadC\",\"type\":\"uint256\"}],\"name\":\"RequireNotThatB2\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"reason\",\"type\":\"bytes32\"}],\"name\":\"RequireThat0\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"reason\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payloadA\",\"type\":\"uint256\"}],\"name\":\"RequireThat1\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"reason\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payloadA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payloadB\",\"type\":\"uint256\"}],\"name\":\"RequireThat2\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"reason\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"payloadA\",\"type\":\"address\"}],\"name\":\"RequireThatA0\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"reason\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"payloadA\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payloadB\",\"type\":\"uint256\"}],\"name\":\"RequireThatA1\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"reason\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"payloadA\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payloadB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payloadC\",\"type\":\"uint256\"}],\"name\":\"RequireThatA2\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"reason\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"payloadA\",\"type\":\"bytes32\"}],\"name\":\"RequireThatB0\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"reason\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"payloadA\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payloadB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payloadC\",\"type\":\"uint256\"}],\"name\":\"RequireThatB2\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"TimeCurrentTime\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"TokenBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signatureWithType\",\"type\":\"bytes\"}],\"name\":\"TypedSignatureRecover\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"a\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"b\",\"type\":\"tuple\"}],\"name\":\"TypesParAdd\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"a\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"b\",\"type\":\"tuple\"}],\"name\":\"TypesParEquals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"a\",\"type\":\"tuple\"}],\"name\":\"TypesParIsNegative\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"a\",\"type\":\"tuple\"}],\"name\":\"TypesParIsPositive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"a\",\"type\":\"tuple\"}],\"name\":\"TypesParIsZero\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"a\",\"type\":\"tuple\"}],\"name\":\"TypesParNegative\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"a\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"b\",\"type\":\"tuple\"}],\"name\":\"TypesParSub\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"a\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"b\",\"type\":\"tuple\"}],\"name\":\"TypesWeiAdd\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"a\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"b\",\"type\":\"tuple\"}],\"name\":\"TypesWeiEquals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"a\",\"type\":\"tuple\"}],\"name\":\"TypesWeiIsNegative\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"a\",\"type\":\"tuple\"}],\"name\":\"TypesWeiIsPositive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"a\",\"type\":\"tuple\"}],\"name\":\"TypesWeiIsZero\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"a\",\"type\":\"tuple\"}],\"name\":\"TypesWeiNegative\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"a\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"b\",\"type\":\"tuple\"}],\"name\":\"TypesWeiSub\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"TypesZeroPar\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"TypesZeroWei\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"dYdX * Contract for testing pure library functions\",\"methods\":{},\"title\":\"TestLib\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestLib.sol\":\"TestLib\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/AccountMarginLib.sol\":{\"keccak256\":\"0x89ae8f313e4049678e631e37b5be6997bfbe0e166ed7fd1950d3a5e92d5d5a7b\",\"urls\":[\"bzz-raw://4bd3b9451005677e94a0420e4a464f05e12fb1333a2233041dbdc10bf43deb30\",\"dweb:/ipfs/QmNT6XZipEpNVVJrKpXqcNH1mtzVqTe3kVXDQKFxV1WYSe\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/TypedSignature.sol\":{\"keccak256\":\"0x4b4eb5fd2869d6c410948f78163773442c11bc82e393307e41359bbdb21577bf\",\"urls\":[\"bzz-raw://9c9c3abae44173086bc08f5479fbc67151d5905f60e1032ec6f9e40f841f3365\",\"dweb:/ipfs/QmbsQRX3gmcpimjFEW5ULJVavHQtViyg7NSQ2Q8Qcu6F6V\"]},\"/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/protocol/lib/Account.sol\":{\"keccak256\":\"0x2059276ea5e478bd5ac7f2712e7b1b6c85d291c647a54b264909044844828e67\",\"urls\":[\"bzz-raw://f153777051d12131b13a57e5c3af10a2670927cfc7d22c9519ab20c9b4b9bc89\",\"dweb:/ipfs/QmQMP3qS5xDAVGYKDfNkbkSqBKozQGQsGqX4e8VyjRtxPS\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x6d9a641163b2