@dolomite-exchange/dolomite-margin
Version:
Ethereum Smart Contracts and TypeScript library used for the DolomiteMargin trading protocol
1,347 lines • 871 kB
JSON
{
"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