Skip to content

feat(transforms): impl. slot shuffle transform#132

Merged
g4titanx merged 8 commits into
masterfrom
slot/shuffle
Jan 30, 2026
Merged

feat(transforms): impl. slot shuffle transform#132
g4titanx merged 8 commits into
masterfrom
slot/shuffle

Conversation

@g4titanx
Copy link
Copy Markdown
Member

No description provided.

@g4titanx g4titanx requested a review from ozwaldorf January 15, 2026 00:17
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jan 15, 2026

Decompile Diff Analysis

Statistics (50 iterations)

  • Total: 27 hunks, -217 removed, +302 added
  • Items: 11 total, 10 with changes
  • Selectors: 19 remapped
Metric Min Avg Max
Hunks 10 36.7 50
Lines removed 159 195.4 263
Lines added 27 235.0 351
Lines unchanged 19 86.6 123
Full Diff Output
─── Storage ───
@@ -1,14 +1,21 @@
-    uint256 public constant unresolved_d4899a62 = 0;
-    uint256 public constant expectedAmount = 0;
-    uint256 public constant unresolved_8677ab23 = 0;
-    
-    uint256 public bondAmount;
-    address public unresolved_1aa7c0ec;
-    uint256 public executionDeadline;
-    uint256 public currentRewardAmount;
-    uint256 public unresolved_fe03a460;
-    uint256 public unresolved_8bd03d0a;
-    uint256 public unresolved_d415b3f9;
-    bool public unresolved_308657d7;
+    bytes32 store_c;
+    uint256 public unresolved_d9f384ab;
+    bytes32 store_o;
+    bytes32 store_m;
+    bytes32 store_p;
+    uint256 public unresolved_09b8ff34;
+    bytes32 store_k;
+    uint256 public unresolved_d2d173eb;
+    uint256 public unresolved_af9f8d83;
+    bytes32 store_a;
+    bytes32 store_b;
+    uint256 store_i;
+    bytes32 store_g;
+    bytes32 store_l;
+    bytes32 store_n;
+    bytes32 store_q;
+    bytes32 store_r;
+    uint256 public unresolved_5c428af2;
     
+    error CustomError_00000000();
     

─── Function requestCancellation (0x81972d00 → 0x1f13bad3) ───
@@ -1,13 +1,209 @@
     
-    /// @custom:selector    0x81972d00
-    /// @custom:signature   requestCancellation() public payable
-    function requestCancellation() public payable {
+    /// @custom:selector    0x9967ac39
+    /// @custom:signature   Unresolved_9967ac39(uint256 arg0) public payable
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_9967ac39(uint256 arg0) public payable {
+        require(0x99 == msg.data[0]);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x20, "Cancellation requested");
+        require(!(bytes1(store_c >> 0x08)), "Cancellation requested");
+        require(!(!bytes1(store_c)), "Cancellation requested");
+        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
+        var_b = 0x20;
+        var_c = 0x16;
+        var_d = 0x43616e63656c6c6174696f6e2072657175657374656400000000000000000000;
+        require(!(!arg0 < (unresolved_5c428af2 >> 0x01)), CustomError_0());
+        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
+        var_b = 0x20;
+        var_c = 0x2b;
+        uint256 var_e = 0x108dbd1cba49e4729c8182f4658bd3bf2fa4b4eb3d1dc09669f12c71b67be72b | (var_f - 0x3ad0b24c81308cb0b67878b9934ea1096ab3ff8985f63a5a00d9c960b240e95a);
+        var_g = 0x7761726420616d6f757c8c000000000000000000000000000000000000000000;
+        require(unresolved_af9f8d83, "�2�����P4�B�yl�SJ{
PE޸#{K���B3�ed");
+        require(block.timestamp > unresolved_af9f8d83, "�2�����P4�B�yl�SJ{
PE޸#{K���B3�ed");
+        require(unresolved_af9f8d83, "�2�����P4�B�yl�SJ{
PE޸#{K���B3�ed");
+        require(!(block.timestamp > unresolved_af9f8d83), "�2�����P4�B�yl�SJ{
PE޸#{K���B3�ed");
+        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
+        var_b = 0x20;
+        var_c = 0x22;
+        var_d = 0xc232d7ee0fb2be5034f04218796c96534a7b0d5045deb8237b4b8d888f4233d2;
+        var_h = 0x6564000000000000000000000000000000000000000000000000000000000000;
+        var_a = 0x23b872dd00000000000000000000000000000000000000000000000000000000;
+        address var_b = msg.sender;
+        address var_c = address(this);
+        uint256 var_d = arg0;
+        (bool success, bytes memory ret0) = address(0).Unresolved_23b872dd(var_b); // call
+        unresolved_d2d173eb = var_b | (uint96(unresolved_d2d173eb));
+        require(block.timestamp > (block.timestamp + 0x012c), CustomError_06b01bb1());
+        var_i = 0x06b01bb100000000000000000000000000000000000000000000000000000000;
+        var_j = 0x11;
+        unresolved_af9f8d83 = block.timestamp + 0x012c;
+        store_i = arg0;
+        require(0x20 > ret0.length, CustomError_4e487bd1());
+        require(((var_f + 0x20) > 0xffffffffffffffff) | ((var_f + 0x20) < var_f), CustomError_4e487bd1());
+        uint256 var_i = (0x3633b361 ^ (0xe550ed9f ^ (0x9d2b258f ^ (var_f + 0x20)))) << 0xe0;
+        var_j = 0x41;
+        uint256 var_f = var_f + 0x20;
+        require(((var_f + 0x20) - var_f) < 0x20);
+        require(var_f.length - var_f.length);
+        require(unresolved_5c428af2 > (unresolved_5c428af2 + store_i), CustomError_06b01be4());
+        var_i = 0x06b01be400000000000000000000000000000000000000000000000000000000;
+        var_j = 0x11;
+        unresolved_5c428af2 = unresolved_5c428af2 + store_i;
+        require(unresolved_09b8ff34 > (unresolved_09b8ff34 + store_i), CustomError_06b01bf7());
+        var_i = 0x06b01bf700000000000000000000000000000000000000000000000000000000;
+        var_j = 0x11;
+        if (unresolved_af9f8d83) {
+        }
+        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
+        var_b = 0x20;
+        var_c = 0x13;
+        var_k = this.code[12684:12684];
+        uint256 var_l = (0x01 * (store_c - (0x035270a0f6a4e523 ^ (0xf45521522f13db92 ^ (0x03f01bb434b0eb7a ^ (var_i ^ (((0x2f8aaee0 - (0x75bcfdc7 - (0x2d8f41e7 + (uint248(var_f - 0x8410022601636001024628048011dbff9d1eb85dfd0c1f9dc823fa835c4ee48e))))) ^ 0x0498) - 0x9c81))))))) << 0x6a;
+    }
+    
+    /// @custom:selector    0x092588c2
+    /// @custom:signature   Unresolved_092588c2() public payable
+    function Unresolved_092588c2() public payable {
+        require(!store_l);
+        require(0 == 0x01);
         require(msg.value);
         require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
-        require(!(0 == msg.sender), "Only callable by the deployer");
+        require(!(0 == msg.sender), "��F����[D�'������O�����hK�o�");
         var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
         var_b = 0x20;
         var_c = 0x1d;
-        var_d = 0x4f6e6c792063616c6c61626c6520627920746865206465706c6f796572000000;
-        unresolved_308657d7 = 0x01 | (uint248(unresolved_308657d7));
+        var_d = 0xc7d846a3ffcaf65b44f127f51cc08f0fe8824fd7e801988d684bfc6f966298d7;
+        store_c = uint248(store_c);
     }
+    
+    /// @custom:selector    0x30520aef
+    /// @custom:signature   Unresolved_30520aef(uint256 arg0) public view returns (bool)
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_30520aef(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(store_c));
+        return !(!bytes1(store_c));
+    }
+    
+    /// @custom:selector    0x0d7ec05a
+    /// @custom:signature   Unresolved_0d7ec05a(uint256 arg0) public view returns (address)
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_0d7ec05a(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);
+    }
+    
+    /// @custom:selector    0x80ab039c
+    /// @custom:signature   Unresolved_80ab039c(uint256 arg0) public view returns (uint256)
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_80ab039c(uint256 arg0) public view returns (uint256) {
+        require(0x80 == msg.data[0]);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+        var_a = store_i;
+        return store_i;
+    }
+    
+    /// @custom:selector    0xcf60c40a
+    /// @custom:signature   Unresolved_cf60c40a(uint256 arg0, uint256 arg1) public view
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    /// @param              arg1 ["uint256", "bytes32", "int256"]
+    function Unresolved_cf60c40a(uint256 arg0, uint256 arg1) public view {
+        require(!store_o);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x40);
+        require(arg0 > 0xffffffffffffffff);
+        require(((msg.data.length - arg0) + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) < 0xa0, CustomError_0());
+        require(!(bytes1(store_c >> 0x08)), CustomError_0());
+        require(address(store_m) == msg.sender, CustomError_0());
+        require(!(address(store_m) == msg.sender), CustomError_0());
+        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
+        var_b = 0x20;
+        var_c = 0x20;
+        var_d = this.code[12812:12812];
+        uint256 var_e = (0x359721fb + (0x535935f2 + (var_f ^ 0xbf373ec036c1b2a7c27b08fc492d00ce321d8f6b5571a49df2925dffc98c6bf8))) + var_g;
+        require(!(!arg1 > block.number), "�re���YL�� �6y�-�蚑��u���}��");
+        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
+        var_b = 0x20;
+        var_c = 0x1d;
+        var_h = 0x80726503d203594c9df120923679aa2d8ce89a91a8bb7599b7d27d9b9bd59be1;
+        require((block.number - arg1) > block.number, CustomError_06b01e65());
+        var_f = 0x06b01e6500000000000000000000000000000000000000000000000000000000;
+        var_i = 0x11;
+        require(0 < (block.number - arg1));
+        require(!blockhash(arg1));
+        require(arg0 + (arg0) > 0xffffffffffffffff);
+        require(arg0 + (arg0) > 0xffffffffffffffff);
+        uint256 var_f = (0x3633b361 ^ (0xe550ed9f ^ (0x9d2b258f ^ (arg0 + (arg0))))) << 0xe0;
+        var_i = 0x41;
+        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
+        var_b = 0x20;
+        var_c = 0x1d;
+        var_h = 0xa0a692c278e79346bede6c41f0dc5c7149cfceb06b3d94409eb13d33c204cc55;
+        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
+        var_b = 0x20;
+        var_c = 0x14;
+        var_h = 0x54617267657420626c6f636b20746f6f206f6c64000000000000000000000000;
+        require(unresolved_af9f8d83, CustomError_0());
+        require(!(!block.timestamp > unresolved_af9f8d83), CustomError_0());
+        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
+        var_b = 0x20;
+        var_c = 0x20;
+        var_d = this.code[12812:12812];
+        var_e = (0x359721fb + (0x535935f2 + (var_f ^ 0xbf373ec036c1b2a7c27b08fc492d00ce321d8f6b5571a49df2925dffc98c6bf8))) + var_g;
+        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
+        var_b = 0x20;
+        var_c = 0x13;
+        var_d = this.code[12684:12684];
+        uint256 var_j = (0x01 * ((0x04 + arg0) - (0x035270a0f6a4e523 ^ (0xf45521522f13db92 ^ (0x03f01bb434b0eb7a ^ (var_f ^ (((0x2f8aaee0 - (0x75bcfdc7 - (0x2d8f41e7 + (uint248(var_g - 0x8410022601636001024628048011dbff9d1eb85dfd0c1f9dc823fa835c4ee48e))))) ^ 0x07e0) - 0x9c81))))))) << 0x6a;
+    }
+    
+    /// @custom:selector    0x6fc6041a
+    /// @custom:signature   Unresolved_6fc6041a(uint256 arg0) public view returns (bool)
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_6fc6041a(uint256 arg0) public view returns (bool) {
+        require(0x04 == msg.data[0]);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+        bytes1 var_a = !(!bytes1(store_c >> 0x08));
+        return !(!bytes1(store_c >> 0x08));
+    }
+    
+    /// @custom:selector    0xa232ab0f
+    /// @custom:signature   Unresolved_a232ab0f(uint256 arg0) public pure returns (uint256)
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_a232ab0f(uint256 arg0) public pure returns (uint256) {
+        require(0xab == msg.data[0]);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+        uint256 var_a = 0;
+        return 0;
+    }
+    
+    /// @custom:selector    0x1f13bad3
+    /// @custom:signature   Unresolved_1f13bad3() public payable
+    function Unresolved_1f13bad3() public payable {
+        require(!store_r);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+        require(!(0 == msg.sender), "��F����[D�'������O�����hK�o�");
+        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
+        var_b = 0x20;
+        var_c = 0x1d;
+        var_d = 0xc7d846a3ffcaf65b44f127f51cc08f0fe8824fd7e801988d684bfc6f966298d7;
+        store_c = 0x01 | (uint248(store_c));
+    }
+}

─── Removed: bond (0x9940686e) ───
@@ -1,60 +1,0 @@
-    
-    /// @custom:selector    0x9940686e
-    /// @custom:signature   bond(uint256 arg0) public payable
-    /// @param              arg0 ["uint256", "bytes32", "int256"]
-    function bond(uint256 arg0) public payable {
-        require(msg.value);
-        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x20, "Bond must be at least half of reward amount");
-        require(!(bytes1(unresolved_308657d7 >> 0x08)), "Bond must be at least half of reward amount");
-        require(!(!bytes1(unresolved_308657d7)), "Bond must be at least half of reward amount");
-        require(!(!arg0 < (currentRewardAmount >> 0x01)), "Bond must be at least half of reward amount");
-        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
-        var_b = 0x20;
-        var_c = 0x2b;
-        var_d = 0x426f6e64206d757374206265206174206c656173742068616c66206f66207265;
-        var_e = 0x7761726420616d6f756e74000000000000000000000000000000000000000000;
-        require(executionDeadline, "Another executor is already bonded");
-        require(block.timestamp > executionDeadline, "Another executor is already bonded");
-        require(executionDeadline, "Another executor is already bonded");
-        require(!(block.timestamp > executionDeadline), "Another executor is already bonded");
-        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
-        var_b = 0x20;
-        var_c = 0x22;
-        var_d = 0x416e6f74686572206578656375746f7220697320616c726561647920626f6e64;
-        var_e = 0x6564000000000000000000000000000000000000000000000000000000000000;
-        var_a = 0x23b872dd00000000000000000000000000000000000000000000000000000000;
-        address var_b = msg.sender;
-        address var_c = address(this);
-        uint256 var_d = arg0;
-        (bool success, bytes memory ret0) = address(0).Unresolved_23b872dd(var_b); // call
-        unresolved_1aa7c0ec = var_b | (uint96(unresolved_1aa7c0ec));
-        require(block.timestamp > (block.timestamp + 0x012c));
-        var_f = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_g = 0x11;
-        executionDeadline = block.timestamp + 0x012c;
-        bondAmount = arg0;
-        require(0x20 > ret0.length);
-        require(((var_h + 0x20) > 0xffffffffffffffff) | ((var_h + 0x20) < var_h));
-        var_f = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_g = 0x41;
-        uint256 var_h = var_h + 0x20;
-        require(((var_h + 0x20) - var_h) < 0x20);
-        require(var_h.length - var_h.length);
-        if (currentRewardAmount > (currentRewardAmount + bondAmount)) {
-            var_f = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-            var_g = 0x11;
-            currentRewardAmount = currentRewardAmount + bondAmount;
-            require(currentRewardAmount > (currentRewardAmount + bondAmount), "Cancellation requested");
-            var_f = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-            var_g = 0x11;
-            require(unresolved_fe03a460 > (unresolved_fe03a460 + bondAmount), "Cancellation requested");
-        }
-        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
-        var_b = 0x20;
-        var_c = 0x16;
-        var_d = 0x43616e63656c6c6174696f6e2072657175657374656400000000000000000000;
-        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
-        var_b = 0x20;
-        var_c = 0x13;
-        var_d = 0x436f6e7472616374206e6f742066756e64656400000000000000000000000000;
-    }

─── Removed: Unresolved_ede7f6a3 (0xede7f6a3) ───
@@ -1,61 +1,0 @@
-    /// @custom:selector    0xede7f6a3
-    /// @custom:signature   Unresolved_ede7f6a3(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 {
-        require(msg.value);
-        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x40);
-        require(arg0 > 0xffffffffffffffff);
-        require(((msg.data.length - arg0) + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) < 0xa0, "Only bonded executor can collect");
-        require(!(bytes1(unresolved_308657d7 >> 0x08)), "Only bonded executor can collect");
-        require(address(unresolved_1aa7c0ec) == msg.sender, "Only bonded executor can collect");
-        require(!(address(unresolved_1aa7c0ec) == msg.sender), "Only bonded executor can collect");
-        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
-        var_b = 0x20;
-        var_c = 0x20;
-        var_d = 0x4f6e6c7920626f6e646564206578656375746f722063616e20636f6c6c656374;
-        require(!(!arg1 > block.number), "Target block is in the future");
-        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
-        var_b = 0x20;
-        var_c = 0x1d;
-        var_d = 0x54617267657420626c6f636b20697320696e2074686520667574757265000000;
-        require((block.number - arg1) > block.number);
-        var_e = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_f = 0x11;
-        require(0 < (block.number - arg1));
-        require(!blockhash(arg1));
-        require(arg0 + (arg0) > 0xffffffffffffffff);
-        require(arg0 + (arg0) > 0xffffffffffffffff, "Block header hash mismatch");
-        var_e = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_f = 0x41;
-        require(((var_g + (uint248((0x20 + (0x1f + (arg0 + (arg0)))) + 0x1f))) > 0xffffffffffffffff) | ((var_g + (uint248((0x20 + (0x1f + (arg0 + (arg0)))) + 0x1f))) < var_g), "Block header hash mismatch");
-        var_e = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_f = 0x41;
-        uint256 var_g = var_g + (uint248((0x20 + (0x1f + (arg0 + (arg0)))) + 0x1f));
-        uint256 var_a = (arg0 + (arg0));
-        var_h = msg.data[36:36];
-        uint256 var_i = 0;
-        require(!(keccak256(var_h) == blockhash(arg1)), "Block header hash mismatch");
-        var_i = 0x08c379a000000000000000000000000000000000000000000000000000000000;
-        var_c = 0x20;
-        var_d = 0x1a;
-        var_j = 0x426c6f636b206865616465722068617368206d69736d61746368000000000000;
-        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
-        var_b = 0x20;
-        var_c = 0x1d;
-        var_d = 0x556e61626c6520746f20726574726965766520626c6f636b2068617368000000;
-        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
-        var_b = 0x20;
-        var_c = 0x14;
-        var_d = 0x54617267657420626c6f636b20746f6f206f6c64000000000000000000000000;
-        require(executionDeadline, "Only bonded executor can collect");
-        require(!(!block.timestamp > executionDeadline), "Only bonded executor can collect");
-        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
-        var_b = 0x20;
-        var_c = 0x20;
-        var_d = 0x4f6e6c7920626f6e646564206578656375746f722063616e20636f6c6c656374;
-        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
-        var_b = 0x20;
-        var_c = 0x13;
-        var_d = 0x436f6e7472616374206e6f742066756e64656400000000000000000000000000;
-    }

─── Removed: resume (0x046f7da2) ───
@@ -1,13 +1,0 @@
-    
-    /// @custom:selector    0x046f7da2
-    /// @custom:signature   resume() public payable
-    function resume() public payable {
-        require(msg.value);
-        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
-        require(!(0 == msg.sender), "Only callable by the deployer");
-        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
-        var_b = 0x20;
-        var_c = 0x1d;
-        var_d = 0x4f6e6c792063616c6c61626c6520627920746865206465706c6f796572000000;
-        unresolved_308657d7 = uint248(unresolved_308657d7);
-    }

─── Function fund (0xa65e2cfd → 0x964b3693) ───
@@ -1,49 +1,51 @@
     
-    /// @custom:selector    0xa65e2cfd
-    /// @custom:signature   fund(uint256 arg0, uint256 arg1) public payable
+    /// @custom:selector    0x964b3693
+    /// @custom:signature   Unresolved_964b3693(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_964b3693(uint256 arg0, uint256 arg1) public payable {
+        require(!store_b);
+        require(0 == 0x01);
         require(msg.value);
-        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x40, "Only callable by the deployer");
-        require(!(msg.sender == 0), "Only callable by the deployer");
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x40, "��F����[D�'������O�����hK�o�");
+        require(!(msg.sender == 0), "��F����[D�'������O�����hK�o�");
         var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
         var_b = 0x20;
         var_c = 0x1d;
-        var_d = 0x4f6e6c792063616c6c61626c6520627920746865206465706c6f796572000000;
-        require(!(!bytes1(unresolved_308657d7 >> 0x08)), "Contract already funded");
+        var_d = 0xc7d846a3ffcaf65b44f127f51cc08f0fe8824fd7e801988d684bfc6f966298d7;
+        require(!(!bytes1(store_c >> 0x08)), "�J���a�z䏮$h�J��J�d");
         var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
         var_b = 0x20;
         var_c = 0x17;
-        var_d = 0x436f6e747261637420616c72656164792066756e646564000000000000000000;
-        require(!arg0);
-        require(!arg1);
-        currentRewardAmount = arg0;
-        unresolved_d415b3f9 = arg0;
-        unresolved_8bd03d0a = arg1;
-        require(unresolved_d415b3f9 > (unresolved_d415b3f9 + unresolved_8bd03d0a));
-        var_e = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+        var_d = 0xcf4ae5a304ef61e67ae48fae2468e9aa4a84b64a0cbf64b14981e683e49d54a1;
+        require(!arg0, CustomError_06b01cb7());
+        require(!arg1, CustomError_06b01cb7());
+        unresolved_5c428af2 = arg0;
+        unresolved_d2d173eb = arg0;
+        unresolved_d9f384ab = arg1;
+        require(unresolved_d2d173eb > (unresolved_d2d173eb + unresolved_d9f384ab), CustomError_06b01cb7());
+        var_e = 0x06b01cb700000000000000000000000000000000000000000000000000000000;
         var_f = 0x11;
         var_a = 0x23b872dd00000000000000000000000000000000000000000000000000000000;
         address var_b = msg.sender;
         address var_c = address(this);
-        uint256 var_d = unresolved_d415b3f9 + unresolved_8bd03d0a;
+        uint256 var_d = unresolved_d2d173eb + unresolved_d9f384ab;
         (bool success, bytes memory ret0) = address(0).Unresolved_23b872dd(var_b); // call
-        unresolved_308657d7 = (uint248(unresolved_308657d7)) | 0x0100;
-        require(0x20 > ret0.length);
-        require(((var_g + 0x20) > 0xffffffffffffffff) | ((var_g + 0x20) < var_g));
-        var_e = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+        store_c = (uint248(store_c)) | 0x0100;
+        require(0x20 > ret0.length, CustomError_4e487bd1());
+        require(((var_g + 0x20) > 0xffffffffffffffff) | ((var_g + 0x20) < var_g), CustomError_4e487bd1());
+        uint256 var_e = (0x3633b361 ^ (0xe550ed9f ^ (0x9d2b258f ^ (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);
-        unresolved_308657d7 = (uint248(unresolved_308657d7)) | 0x0100;
+        store_c = (uint248(store_c)) | 0x0100;
         var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
         var_b = 0x20;
         var_c = 0x1f;
-        var_d = 0x5061796d656e7420616d6f756e74206d757374206265206e6f6e2d7a65726f00;
+        var_d = 0xde141049629f85f048634a805f3f7aeeb5bedc630f29e64045d9de4c0a82bf81;
         var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
         var_b = 0x20;
         var_c = 0x1e;
-        var_d = 0x52657761726420616d6f756e74206d757374206265206e6f6e2d7a65726f0000;
+        var_d = 0x31feb2c8223e933983ab225ab34caec3af7d07e7bded9e878ba09107618e0fb1;
     }

─── Function withdraw (0x3ccfd60b → 0x676cd6d9) ───
@@ -1,55 +1,31 @@
     
-    /// @custom:selector    0x3ccfd60b
-    /// @custom:signature   withdraw() public payable
-    function withdraw() public payable {
+    /// @custom:selector    0x676cd6d9
+    /// @custom:signature   Unresolved_676cd6d9(uint256 arg0) public view
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_676cd6d9(uint256 arg0) public view {
+        require(0xd6 == msg.data[0]);
+        require(0 == 0x01);
         require(msg.value);
         require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
-        require(!(bytes1(unresolved_308657d7 >> 0x08)), "Only callable by the deployer");
-        require(!(msg.sender == 0), "Only callable by the deployer");
+        require(!(bytes1(store_c >> 0x08)), "��F����[D�'������O�����hK�o�");
+        require(!(msg.sender == 0), "��F����[D�'������O�����hK�o�");
         var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
         var_b = 0x20;
         var_c = 0x1d;
-        var_d = 0x4f6e6c792063616c6c61626c6520627920746865206465706c6f796572000000;
-        require(!((bytes1(unresolved_308657d7 >> 0x08)) == 0x01), "Cannot reset while bond is active");
-        require(executionDeadline, "Cannot reset while bond is active");
-        require(!(block.timestamp > executionDeadline), "Cannot reset while bond is active");
-        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
-        var_b = 0x20;
-        var_c = 0x21;
-        var_d = 0x43616e6e6f74207265736574207768696c6520626f6e64206973206163746976;
-        var_e = 0x6500000000000000000000000000000000000000000000000000000000000000;
-        unresolved_1aa7c0ec = uint96(unresolved_1aa7c0ec);
-        bondAmount = 0;
-        executionDeadline = 0;
-        require(unresolved_8bd03d0a > (unresolved_8bd03d0a + unresolved_d415b3f9));
-        var_f = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_g = 0x11;
-        unresolved_308657d7 = uint248(unresolved_308657d7);
-        unresolved_8bd03d0a = 0;
-        currentRewardAmount = 0;
-        require(!unresolved_8bd03d0a + unresolved_d415b3f9);
-        var_a = 0xa9059cbb00000000000000000000000000000000000000000000000000000000;
-        address var_b = msg.sender;
-        uint256 var_c = unresolved_8bd03d0a + unresolved_d415b3f9;
-        (bool success, bytes memory ret0) = address(0).Unresolved_a9059cbb(var_b); // call
-        require(0x20 > ret0.length);
-        require(((var_h + 0x20) > 0xffffffffffffffff) | ((var_h + 0x20) < var_h));
-        var_f = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_g = 0x41;
-        uint256 var_h = var_h + 0x20;
-        require(((var_h + 0x20) - var_h) < 0x20);
-        require(var_h.length - var_h.length);
-        var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
-        var_b = 0x20;
-        var_c = 0x15;
-        var_d = 0x4e6f20776974686472617761626c652066756e64730000000000000000000000;
+        var_d = 0xc7d846a3ffcaf65b44f127f51cc08f0fe8824fd7e801988d684bfc6f966298d7;
+        require(!((bytes1(store_c >> 0x08)) == 0x01), CustomError_54ed5d2f());
+        require(unresolved_af9f8d83, CustomError_54ed5d2f());
         var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
         var_b = 0x20;
         var_c = 0x37;
-        var_d = 0x54686520636f6e747261637420776173206e6f742066756e646564206f722068;
-        var_e = 0x6173206265656e20647261696e656420616c7265616479000000000000000000;
+        var_e = this.code[12716:12716];
+        var_e = this.code[12748:12748];
+        uint256 var_d = (var_f ^ 0xe34b678b6fe4ceac02c128ac24c088ab6b5994fe0f926dcffcd3b0e23e0804d1) - var_f;
+        var_e = this.code[12780:12780];
+        uint248 var_g = (0x37fc0d9d9c528d30b6bc8df75e52f730 - (0xc8efecd5254ac846b3d304e6831cae83 - (var_h - (0x1bdc72b0 ^ (0x47e0541b ^ (0x628ca836 ^ (0x9039dfb3 ^ (uint248((0xaf12ead82e86dd5ba6be785ebe208ab3c5750970dc6704de7ebc94574e279070 - var_f) - 0x41e3))))))))) ^ 0x02a1;
         var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
         var_b = 0x20;
         var_c = 0x13;
-        var_d = 0x436f6e7472616374206e6f742066756e64656400000000000000000000000000;
+        var_e = this.code[12684:12684];
+        bytes1 var_i = (0x01 * (bytes1(store_c >> 0x08) - (0x035270a0f6a4e523 ^ (0xf45521522f13db92 ^ (0x03f01bb434b0eb7a ^ (var_f ^ (((0x2f8aaee0 - (0x75bcfdc7 - (0x2d8f41e7 + (uint248(var_h - 0x8410022601636001024628048011dbff9d1eb85dfd0c1f9dc823fa835c4ee48e))))) ^ 0x0267) - 0x9c81))))))) << 0x6a;
     }

─── Added: Unresolved_d606a07c (0xd606a07c) ───
@@ -1,0 +1,10 @@
+    /// @custom:selector    0xd606a07c
+    /// @custom:signature   Unresolved_d606a07c() public view returns (uint256)
+    function Unresolved_d606a07c() public view returns (uint256) {
+        require(!store_a);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+        uint256 var_a = 0;
+        return 0;
+    }

─── Added: Unresolved_d4b92859 (0xd4b92859) ───
@@ -1,0 +1,12 @@
+    
+    /// @custom:selector    0xd4b92859
+    /// @custom:signature   Unresolved_d4b92859(uint256 arg0) public pure returns (uint256)
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_d4b92859(uint256 arg0) public pure returns (uint256) {
+        require(0xd4 == msg.data[0]);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+        uint256 var_a = 0;
+        return 0;
+    }

─── Added: Unresolved_fd5c6a66 (0xfd5c6a66) ───
@@ -1,0 +1,16 @@
+    
+    /// @custom:selector    0xfd5c6a66
+    /// @custom:signature   Unresolved_fd5c6a66(uint256 arg0) public view returns (bool)
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_fd5c6a66(uint256 arg0) public view returns (bool) {
+        require(0x6a == msg.data[0]);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+        if (unresolved_af9f8d83) {
+            uint256 var_a = !(block.timestamp > unresolved_af9f8d83);
+            return !(block.timestamp > unresolved_af9f8d83);
+            var_a = unresolved_af9f8d83;
+            return unresolved_af9f8d83;
+        }
+    }

Commit 49e313c

Comment thread crates/transforms/src/slot_shuffle.rs
@g4titanx
Copy link
Copy Markdown
Member Author

@ozwaldorf please review sire!

@g4titanx g4titanx requested a review from ozwaldorf January 22, 2026 23:47
Comment thread crates/transforms/src/slot_shuffle.rs Outdated
@ozwaldorf
Copy link
Copy Markdown
Member

Make sure to add it to default passes!

ozwaldorf
ozwaldorf previously approved these changes Jan 23, 2026
@g4titanx
Copy link
Copy Markdown
Member Author

@ozwaldorf rebased to master

Copy link
Copy Markdown
Member

@ozwaldorf ozwaldorf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@g4titanx 2 commits got removed:

  • Add slot shuffle to default transform passes (which includes it in the decompile diff posted above)
  • replace "debug" with "warn" when the transfer skips completely

@g4titanx g4titanx requested a review from ozwaldorf January 28, 2026 16:24
@g4titanx
Copy link
Copy Markdown
Member Author

@ozwaldorf here please

@g4titanx g4titanx merged commit 07d6ce8 into master Jan 30, 2026
5 checks passed
@g4titanx g4titanx deleted the slot/shuffle branch January 30, 2026 15:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants