fix(transforms): handle immutable variables and inherited contract patterns#138
Merged
fix(transforms): handle immutable variables and inherited contract patterns#138
Conversation
…eration with tests
Contributor
Decompile Diff AnalysisStatistics (50 iterations)
Full Diff Output─── Storage ───
@@ -1,16 +1,21 @@
- uint256 public constant tokenContract = 0;
- uint256 public constant expectedAmount = 0;
- uint256 public constant unresolved_3d2691bc = 256;
- uint256 public constant unresolved_8677ab23 = 0;
+ bytes32 store_c;
+ bytes32 store_f;
+ bytes32 store_o;
+ bytes32 store_m;
+ bytes32 store_p;
+ bytes32 store_j;
+ bytes32 store_k;
+ bytes32 store_a;
+ bytes32 store_e;
+ uint256 public unresolved_7bb87963;
+ bytes32 store_h;
+ uint256 public unresolved_dddd10c7;
+ bool public unresolved_38803a3b;
+ uint256 public unresolved_bdbb068a;
+ bytes32 store_n;
+ uint256 public unresolved_a777a492;
+ bytes32 store_r;
+ bytes32 store_d;
- uint256 public unresolved_8bd03d0a;
- uint256 public executionDeadline;
- uint256 public bondAmount;
- bool public unresolved_308657d7;
- uint256 public totalBondsDeposited;
- uint256 public unresolved_d415b3f9;
- uint256 public currentRewardAmount;
- address public unresolved_1aa7c0ec;
-
- error InvalidRLPList();
+ error CustomError_00000000();
─── Function Unresolved_ede7f6a3 (0xede7f6a3 → 0xf7e0f67a) ───
@@ -1,77 +1,16 @@
- /// @custom:selector 0xede7f6a3
- /// @custom:signature Unresolved_ede7f6a3(uint256 arg0, uint256 arg1) public view
+
+ /// @custom:selector 0xf7e0f67a
+ /// @custom:signature Unresolved_f7e0f67a(uint256 arg0, uint256 arg1) public view
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
- function Unresolved_ede7f6a3(uint256 arg0, uint256 arg1) public view {
+ function Unresolved_f7e0f67a(uint256 arg0, uint256 arg1) public view {
+ require(0xf6 == msg.data[0]);
+ require(0 == 0x01);
require(msg.value);
require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x40);
require(arg0 > 0xffffffffffffffff);
require(((msg.data.length - arg0) + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) < 0xa0);
require(arg0 + (arg0) > 0xffffffffffffffff);
- require(!(bytes1(unresolved_308657d7 >> 0x08)), CustomError_ded7c80c());
- require(msg.sender == (address(unresolved_1aa7c0ec)), CustomError_ded7c80c());
- require(!(msg.sender == (address(unresolved_1aa7c0ec))), CustomError_ded7c80c());
- var_a = 0xded7c80c00000000000000000000000000000000000000000000000000000000;
- require(arg1 > block.number, CustomError_58968cf0());
- var_a = 0x58968cf000000000000000000000000000000000000000000000000000000000;
- require((block.number - arg1) > block.number, CustomError_c42a0185());
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_b = 0x11;
- require((block.number - arg1) > 0x0100, CustomError_c42a0185());
- var_a = 0xc42a018500000000000000000000000000000000000000000000000000000000;
- require(!blockhash(arg1), CustomError_31aed5c2());
- require(arg0 + (arg0) > 0xffffffffffffffff, CustomError_31aed5c2());
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_b = 0x41;
- require(((var_c + (uint248((0x20 + (0x1f + (arg0 + (arg0)))) + 0x1f))) > 0xffffffffffffffff) | ((var_c + (uint248((0x20 + (0x1f + (arg0 + (arg0)))) + 0x1f))) < var_c), CustomError_31aed5c2());
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_b = 0x41;
- uint256 var_c = var_c + (uint248((0x20 + (0x1f + (arg0 + (arg0)))) + 0x1f));
- uint256 var_d = (arg0 + (arg0));
- var_e = msg.data[36:36];
- uint256 var_f = 0;
- require(keccak256(var_e) - blockhash(arg1), CustomError_31aed5c2());
- require(!(arg0 + (arg0)), CustomError_31aed5c2());
- require(bytes1(0x20 + (arg0 + (arg0))) < 0xc000000000000000000000000000000000000000000000000000000000000000, CustomError_31aed5c2());
- require(!(arg0 + (arg0)), CustomError_31aed5c2());
- require(bytes1(0x20 + (arg0 + (arg0))) < 0xf800000000000000000000000000000000000000000000000000000000000000, CustomError_31aed5c2());
- require(!(0 < (arg0 + (arg0))), CustomError_31aed5c2());
- require((bytes1(((0x20 + (arg0 + (arg0))) + 0) >> 0xf8) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09) > 0xff, CustomError_31aed5c2());
- require((0x01 + (bytes1((((0x20 + (arg0 + (arg0))) + 0) >> 0xf8) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09))) > 0xff, CustomError_31aed5c2());
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_b = 0x11;
- require(0 > (0 + (bytes1(0x01 + ((((0x20 + (arg0 + (arg0))) + 0) >> 0xf8) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09)))), CustomError_31aed5c2());
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_b = 0x11;
- require(!(block.chainid == 0xa5bd), CustomError_31aed5c2());
- require(block.chainid == 0xa5bd, CustomError_31aed5c2());
- require(0 < 0x03, CustomError_31aed5c2());
- require(!((0 + (bytes1(0x01 + ((((0x20 + (arg0 + (arg0))) + 0) >> 0xf8) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09)))) < (arg0 + (arg0))), CustomError_31aed5c2());
- require(!((0 + (bytes1(0x01 + ((((0x20 + (arg0 + (arg0))) + 0) >> 0xf8) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09)))) < (arg0 + (arg0))), CustomError_31aed5c2());
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_b = 0x32;
- var_a = 0x31aed5c200000000000000000000000000000000000000000000000000000000;
- if (0 < 0x08) {
- }
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_b = 0x11;
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_b = 0x32;
- if (!block.chainid == 0xa5bd) {
- if (block.chainid == 0xa5bd) {
- require(!(block.chainid == 0xa5bd), CustomError_c0098bd9());
- }
- require(block.chainid == 0xa5bd, CustomError_c0098bd9());
- }
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_b = 0x32;
- var_a = 0xc0098bd900000000000000000000000000000000000000000000000000000000;
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_b = 0x32;
- var_a = 0xff28378700000000000000000000000000000000000000000000000000000000;
- var_a = 0xbfc9f0d300000000000000000000000000000000000000000000000000000000;
- require(executionDeadline, CustomError_ded7c80c());
- require(!(!block.timestamp > executionDeadline), CustomError_ded7c80c());
- var_a = 0xded7c80c00000000000000000000000000000000000000000000000000000000;
- var_a = 0xd5ef09ba00000000000000000000000000000000000000000000000000000000;
+ require(!(bytes1(unresolved_38803a3b >> 0x08)), CustomError_d5ef09ba());
+ uint256 var_a = (0x5bd28f7c + (0x0f24f561 + (arg0 + (arg0)))) << 0xe1;
}
─── Function fund (0xa65e2cfd → 0x9a018578) ───
@@ -1,41 +1,43 @@
- /// @custom:selector 0xa65e2cfd
- /// @custom:signature fund(uint256 arg0, uint256 arg1) public payable
+ /// @custom:selector 0x9a018578
+ /// @custom:signature Unresolved_9a018578(uint256 arg0, uint256 arg1) public payable
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
- function fund(uint256 arg0, uint256 arg1) public payable {
+ function Unresolved_9a018578(uint256 arg0, uint256 arg1) public payable {
+ require(!store_r);
+ require(0 == 0x01);
require(msg.value);
require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x40, CustomError_618bbdd5());
require(msg.sender - 0, CustomError_618bbdd5());
- var_a = 0x618bbdd500000000000000000000000000000000000000000000000000000000;
- require(bytes1(unresolved_308657d7 >> 0x08), CustomError_5adf6387());
- var_a = 0x5adf638700000000000000000000000000000000000000000000000000000000;
- require(!arg0);
- require(!arg1);
- currentRewardAmount = arg0;
- unresolved_d415b3f9 = arg0;
- unresolved_8bd03d0a = arg1;
- require(unresolved_d415b3f9 > (unresolved_d415b3f9 + unresolved_8bd03d0a));
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+ uint256 var_a = (0xe8e105c2 ^ (0x4e08231c ^ (0x487b0610 ^ (0x8f199d1b ^ arg1)))) << 0xe0;
+ require(bytes1(unresolved_38803a3b >> 0x08), CustomError_a5209c79());
+ var_a = (0x82c0d404 - (0x406980c8 + (0x9d36b6c3 + arg1))) << 0xe0;
+ require(!arg0, CustomError_4e48817a());
+ require(!arg1, CustomError_4e48817a());
+ unresolved_bdbb068a = arg0;
+ unresolved_dddd10c7 = arg0;
+ unresolved_a777a492 = arg1;
+ require(unresolved_dddd10c7 > (unresolved_dddd10c7 + unresolved_a777a492), CustomError_4e48817a());
+ var_a = 0x4e48817a00000000000000000000000000000000000000000000000000000000;
var_b = 0x11;
var_c = 0x23b872dd00000000000000000000000000000000000000000000000000000000;
address var_d = msg.sender;
address var_e = address(this);
- uint256 var_f = unresolved_d415b3f9 + unresolved_8bd03d0a;
+ uint256 var_f = unresolved_dddd10c7 + unresolved_a777a492;
(bool success, bytes memory ret0) = address(0).Unresolved_23b872dd(var_d); // call
- require(!0, CustomError_045c4b02());
- unresolved_308657d7 = (uint248(unresolved_308657d7)) | 0x0100;
- var_a = 0x045c4b0200000000000000000000000000000000000000000000000000000000;
- require(0x20 > ret0.length);
- require(((var_g + 0x20) > 0xffffffffffffffff) | ((var_g + 0x20) < var_g));
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+ require(!0, CustomError_305f41f2());
+ unresolved_38803a3b = (uint248(unresolved_38803a3b)) | 0x0100;
+ var_a = (0xe141e972 ^ (0xd4bea647 ^ (0x4feee602 ^ (0x783f8cb6 ^ (msg.data[0] >> 0xe0))))) << 0xe1;
+ require(0x20 > ret0.length, CustomError_4e487bd1());
+ require(((var_g + 0x20) > 0xffffffffffffffff) | ((var_g + 0x20) < var_g), CustomError_4e487bd1());
+ var_a = (0xb9b54963 ^ (0xf7fd3212 ^ (var_g + 0x20))) << 0xe0;
var_b = 0x41;
uint256 var_g = var_g + 0x20;
require(((var_g + 0x20) - var_g) < 0x20);
- require(var_g.length - var_g.length, CustomError_045c4b02());
- require(!var_g.length, CustomError_045c4b02());
- var_a = 0x045c4b0200000000000000000000000000000000000000000000000000000000;
- unresolved_308657d7 = (uint248(unresolved_308657d7)) | 0x0100;
- var_a = 0x932ca0a300000000000000000000000000000000000000000000000000000000;
- var_a = 0xea1083a700000000000000000000000000000000000000000000000000000000;
+ require(var_g.length - var_g.length, CustomError_305f41f2());
+ require(!var_g.length, CustomError_305f41f2());
+ var_a = (0xe141e972 ^ (0xd4bea647 ^ (0x4feee602 ^ (0x783f8cb6 ^ (msg.data[0] >> 0xe0))))) << 0xe1;
+ unresolved_38803a3b = (uint248(unresolved_38803a3b)) | 0x0100;
+ var_a = (0xb129e438 ^ (0xb99c327a ^ (0x9b9976e1 ^ arg1))) << 0xe0;
+ var_a = (0x0414638f - (0x14f5eeb5 + (0x642134b0 + (0x750dc3d1 + arg1)))) << 0xe0;
}
─── Function bond (0x9940686e → 0x2dee68b3) ───
@@ -1,54 +1,58 @@
- /// @custom:selector 0x9940686e
- /// @custom:signature bond(uint256 arg0) public payable
+ /// @custom:selector 0x2dee68b3
+ /// @custom:signature Unresolved_2dee68b3(uint256 arg0) public payable
/// @param arg0 ["uint256", "bytes32", "int256"]
- function bond(uint256 arg0) public payable {
+ function Unresolved_2dee68b3(uint256 arg0) public payable {
+ require(0x68 == msg.data[0]);
+ require(0 == 0x01);
require(msg.value);
- require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x20, CustomError_253ef1d2());
- require(executionDeadline, CustomError_253ef1d2());
- require(block.timestamp > executionDeadline, CustomError_253ef1d2());
- require(!(bytes1(unresolved_308657d7 >> 0x08)), CustomError_253ef1d2());
- require(bytes1(unresolved_308657d7), CustomError_253ef1d2());
- require(executionDeadline, CustomError_253ef1d2());
- require(!(block.timestamp > executionDeadline), CustomError_253ef1d2());
- var_a = 0x253ef1d200000000000000000000000000000000000000000000000000000000;
- require((currentRewardAmount >> 0x01) > arg0, CustomError_e92c469f());
- var_a = 0xe92c469f00000000000000000000000000000000000000000000000000000000;
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x20, CustomError_24793289());
+ require(unresolved_7bb87963, CustomError_24793289());
+ require(unresolved_7bb87963, CustomError_24793289());
+ require(!(bytes1(unresolved_38803a3b >> 0x08)), CustomError_24793289());
+ require(bytes1(unresolved_38803a3b), CustomError_24793289());
+ uint256 var_a = (0x72c19e10 ^ (0xf026eb8e ^ (0xe241e4b8 ^ (0x44dfa3af ^ arg0)))) << 0xe0;
+ require(unresolved_7bb87963, CustomError_e92c4b8f());
+ require(unresolved_7bb87963, CustomError_e92c4b8f());
+ require((unresolved_bdbb068a >> 0x01) > arg0, CustomError_e92c4b8f());
+ var_a = 0xe92c4b8f00000000000000000000000000000000000000000000000000000000;
var_b = 0x23b872dd00000000000000000000000000000000000000000000000000000000;
address var_c = msg.sender;
address var_d = address(this);
uint256 var_e = arg0;
(bool success, bytes memory ret0) = address(0).Unresolved_23b872dd(var_c); // call
- require(!0, CustomError_045c4b02());
- unresolved_1aa7c0ec = (uint96(unresolved_1aa7c0ec)) | msg.sender;
- require(block.timestamp > (block.timestamp + 0x012c), CustomError_045c4b02());
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+ require(!0, CustomError_b7f27eb5());
+ store_m = (uint96(store_m)) | msg.sender;
+ require(block.timestamp > (block.timestamp + 0x012c), CustomError_b7f27eb5());
+ var_a = (0x1e1e8075 + (0x3029fafc + (block.timestamp + 0x012c))) << 0xe0;
var_f = 0x11;
- executionDeadline = block.timestamp + 0x012c;
- bondAmount = arg0;
- var_a = 0x045c4b0200000000000000000000000000000000000000000000000000000000;
- require(0x20 > ret0.length);
- require(((var_g + 0x20) > 0xffffffffffffffff) | ((var_g + 0x20) < var_g));
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+ unresolved_7bb87963 = block.timestamp + 0x012c;
+ store_c = arg0;
+ var_a = (0xe141e972 ^ (0xd4bea647 ^ (0x4feee602 ^ (0x783f8cb6 ^ arg0)))) << 0xe1;
+ require(0x20 > ret0.length, CustomError_4e487bd1());
+ require(((var_g + 0x20) > 0xffffffffffffffff) | ((var_g + 0x20) < var_g), CustomError_4e487bd1());
+ var_a = (0xb9b54963 ^ (0xf7fd3212 ^ (var_g + 0x20))) << 0xe0;
var_f = 0x41;
uint256 var_g = var_g + 0x20;
require(((var_g + 0x20) - var_g) < 0x20);
require(var_g.length - var_g.length, CustomError_045c4b02());
require(!var_g.length, CustomError_045c4b02());
- var_a = 0x045c4b0200000000000000000000000000000000000000000000000000000000;
- var_a = 0x2479328900000000000000000000000000000000000000000000000000000000;
- var_a = 0xd5ef09ba00000000000000000000000000000000000000000000000000000000;
- require(currentRewardAmount > (currentRewardAmount + bondAmount), CustomError_9cbc1de1());
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+ var_a = (0xe141e972 ^ (0xd4bea647 ^ (0x4feee602 ^ (0x783f8cb6 ^ arg0)))) << 0xe1;
+ var_a = (0x7de41b1f ^ (0x6f7b63f6 ^ arg0)) << 0xe1;
+ require(!(block.timestamp > unresolved_7bb87963), CustomError_253ef1d2());
+ var_a = (0x7de41b1f ^ (0x6f7b63f6 ^ arg0)) << 0xe1;
+ var_a = (0x5bd28f7c + (0x0f24f561 + unresolved_38803a3b)) << 0xe1;
+ require(unresolved_bdbb068a > (unresolved_bdbb068a + store_c), CustomError_6343d604());
+ var_a = (0x1e1e8075 + (0x3029fafc + (unresolved_bdbb068a + store_c))) << 0xe0;
var_f = 0x11;
- currentRewardAmount = currentRewardAmount + bondAmount;
- require(totalBondsDeposited > (totalBondsDeposited + bondAmount), CustomError_9cbc1de1());
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+ unresolved_bdbb068a = unresolved_bdbb068a + store_c;
+ require(store_j > (store_j + store_c), CustomError_6343d604());
+ var_a = (0x1e1e8075 + (0x3029fafc + (store_j + store_c))) << 0xe0;
var_f = 0x11;
- totalBondsDeposited = totalBondsDeposited + bondAmount;
- require(executionDeadline, CustomError_9cbc1de1());
- require(!(block.timestamp > executionDeadline), CustomError_9cbc1de1());
- var_a = 0x9cbc1de100000000000000000000000000000000000000000000000000000000;
- if (executionDeadline) {
- }
+ store_j = store_j + store_c;
+ require(unresolved_7bb87963, CustomError_6343d604());
+ require(unresolved_7bb87963, CustomError_6343d604());
+ var_a = 0x6343d60400000000000000000000000000000000000000000000000000000000;
+ require(!(block.timestamp > unresolved_7bb87963), CustomError_6343d604());
+ var_a = 0x6343d60400000000000000000000000000000000000000000000000000000000;
}
─── Function withdraw (0x3ccfd60b → 0x3445d63a) ───
@@ -1,40 +1,43 @@
- /// @custom:selector 0x3ccfd60b
- /// @custom:signature withdraw() public payable
- function withdraw() public payable {
+ /// @custom:selector 0x3445d63a
+ /// @custom:signature Unresolved_3445d63a(uint256 arg0) public payable
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_3445d63a(uint256 arg0) public payable {
+ require(0xd6 == msg.data[0]);
+ require(0 == 0x01);
require(msg.value);
require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
- require(!(bytes1(unresolved_308657d7 >> 0x08)), CustomError_618bbdd5());
- require(msg.sender - 0, CustomError_618bbdd5());
- var_a = 0x618bbdd500000000000000000000000000000000000000000000000000000000;
- require(executionDeadline, CustomError_9cbc1de1());
- require(!(block.timestamp > executionDeadline), CustomError_9cbc1de1());
- var_a = 0x9cbc1de100000000000000000000000000000000000000000000000000000000;
- unresolved_1aa7c0ec = uint96(unresolved_1aa7c0ec);
- bondAmount = 0;
- executionDeadline = 0;
- require(unresolved_8bd03d0a > (unresolved_8bd03d0a + unresolved_d415b3f9));
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+ require(!(bytes1(unresolved_38803a3b >> 0x08)), CustomError_618bbfaa());
+ require(msg.sender - 0, CustomError_618bbfaa());
+ var_a = 0x618bbfaa00000000000000000000000000000000000000000000000000000000;
+ require(unresolved_7bb87963, CustomError_6343df98());
+ require(!(block.timestamp > unresolved_7bb87963), CustomError_6343df98());
+ var_a = 0x6343df9800000000000000000000000000000000000000000000000000000000;
+ store_m = uint96(store_m);
+ store_c = 0;
+ unresolved_7bb87963 = 0;
+ require(unresolved_a777a492 > (unresolved_a777a492 + unresolved_dddd10c7));
+ uint256 var_a = (0x1e1e8075 + (0x3029fafc + (unresolved_a777a492 + unresolved_dddd10c7))) << 0xe0;
var_b = 0x11;
- unresolved_308657d7 = uint248(unresolved_308657d7);
- unresolved_8bd03d0a = 0;
- currentRewardAmount = 0;
- require(!unresolved_8bd03d0a + unresolved_d415b3f9);
+ unresolved_38803a3b = uint248(unresolved_38803a3b);
+ unresolved_a777a492 = 0;
+ unresolved_bdbb068a = 0;
+ require(!unresolved_a777a492 + unresolved_dddd10c7);
var_c = 0xa9059cbb00000000000000000000000000000000000000000000000000000000;
address var_d = msg.sender;
- uint256 var_e = unresolved_8bd03d0a + unresolved_d415b3f9;
+ uint256 var_e = unresolved_a777a492 + unresolved_dddd10c7;
(bool success, bytes memory ret0) = address(0).Unresolved_a9059cbb(var_d); // call
- require(!0, CustomError_045c4b02());
- var_a = 0x045c4b0200000000000000000000000000000000000000000000000000000000;
- require(0x20 > ret0.length);
- require(((var_f + 0x20) > 0xffffffffffffffff) | ((var_f + 0x20) < var_f));
- var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+ require(!0, CustomError_6cd7e776());
+ var_a = (0xe141e972 ^ (0xd4bea647 ^ (0x4feee602 ^ (0x783f8cb6 ^ (msg.data[0] >> 0xe0))))) << 0xe1;
+ require(0x20 > ret0.length, CustomError_4e487bd1());
+ require(((var_f + 0x20) > 0xffffffffffffffff) | ((var_f + 0x20) < var_f), CustomError_4e487bd1());
+ var_a = (0xb9b54963 ^ (0xf7fd3212 ^ (var_f + 0x20))) << 0xe0;
var_b = 0x41;
uint256 var_f = var_f + 0x20;
require(((var_f + 0x20) - var_f) < 0x20);
- require(var_f.length - var_f.length, CustomError_045c4b02());
- require(!var_f.length, CustomError_045c4b02());
- var_a = 0x045c4b0200000000000000000000000000000000000000000000000000000000;
- var_a = 0x53cd7f7900000000000000000000000000000000000000000000000000000000;
- var_a = 0xd5ef09ba00000000000000000000000000000000000000000000000000000000;
+ require(var_f.length - var_f.length, CustomError_6cd7e776());
+ require(!var_f.length, CustomError_6cd7e776());
+ var_a = (0xe141e972 ^ (0xd4bea647 ^ (0x4feee602 ^ (0x783f8cb6 ^ (msg.data[0] >> 0xe0))))) << 0xe1;
+ var_a = (0x9e328c1f - (0x05bc439d + (0xec43c7fb + (unresolved_a777a492 + unresolved_dddd10c7)))) << 0xe0;
+ var_a = 0xd5ef0eb800000000000000000000000000000000000000000000000000000000;
}
─── Function requestCancellation (0x81972d00 → 0x27d6cfc5) ───
@@ -1,10 +1,12 @@
- /// @custom:selector 0x81972d00
- /// @custom:signature requestCancellation() public payable
- function requestCancellation() public payable {
+ /// @custom:selector 0x27d6cfc5
+ /// @custom:signature Unresolved_27d6cfc5() public payable
+ function Unresolved_27d6cfc5() public payable {
+ require(!store_e);
+ require(0 == 0x01);
require(msg.value);
require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
- require(msg.sender - 0, CustomError_618bbdd5());
- var_a = 0x618bbdd500000000000000000000000000000000000000000000000000000000;
- unresolved_308657d7 = 0x01 | (uint248(unresolved_308657d7));
+ require(msg.sender - 0, CustomError_465d7210());
+ bytes32 var_a = (0xe8e105c2 ^ (0x4e08231c ^ (0x487b0610 ^ (0x8f199d1b ^ (msg.data[0] >> 0xe0))))) << 0xe0;
+ unresolved_7bb87963 = 0x01 | (uint248(unresolved_7bb87963));
}
─── Function resume (0x046f7da2 → 0x9ff9efde) ───
@@ -1,10 +1,12 @@
- /// @custom:selector 0x046f7da2
- /// @custom:signature resume() public payable
- function resume() public payable {
+ /// @custom:selector 0x9ff9efde
+ /// @custom:signature Unresolved_9ff9efde() public payable
+ function Unresolved_9ff9efde() public payable {
+ require(!store_o);
+ require(0 == 0x01);
require(msg.value);
require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
- require(msg.sender - 0, CustomError_618bbdd5());
- var_a = 0x618bbdd500000000000000000000000000000000000000000000000000000000;
- unresolved_308657d7 = uint248(unresolved_308657d7);
+ require(msg.sender - 0, CustomError_fe72520b());
+ bytes32 var_a = (0xe8e105c2 ^ (0x4e08231c ^ (0x487b0610 ^ (0x8f199d1b ^ (msg.data[0] >> 0xe0))))) << 0xe0;
+ unresolved_7bb87963 = uint248(unresolved_7bb87963);
}
─── Added: Unresolved_febc8906 (0xfebc8906) ───
@@ -1,0 +1,12 @@
+
+ /// @custom:selector 0xfebc8906
+ /// @custom:signature Unresolved_febc8906(uint256 arg0) public view returns (uint256)
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_febc8906(uint256 arg0) public view returns (uint256) {
+ require(0xfe == msg.data[0]);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ var_a = store_j;
+ return store_j;
+ }
─── Added: Unresolved_a7adc0e8 (0xa7adc0e8) ───
@@ -1,0 +1,12 @@
+
+ /// @custom:selector 0xa7adc0e8
+ /// @custom:signature Unresolved_a7adc0e8(uint256 arg0) public view returns (address)
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_a7adc0e8(uint256 arg0) public view returns (address) {
+ require(0xc0 == msg.data[0]);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ address var_a = address(store_m);
+ return address(store_m);
+ }
─── Added: Unresolved_867c6ed9 (0x867c6ed9) ───
@@ -1,0 +1,12 @@
+
+ /// @custom:selector 0x867c6ed9
+ /// @custom:signature Unresolved_867c6ed9(uint256 arg0) public pure returns (uint256)
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_867c6ed9(uint256 arg0) public pure returns (uint256) {
+ require(0x86 == msg.data[0]);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ uint256 var_a = 0;
+ return 0;
+ }
─── Added: Unresolved_47c33f39 (0x47c33f39) ───
@@ -1,0 +1,11 @@
+
+ /// @custom:selector 0x47c33f39
+ /// @custom:signature Unresolved_47c33f39() public view returns (uint256)
+ function Unresolved_47c33f39() public view returns (uint256) {
+ require(!store_d);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ var_a = 0x0100;
+ return 0x0100;
+ }
─── Added: Unresolved_cba105ba (0xcba105ba) ───
@@ -1,0 +1,16 @@
+
+ /// @custom:selector 0xcba105ba
+ /// @custom:signature Unresolved_cba105ba(uint256 arg0) public view returns (bool)
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_cba105ba(uint256 arg0) public view returns (bool) {
+ require(0xcb == msg.data[0]);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ if (unresolved_7bb87963) {
+ uint256 var_a = !(block.timestamp > unresolved_7bb87963);
+ return !(block.timestamp > unresolved_7bb87963);
+ var_a = unresolved_7bb87963;
+ return unresolved_7bb87963;
+ }
+ }
─── Added: Unresolved_e0e40e82 (0xe0e40e82) ───
@@ -1,0 +1,11 @@
+
+ /// @custom:selector 0xe0e40e82
+ /// @custom:signature Unresolved_e0e40e82() public view returns (uint256)
+ function Unresolved_e0e40e82() public view returns (uint256) {
+ require(!store_n);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ uint256 var_a = 0;
+ return 0;
+ }
─── Added: Unresolved_55ba05c1 (0x55ba05c1) ───
@@ -1,0 +1,12 @@
+
+ /// @custom:selector 0x55ba05c1
+ /// @custom:signature Unresolved_55ba05c1(uint256 arg0) public pure returns (uint256)
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_55ba05c1(uint256 arg0) public pure returns (uint256) {
+ require(0x55 == msg.data[0]);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ uint256 var_a = 0;
+ return 0;
+ }
─── Added: Unresolved_73b223b7 (0x73b223b7) ───
@@ -1,0 +1,11 @@
+ /// @custom:selector 0x73b223b7
+ /// @custom:signature Unresolved_73b223b7(uint256 arg0) public view returns (uint256)
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_73b223b7(uint256 arg0) public view returns (uint256) {
+ require(0x23 == msg.data[0]);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ var_a = store_c;
+ return store_c;
+ }
─── Added: Unresolved_30efb285 (0x30efb285) ───
@@ -1,0 +1,12 @@
+
+ /// @custom:selector 0x30efb285
+ /// @custom:signature Unresolved_30efb285(uint256 arg0) public view returns (bool)
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_30efb285(uint256 arg0) public view returns (bool) {
+ require(0x30 == msg.data[0]);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ bytes1 var_a = !(!bytes1(unresolved_38803a3b));
+ return !(!bytes1(unresolved_38803a3b));
+ }
Commit 13b5799 |
ozwaldorf
approved these changes
Mar 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
the
test_obfuscated_function_callse2e test began failing withInvalidJumpafter i updated escrow contract [EscrowERC20 + EscrowBase (inheritance)]. the inherited contract introduced two patterns the obfuscation pipeline didn't handle:this PR fixes both issues and also improves the PushSplit transform's chain generation.
i've added a proper documentation of the code where necessary