Skip to content

Commit 5389ff1

Browse files
committed
Fix an issue with the contract code when liquidating while being outside the liquidation price limits
1 parent d23a150 commit 5389ff1

19 files changed

+364
-381
lines changed

abi/ContractForDifference.json

Lines changed: 89 additions & 89 deletions
Large diffs are not rendered by default.

abi/ContractForDifferenceFactory.json

Lines changed: 28 additions & 34 deletions
Large diffs are not rendered by default.

abi/ContractForDifferenceLibrary.json

Lines changed: 10 additions & 10 deletions
Large diffs are not rendered by default.

abi/ContractForDifferenceProxy.json

Lines changed: 25 additions & 25 deletions
Large diffs are not rendered by default.

abi/ContractForDifferenceRegistry.json

Lines changed: 17 additions & 23 deletions
Large diffs are not rendered by default.

abi/DAIToken.json

Lines changed: 25 additions & 55 deletions
Large diffs are not rendered by default.

abi/DSProxy.json

Lines changed: 14 additions & 21 deletions
Large diffs are not rendered by default.

abi/DSProxyFactory.json

Lines changed: 9 additions & 9 deletions
Large diffs are not rendered by default.

abi/ForwardFactory.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,25 +38,25 @@
3838
"type": "function"
3939
}
4040
],
41-
"metadata": "{\"compiler\":{\"version\":\"0.5.6+commit.b259423e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_target\",\"type\":\"address\"}],\"name\":\"createForwarder\",\"outputs\":[{\"name\":\"fwdContract\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"forwarderAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"targetContract\",\"type\":\"address\"}],\"name\":\"LogForwarderDeployed\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{},\"notice\":\"Factory creating DELETECALL forwarding contracts.\\r * This implementation is from:\\r https://gist.github.com/izqui/7f904443e6d19c1ab52ec7f5ad46b3a8\\r\"}},\"settings\":{\"compilationTarget\":{\"/D/Users/Julien/Desktop/Work/0xFutures/protocol/contracts/ForwardFactory.sol\":\"ForwardFactory\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/D/Users/Julien/Desktop/Work/0xFutures/protocol/contracts/ForwardFactory.sol\":{\"keccak256\":\"0xb0c15f958b92ff2327342353a45d44fa7d67a9e5aeacfcf7cef27aa08aad8161\",\"urls\":[\"bzzr://443d355e483c722b1a4ea53f94359066d3f7900abc27e872fbdc76c69fc776f2\"]}},\"version\":1}",
42-
"bytecode": "0x608060405234801561001057600080fd5b50610160806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639193ba0b14610030575b600080fd5b6100566004803603602081101561004657600080fd5b50356001600160a01b0316610072565b604080516001600160a01b039092168252519081900360200190f35b6040517f602e600c600039602e6000f33660006000376101006000366000730000000000808252600160601b6001600160a01b03841602601b8301819052600160a81b6a5af41558576101006000f302602f8401819052600093909190603a8186f09450843b80156100e3576100e5565bfe5b5050604080516001600160a01b0380871682528716602082015281517fe3b17932c50c6e05c2f75f7e045a5fc54b3ac85ce2c29134028227ba28b7d73e929181900390910190a150505091905056fea165627a7a7230582010aaea625f3047ad4e9fdb0eae567d452b20532c9e81911832b7a488f8e2d4aa0029",
43-
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639193ba0b14610030575b600080fd5b6100566004803603602081101561004657600080fd5b50356001600160a01b0316610072565b604080516001600160a01b039092168252519081900360200190f35b6040517f602e600c600039602e6000f33660006000376101006000366000730000000000808252600160601b6001600160a01b03841602601b8301819052600160a81b6a5af41558576101006000f302602f8401819052600093909190603a8186f09450843b80156100e3576100e5565bfe5b5050604080516001600160a01b0380871682528716602082015281517fe3b17932c50c6e05c2f75f7e045a5fc54b3ac85ce2c29134028227ba28b7d73e929181900390910190a150505091905056fea165627a7a7230582010aaea625f3047ad4e9fdb0eae567d452b20532c9e81911832b7a488f8e2d4aa0029",
44-
"sourceMap": "196:1965:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;196:1965:1;;;;;;;",
45-
"deployedSourceMap": "196:1965:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;196:1965:1;;;;;;;;;;;;;;;;;;;314:1842;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;314:1842:1;-1:-1:-1;;;;;314:1842:1;;:::i;:::-;;;;-1:-1:-1;;;;;314:1842:1;;;;;;;;;;;;;;;1571:4;1565:11;1029:66;1665:24;;;-1:-1:-1;;;;;;;;1266:16:1;;:35;1792:4;1774:23;;1767:47;;;-1:-1:-1;;;;;1875:4:1;1857:23;;1850:35;;;372:19;;1143:66;;1266:35;1976:4;1565:11;372:19;1952:29;1937:44;-1:-1:-1;2033:24:1;;2058:20;;;;2026:52;;2058:20;2067:9;2026:52;-1:-1:-1;;2106:42:1;;;-1:-1:-1;;;;;2106:42:1;;;;;;;;;;;;;;;;;;;;;;;;314:1842;;;;;;:::o",
46-
"source": "pragma solidity ^0.5.0;\r\n\r\n/**\r\n * Factory creating DELETECALL forwarding contracts.\r\n *\r\n * This implementation is from:\r\n * https://gist.github.com/izqui/7f904443e6d19c1ab52ec7f5ad46b3a8\r\n */\r\ncontract ForwardFactory {\r\n\r\n event LogForwarderDeployed(address forwarderAddress, address targetContract);\r\n\r\n function createForwarder(address _target) public returns (address fwdContract) {\r\n /*\r\n Bytecode origin https://www.reddit.com/r/ethereum/comments/6ic49q/any_assembly_programmers_willing_to_write_a/dj5ceuw/\r\n\r\n CALLDATASIZE\r\n PUSH1 0x00\r\n PUSH1 0x00\r\n CALLDATACOPY\r\n PUSH2 0x1000\r\n PUSH1 0x00\r\n CALLDATASIZE\r\n PUSH1 0x00\r\n PUSH20 0xf00df00df00df00df00df00df00df00df00df00d // placeholder address\r\n GAS\r\n DELEGATE_CALL\r\n ISZERO\r\n PC\r\n JUMPI\r\n PUSH2 0x1000\r\n PUSH1 0x00\r\n RETURN\r\n */\r\n bytes32 b1 = 0x602e600c600039602e6000f33660006000376101006000366000730000000000; // length 27 bytes = 1b\r\n bytes32 b2 = 0x5af41558576101006000f3000000000000000000000000000000000000000000; // length 11 bytes\r\n\r\n uint256 shiftedAddress = uint256(_target) * ((2 ** 8) ** 12); // Shift address 12 bytes to the left\r\n\r\n /*\r\n * SOLIUM DISABLE no-inline-assembly error. How else to cheaply do this?\r\n */\r\n\r\n /* solium-disable security/no-inline-assembly */\r\n assembly {\r\n let contractCode := mload(0x40) // Find empty storage location using \"free memory pointer\"\r\n mstore(contractCode, b1) // We add the first part of the bytecode\r\n mstore(add(contractCode, 0x1b), shiftedAddress) // Add target address\r\n mstore(add(contractCode, 0x2f), b2) // Final part of bytecode\r\n fwdContract := create(0, contractCode, 0x3A) // total length 58 dec = 3a\r\n switch extcodesize(fwdContract) case 0 { invalid() }\r\n }\r\n\r\n emit LogForwarderDeployed(fwdContract, _target);\r\n }\r\n\r\n}\r\n",
47-
"sourcePath": "D:\\Users\\Julien\\Desktop\\Work\\0xFutures\\protocol\\contracts\\ForwardFactory.sol",
41+
"metadata": "{\"compiler\":{\"version\":\"0.5.6+commit.b259423e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_target\",\"type\":\"address\"}],\"name\":\"createForwarder\",\"outputs\":[{\"name\":\"fwdContract\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"forwarderAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"targetContract\",\"type\":\"address\"}],\"name\":\"LogForwarderDeployed\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{},\"notice\":\"Factory creating DELETECALL forwarding contracts. * This implementation is from: https://gist.github.com/izqui/7f904443e6d19c1ab52ec7f5ad46b3a8\"}},\"settings\":{\"compilationTarget\":{\"/Users/julien/Desktop/protocol/contracts/ForwardFactory.sol\":\"ForwardFactory\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/julien/Desktop/protocol/contracts/ForwardFactory.sol\":{\"keccak256\":\"0x658664b425aa52f40007ac2f1be1a1da9ec2239c4a42c3864b5cac108f002e0c\",\"urls\":[\"bzzr://6514d98ab20cd063f94b0d29810df5d212dd80dd09471f24de909f4fb07c6f36\"]}},\"version\":1}",
42+
"bytecode": "0x608060405234801561001057600080fd5b50610160806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639193ba0b14610030575b600080fd5b6100566004803603602081101561004657600080fd5b50356001600160a01b0316610072565b604080516001600160a01b039092168252519081900360200190f35b6040517f602e600c600039602e6000f33660006000376101006000366000730000000000808252600160601b6001600160a01b03841602601b8301819052600160a81b6a5af41558576101006000f302602f8401819052600093909190603a8186f09450843b80156100e3576100e5565bfe5b5050604080516001600160a01b0380871682528716602082015281517fe3b17932c50c6e05c2f75f7e045a5fc54b3ac85ce2c29134028227ba28b7d73e929181900390910190a150505091905056fea165627a7a7230582088986c82a98ed4e467afabf4e9d7876b6659dad58f48fb3b7e2062ec38c44b960029",
43+
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639193ba0b14610030575b600080fd5b6100566004803603602081101561004657600080fd5b50356001600160a01b0316610072565b604080516001600160a01b039092168252519081900360200190f35b6040517f602e600c600039602e6000f33660006000376101006000366000730000000000808252600160601b6001600160a01b03841602601b8301819052600160a81b6a5af41558576101006000f302602f8401819052600093909190603a8186f09450843b80156100e3576100e5565bfe5b5050604080516001600160a01b0380871682528716602082015281517fe3b17932c50c6e05c2f75f7e045a5fc54b3ac85ce2c29134028227ba28b7d73e929181900390910190a150505091905056fea165627a7a7230582088986c82a98ed4e467afabf4e9d7876b6659dad58f48fb3b7e2062ec38c44b960029",
44+
"sourceMap": "188:1917:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;188:1917:1;;;;;;;",
45+
"deployedSourceMap": "188:1917:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;188:1917:1;;;;;;;;;;;;;;;;;;;302:1800;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;302:1800:1;-1:-1:-1;;;;;302:1800:1;;:::i;:::-;;;;-1:-1:-1;;;;;302:1800:1;;;;;;;;;;;;;;;1526:4;1520:11;995:66;1619:24;;;-1:-1:-1;;;;;;;;1229:16:1;;:35;1745:4;1727:23;;1720:47;;;-1:-1:-1;;;;;1827:4:1;1809:23;;1802:35;;;360:19;;1108:66;;1229:35;1927:4;1520:11;360:19;1903:29;1888:44;-1:-1:-1;1983:24:1;;2008:20;;;;1976:52;;2008:20;2017:9;1976:52;-1:-1:-1;;2053:42:1;;;-1:-1:-1;;;;;2053:42:1;;;;;;;;;;;;;;;;;;;;;;;;302:1800;;;;;;:::o",
46+
"source": "pragma solidity ^0.5.0;\n\n/**\n * Factory creating DELETECALL forwarding contracts.\n *\n * This implementation is from:\n * https://gist.github.com/izqui/7f904443e6d19c1ab52ec7f5ad46b3a8\n */\ncontract ForwardFactory {\n\n event LogForwarderDeployed(address forwarderAddress, address targetContract);\n\n function createForwarder(address _target) public returns (address fwdContract) {\n /*\n Bytecode origin https://www.reddit.com/r/ethereum/comments/6ic49q/any_assembly_programmers_willing_to_write_a/dj5ceuw/\n\n CALLDATASIZE\n PUSH1 0x00\n PUSH1 0x00\n CALLDATACOPY\n PUSH2 0x1000\n PUSH1 0x00\n CALLDATASIZE\n PUSH1 0x00\n PUSH20 0xf00df00df00df00df00df00df00df00df00df00d // placeholder address\n GAS\n DELEGATE_CALL\n ISZERO\n PC\n JUMPI\n PUSH2 0x1000\n PUSH1 0x00\n RETURN\n */\n bytes32 b1 = 0x602e600c600039602e6000f33660006000376101006000366000730000000000; // length 27 bytes = 1b\n bytes32 b2 = 0x5af41558576101006000f3000000000000000000000000000000000000000000; // length 11 bytes\n\n uint256 shiftedAddress = uint256(_target) * ((2 ** 8) ** 12); // Shift address 12 bytes to the left\n\n /*\n * SOLIUM DISABLE no-inline-assembly error. How else to cheaply do this?\n */\n\n /* solium-disable security/no-inline-assembly */\n assembly {\n let contractCode := mload(0x40) // Find empty storage location using \"free memory pointer\"\n mstore(contractCode, b1) // We add the first part of the bytecode\n mstore(add(contractCode, 0x1b), shiftedAddress) // Add target address\n mstore(add(contractCode, 0x2f), b2) // Final part of bytecode\n fwdContract := create(0, contractCode, 0x3A) // total length 58 dec = 3a\n switch extcodesize(fwdContract) case 0 { invalid() }\n }\n\n emit LogForwarderDeployed(fwdContract, _target);\n }\n\n}\n",
47+
"sourcePath": "/Users/julien/Desktop/protocol/contracts/ForwardFactory.sol",
4848
"compiler": {
4949
"name": "solc",
5050
"version": "0.5.6+commit.b259423e.Emscripten.clang"
5151
},
5252
"networks": {},
53-
"schemaVersion": "3.0.8",
54-
"updatedAt": "2020-01-13T20:41:22.831Z",
53+
"schemaVersion": "3.0.20",
54+
"updatedAt": "2020-01-17T20:41:14.866Z",
5555
"devdoc": {
5656
"methods": {}
5757
},
5858
"userdoc": {
5959
"methods": {},
60-
"notice": "Factory creating DELETECALL forwarding contracts.\r * This implementation is from:\r https://gist.github.com/izqui/7f904443e6d19c1ab52ec7f5ad46b3a8\r"
60+
"notice": "Factory creating DELETECALL forwarding contracts. * This implementation is from: https://gist.github.com/izqui/7f904443e6d19c1ab52ec7f5ad46b3a8"
6161
}
6262
}

0 commit comments

Comments
 (0)