Ethereum

0x1d8f8f00cfa6758d7be78336684788fb0ee0fa46

Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.

Decompilation outputEthereum · 0x1d8f8f00…0ee0fa4611.0 KB1.6 s
Share
621 lines · Click a variable or keyword to highlight its references · Click a line number to copy its link; Shift-click to copy a block link
//decompiled by exvvul decompiler tool contact@exvul.com https://x.com/exvulsec// SPDX-License-Identifier: MIT  >=0.8.0;  {    ( => ) ; // STORAGE[0x0]    ( => ) ; // STORAGE[0x1]    ( => )  ; // STORAGE[0x2]    ( => )  ; // STORAGE[0x3]    ( => )  ; // STORAGE[0x4]    ( => )  ; // STORAGE[0x5]    ( => )  ; // STORAGE[0x6]    ( => ) ; // STORAGE[0x7]    ( => )  ; // STORAGE[0x8]      ; // STORAGE[0x9]     ; // STORAGE[0xa]     ;     ;     ;     ;     ;         (, );     ( ,  , );    ()   {        // Synthetic compatibility routes preserve original selectors for unresolved names.         ((.. >= 4) && (. == 0x986e791a)) {            // Route to Unknown_986e791a(uint256) after replacing only msg.sig.            ((0x9f5a2740));            ;        }         ((.. >= 4) && (. == 0xabfdcced)) {            // Route to Unknown_abfdcced(uint256,uint256) after replacing only msg.sig.            ((0xbf4614a5));            ;        }         ((.. >= 4) && (. == 0xc031a180)) {            // Route to Unknown_c031a180(uint256) after replacing only msg.sig.            ((0xbce514f6));            ;        }        ();    }             ( )   {         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }        [] = 0;    }         ( )   {         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }        [] = (0);    }         ()    () {         !(!(( / 0x010000000000000000000000000000000000000000)));    }         ()   {        (. == (()), "Confirmation must come from new guardian address");         = ();         =  & (0xffffffffffffffffffffffff0000000000000000000000000000000000000000);         (, ( | ( & (0xffffffffffffffffffffffff0000000000000000000000000000000000000000))));    }         ( )   {         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }        [] = ;    }         ( ,   )   {        ( <= 0x100000000);        (!(((0x04 + ) + 0x20) > (0x04 + (.. - 0x04))));        (!((. > 0x0100000000) | ((0x20 + (0x04 + )) + (. * 0x01) > (0x04 + (.. - 0x04)))));         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }         ;         ;         ;         (. != 0x0) {             ;             ;             ;             (0x1f < .) {                 = 0x01 + ( + );                  = 0x20 + (0x04 + );                  = (.((.(, 0x01))));                  = ;                  = (.((.(, 0x01))));                  = 0x20 + (0x04 + );                 () {                     ((0x20 + (0x04 + )) +  <= ) {                        ;                    }                     = .[];                     = 0x01 + ;                     = 0x20 + ;                }                 = (0x20 + (0x04 + )) + ;                 = ;                 = ;                 = ;                 = ;                 = ;            }  {                 = (.[0x20 + (0x04 + )] & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00)) | ( + );                 = 0x20 + (0x04 + );                 = (.((.(, 0x01))));                 = ;            }             = ;             = ;             = ;        }  {             = 0;             = 0x20 + (0x04 + );             = (.((.(, 0x01))));             = ;        }          = ;          = (.((.(, 0x01)))) + ((0x1f + (((0x0100 * (!(0x01 & ))) - 0x01) &  / 0x02)) / 0x20);         () {             ( <= ) {                ;            }             = 0;             ( <= (0x01 + )) {                ;            }             = 0;             = 0x01 + (0x01 + );             = ;        }    }         ( ,  )   {         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }        [] = ;    }         ( ,  )   {         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }        [] = ;    }         ( )    () {         (!(([]))) {             ;        }         ([]);    }         ( )   {        ();    }         ( ,   )   {        ( <= 0x100000000);        (!(((0x04 + ) + 0x20) > (0x04 + (.. - 0x04))));        (!((. > 0x0100000000) | ((0x20 + (0x04 + )) + (. * 0x01) > (0x04 + (.. - 0x04)))));         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }         ;         ;         ;         (. != 0x0) {             ;             ;             ;             (0x1f < .) {                [] = 0x01 + ( + );                  = 0x20 + (0x04 + );                  = (.((.(, 0))));                  = ;                  = (.((.(, 0))));                  = 0x20 + (0x04 + );                 () {                     ((0x20 + (0x04 + )) +  <= ) {                        ;                    }                     = .[];                     = 0x01 + ;                     = 0x20 + ;                }                 = (0x20 + (0x04 + )) + ;                 = ;                 = ;                 = ;                 = ;                 = ;            }  {                [] = (.[0x20 + (0x04 + )] & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00)) | ( + );                 = 0x20 + (0x04 + );                 = (.((.(, 0))));                 = ;            }             = ;             = ;             = ;        }  {            [] = 0;             = 0x20 + (0x04 + );             = (.((.(, 0))));             = ;        }          = (.((.(, 0))));          = ((.((.(, 0))))) + ((0x1f + (((0x0100 * (!(0x01 & []))) - 0x01) & [] / 0x02)) / 0x20);         () {             ( <= ) {                ;            }             = 0;             ( <= (0x01 + )) {                ;            }             = 0;             = 0x01 + (0x01 + );             = ;        }    }         ( )   {        (. == , "Is not guardian account");         =  | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );    }         ( )   {         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }        [] = 0;    }         ( )    ( ) {         ;         = 0x20 + ( + (0x20 * ((([] & (((!([] & (0x01))) * 0x0100) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / 0x02) + 0x1f) / 0x20)));          = ([] & (((!([] & (0x01))) * 0x0100) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)) / 0x02;          = (.(, 0));          =  + 0x20;         ([] & (((!([] & (0x01))) * 0x0100) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / 0x02 != 0) {              = ( + 0x20) + ([] & (((!([] & (0x01))) * 0x0100) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / 0x02);             ;              = ;             ;              = (( + 0x20) + ([] & (((!([] & (0x01))) * 0x0100) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / 0x02)) + (0x1f & ( - (( + 0x20) + ([] & (((!([] & (0x01))) * 0x0100) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / 0x02))));             (0x1f < ([] & (((!([] & (0x01))) * 0x0100) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / 0x02)) {                 = 0x20 + ( + 0x20);                 = 0x01 + ((.((.(, 0)))));                 () {                     (( + 0x20) + ([] & ((!([] & (0x01)) * 0x0100) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / 0x02) <= ) {                        ;                    }                     = 0x20 + ;                     = 0x01 + ;                }            }  {                 = ([] & (((!([] & (0x01))) * 0x0100) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)) / 0x02;                 = (.(, 0));                 = 0x20 + ( + 0x20);            }             = ;             = ;             = ;        }          = 0;         () {             (!( < .)) {                ;            }             = 0x20 + ;        }          = . + ( + 0x40);         (0x1f & (.)) {             = 0x20 + ((. + ( + 0x40)) - (0x1f & (.)));        }         .(0x20, .);    }         ( ,  ,  )   {        ( != (0), "Invalid withdrawal address");         (!(([]))) {            (. == , "Only a tx from a node's withdrawal address can update it");             (!) {                [] =  | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & []);            }  {                [] =  | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & []);                 (, , .);            }        }        (. == (([])), "Only a tx from a node's withdrawal address can update it");         (!) {            [] =  | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & []);        }  {            [] =  | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & []);             (, , .);        }    }         ( ,  )   {         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }        [] =  | (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 & []);    }         ( ,  )   {         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }        (!(( + []) < []), "SafeMath: addition overflow");        [] =  + [];    }         ( )   {        (. == [], "Confirmation must come from the pending withdrawal address");        [] = (0);        [] = (.) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & []);         (, ., .);    }         ( )    ( ) {         ;         = 0x20 + ( + (0x20 * ((([] & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * (!([] & (0x01))))) / 0x02) + 0x1f) / 0x20)));         ([] & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * (!([] & (0x01))))) / 0x02 == 0) {              = 0;             () {                 (!( < .)) {                    ;                }                 = 0x20 + ;            }              = . + ( + 0x40);             (0x1f & (.)) {                 = 0x20 + ((. + ( + 0x40)) - (0x1f & (.)));            }        }  {             (0x1f < ([] & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * (!([] & (0x01))))) / 0x02)) {                  = 0x20 + ( + 0x20);                  = 0x01 + ((.((.(, 0x01)))));                 () {                     (( + 0x20) + ([] & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * !([] & (0x01)))) / 0x02) <= ) {                        ;                    }                     = 0x20 + ;                     = 0x01 + ;                }                  = 0;                 () {                     (!( < .)) {                        ;                    }                     = 0x20 + ;                }                  = . + ( + 0x40);                 (0x1f & (.)) {                     = 0x20 + ((. + ( + 0x40)) - (0x1f & (.)));                }            }  {                  = 0;                 () {                     (!( < .)) {                        ;                    }                     = 0x20 + ;                }                  = . + ( + 0x40);                 (0x1f & (.)) {                     = 0x20 + ((. + ( + 0x40)) - (0x1f & (.)));                }            }        }         .(0x20, .);    }         ( ,  )   {         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }        [] =  | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & []);    }         ( ,  )   {         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }        [] = ;    }         ( )   {         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }        [] = 0;    }         ( ,  )   {         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }        (!( > []), "SafeMath: subtraction overflow");        [] = [] - ;    }         ( )   {        ();    }         ()   {        (. == , "Is not guardian account");         = 0x010000000000000000000000000000000000000000 | (0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff & );    }         ( )  {        // Decompilation incomplete: helper effect provenance is conservative.         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }        [] = 0;         (0x1f < (((0x0100 * (!(0x01 & []))) - 0x01) & [] / 0x02)) {              = (.((.(, 0x01))));              = ((.((.(, 0x01))))) + ((0x1f + (((0x0100 * (!(0x01 & []))) - 0x01) & [] / 0x02)) / 0x20);             () {                 ( <= ) {                    ;                }                 = 0;                 ( <= (0x01 + )) {                    ;                }                 = 0;                 = (0x01 + (0x01 + ));                 = ;                ;            }        }    }         ( )  {        // Decompilation incomplete: helper effect provenance is conservative.         (!(0x01 == (!(!(( / 0x010000000000000000000000000000000000000000)))))) {              = [(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))];             (![(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))]) {                 = . == ;            }            (, "Invalid or outdated network contract attempting access during deployment");        }  {            ([(.(0x636f6e74726163742e6578697374730000000000000000000000000000000000, (. << 0x60)))], "Invalid or outdated network contract");        }        [] = 0;         (0x1f < (((0x0100 * (!(0x01 & []))) - 0x01) & [] / 0x02)) {              = (.((.(, 0))));              = ((.((.(, 0))))) + ((0x1f + (((0x0100 * (!(0x01 & []))) - 0x01) & [] / 0x02)) / 0x20);             () {                 ( <= ) {                    ;                }                 = 0;                 ( <= (0x01 + )) {                    ;                }                 = 0;                 = (0x01 + (0x01 + ));                 = ;                ;            }        }    }         ( )  {         {              := (0x40)            (, 0, ())            (, (((), 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff), (224, (, 0xffffffff))))              := ((), (), , (), 0, 0)              := ()            (, 0, )                          0 { (, ) }             { (, ) }        }    }        // Note: This selector table is synthetic and is not part of the original Solidity source.    // It records the recovered selector-to-signature mapping without executable behavior.        // 0x0b9adc57 => deleteBytes32(bytes32)    // 0x0e14a376 => deleteAddress(bytes32)    // 0x1bed5241 => getDeployedStatus()    // 0x1e0ea61e => confirmGuardian()    // 0x21f8a721 => getAddress(bytes32)    // 0x2c62ff2d => deleteBool(bytes32)    // 0x2e28d084 => setBytes(bytes32,bytes)    // 0x3e49bed0 => setInt(bytes32,int256)    // 0x4e91db08 => setBytes32(bytes32,bytes32)    // 0x5b49ff62 => getNodeWithdrawalAddress(address)    // 0x616b59f6 => deleteBytes(bytes32)    // 0x6e899550 => setString(bytes32,string)    // 0x7ae1cfca => getBool(bytes32)    // 0x8a0dac4a => setGuardian(address)    // 0x8c160095 => deleteInt(bytes32)    // 0x986e791a => Unknown_986e791a(uint256)    // 0xa543ccea => setWithdrawalAddress(address,address,bool)    // 0xa6ed563e => getBytes32(bytes32)    // 0xa75b87d2 => getGuardian()    // 0xabfdcced => Unknown_abfdcced(uint256,uint256)    // 0xadb353dc => addUint(bytes32,uint256)    // 0xbd02d0f5 => getUint(bytes32)    // 0xbd439126 => confirmWithdrawalAddress(address)    // 0xc031a180 => Unknown_c031a180(uint256)    // 0xca446dd9 => setAddress(bytes32,address)    // 0xdc97d962 => getInt(bytes32)    // 0xe2a4853a => setUint(bytes32,uint256)    // 0xe2b202bf => deleteUint(bytes32)    // 0xebb9d8c9 => subUint(bytes32,uint256)    // 0xf6bb3cc4 => deleteString(bytes32)    // 0xfd412513 => getNodePendingWithdrawalAddress(address)    // 0xfebffd99 => setDeployedStatus()}