github.com/annchain/OG@v0.0.9/vm/vm_test/contracts/o/OwnedToken.evm (about)

     1      /* "../contracts/contruct.sol":34:1932  contract OwnedToken {... */
     2    mstore(0x40, 0x80)
     3      /* "../contracts/contruct.sol":370:1148  constructor(bytes32 _name) public {... */
     4    callvalue
     5      /* "--CODEGEN--":8:17   */
     6    dup1
     7      /* "--CODEGEN--":5:7   */
     8    iszero
     9    tag_1
    10    jumpi
    11      /* "--CODEGEN--":30:31   */
    12    0x0
    13      /* "--CODEGEN--":27:28   */
    14    dup1
    15      /* "--CODEGEN--":20:32   */
    16    revert
    17      /* "--CODEGEN--":5:7   */
    18  tag_1:
    19      /* "../contracts/contruct.sol":370:1148  constructor(bytes32 _name) public {... */
    20    pop
    21    mload(0x40)
    22    0x20
    23    dup1
    24    bytecodeSize
    25    dup4
    26    codecopy
    27    dup2
    28    add
    29    dup1
    30    0x40
    31    mstore
    32      /* "--CODEGEN--":13:15   */
    33    0x20
    34      /* "--CODEGEN--":8:11   */
    35    dup2
    36      /* "--CODEGEN--":5:16   */
    37    lt
    38      /* "--CODEGEN--":2:4   */
    39    iszero
    40    tag_2
    41    jumpi
    42      /* "--CODEGEN--":29:30   */
    43    0x0
    44      /* "--CODEGEN--":26:27   */
    45    dup1
    46      /* "--CODEGEN--":19:31   */
    47    revert
    48      /* "--CODEGEN--":2:4   */
    49  tag_2:
    50      /* "../contracts/contruct.sol":370:1148  constructor(bytes32 _name) public {... */
    51    dup2
    52    add
    53    swap1
    54    dup1
    55    dup1
    56    mload
    57    swap1
    58    0x20
    59    add
    60    swap1
    61    swap3
    62    swap2
    63    swap1
    64    pop
    65    pop
    66    pop
    67      /* "../contracts/contruct.sol":849:859  msg.sender */
    68    caller
    69      /* "../contracts/contruct.sol":841:846  owner */
    70    0x1
    71    0x0
    72      /* "../contracts/contruct.sol":841:859  owner = msg.sender */
    73    0x100
    74    exp
    75    dup2
    76    sload
    77    dup2
    78    0xffffffffffffffffffffffffffffffffffffffff
    79    mul
    80    not
    81    and
    82    swap1
    83    dup4
    84    0xffffffffffffffffffffffffffffffffffffffff
    85    and
    86    mul
    87    or
    88    swap1
    89    sstore
    90    pop
    91      /* "../contracts/contruct.sol":1108:1118  msg.sender */
    92    caller
    93      /* "../contracts/contruct.sol":1085:1092  creator */
    94    0x0
    95    dup1
    96      /* "../contracts/contruct.sol":1085:1119  creator = TokenCreator(msg.sender) */
    97    0x100
    98    exp
    99    dup2
   100    sload
   101    dup2
   102    0xffffffffffffffffffffffffffffffffffffffff
   103    mul
   104    not
   105    and
   106    swap1
   107    dup4
   108    0xffffffffffffffffffffffffffffffffffffffff
   109    and
   110    mul
   111    or
   112    swap1
   113    sstore
   114    pop
   115      /* "../contracts/contruct.sol":1136:1141  _name */
   116    dup1
   117      /* "../contracts/contruct.sol":1129:1133  name */
   118    0x2
   119      /* "../contracts/contruct.sol":1129:1141  name = _name */
   120    dup2
   121    swap1
   122    sstore
   123    pop
   124      /* "../contracts/contruct.sol":370:1148  constructor(bytes32 _name) public {... */
   125    pop
   126      /* "../contracts/contruct.sol":34:1932  contract OwnedToken {... */
   127    dataSize(sub_0)
   128    dup1
   129    dataOffset(sub_0)
   130    0x0
   131    codecopy
   132    0x0
   133    return
   134  stop
   135  
   136  sub_0: assembly {
   137          /* "../contracts/contruct.sol":34:1932  contract OwnedToken {... */
   138        mstore(0x40, 0x80)
   139        jumpi(tag_1, lt(calldatasize, 0x4))
   140        calldataload(0x0)
   141        0x100000000000000000000000000000000000000000000000000000000
   142        swap1
   143        div
   144        0xffffffff
   145        and
   146        dup1
   147        0x1a695230
   148        eq
   149        tag_2
   150        jumpi
   151        dup1
   152        0x898855ed
   153        eq
   154        tag_3
   155        jumpi
   156      tag_1:
   157        0x0
   158        dup1
   159        revert
   160          /* "../contracts/contruct.sol":1439:1930  function transfer(address newOwner) public {... */
   161      tag_2:
   162        callvalue
   163          /* "--CODEGEN--":8:17   */
   164        dup1
   165          /* "--CODEGEN--":5:7   */
   166        iszero
   167        tag_4
   168        jumpi
   169          /* "--CODEGEN--":30:31   */
   170        0x0
   171          /* "--CODEGEN--":27:28   */
   172        dup1
   173          /* "--CODEGEN--":20:32   */
   174        revert
   175          /* "--CODEGEN--":5:7   */
   176      tag_4:
   177          /* "../contracts/contruct.sol":1439:1930  function transfer(address newOwner) public {... */
   178        pop
   179        tag_5
   180        0x4
   181        dup1
   182        calldatasize
   183        sub
   184          /* "--CODEGEN--":13:15   */
   185        0x20
   186          /* "--CODEGEN--":8:11   */
   187        dup2
   188          /* "--CODEGEN--":5:16   */
   189        lt
   190          /* "--CODEGEN--":2:4   */
   191        iszero
   192        tag_6
   193        jumpi
   194          /* "--CODEGEN--":29:30   */
   195        0x0
   196          /* "--CODEGEN--":26:27   */
   197        dup1
   198          /* "--CODEGEN--":19:31   */
   199        revert
   200          /* "--CODEGEN--":2:4   */
   201      tag_6:
   202          /* "../contracts/contruct.sol":1439:1930  function transfer(address newOwner) public {... */
   203        dup2
   204        add
   205        swap1
   206        dup1
   207        dup1
   208        calldataload
   209        0xffffffffffffffffffffffffffffffffffffffff
   210        and
   211        swap1
   212        0x20
   213        add
   214        swap1
   215        swap3
   216        swap2
   217        swap1
   218        pop
   219        pop
   220        pop
   221        jump(tag_7)
   222      tag_5:
   223        stop
   224          /* "../contracts/contruct.sol":1154:1433  function changeName(bytes32 newName) public {... */
   225      tag_3:
   226        callvalue
   227          /* "--CODEGEN--":8:17   */
   228        dup1
   229          /* "--CODEGEN--":5:7   */
   230        iszero
   231        tag_8
   232        jumpi
   233          /* "--CODEGEN--":30:31   */
   234        0x0
   235          /* "--CODEGEN--":27:28   */
   236        dup1
   237          /* "--CODEGEN--":20:32   */
   238        revert
   239          /* "--CODEGEN--":5:7   */
   240      tag_8:
   241          /* "../contracts/contruct.sol":1154:1433  function changeName(bytes32 newName) public {... */
   242        pop
   243        tag_9
   244        0x4
   245        dup1
   246        calldatasize
   247        sub
   248          /* "--CODEGEN--":13:15   */
   249        0x20
   250          /* "--CODEGEN--":8:11   */
   251        dup2
   252          /* "--CODEGEN--":5:16   */
   253        lt
   254          /* "--CODEGEN--":2:4   */
   255        iszero
   256        tag_10
   257        jumpi
   258          /* "--CODEGEN--":29:30   */
   259        0x0
   260          /* "--CODEGEN--":26:27   */
   261        dup1
   262          /* "--CODEGEN--":19:31   */
   263        revert
   264          /* "--CODEGEN--":2:4   */
   265      tag_10:
   266          /* "../contracts/contruct.sol":1154:1433  function changeName(bytes32 newName) public {... */
   267        dup2
   268        add
   269        swap1
   270        dup1
   271        dup1
   272        calldataload
   273        swap1
   274        0x20
   275        add
   276        swap1
   277        swap3
   278        swap2
   279        swap1
   280        pop
   281        pop
   282        pop
   283        jump(tag_11)
   284      tag_9:
   285        stop
   286          /* "../contracts/contruct.sol":1439:1930  function transfer(address newOwner) public {... */
   287      tag_7:
   288          /* "../contracts/contruct.sol":1568:1573  owner */
   289        0x1
   290        0x0
   291        swap1
   292        sload
   293        swap1
   294        0x100
   295        exp
   296        swap1
   297        div
   298        0xffffffffffffffffffffffffffffffffffffffff
   299        and
   300          /* "../contracts/contruct.sol":1554:1573  msg.sender != owner */
   301        0xffffffffffffffffffffffffffffffffffffffff
   302        and
   303          /* "../contracts/contruct.sol":1554:1564  msg.sender */
   304        caller
   305          /* "../contracts/contruct.sol":1554:1573  msg.sender != owner */
   306        0xffffffffffffffffffffffffffffffffffffffff
   307        and
   308        eq
   309        iszero
   310          /* "../contracts/contruct.sol":1550:1582  if (msg.sender != owner) return; */
   311        iszero
   312        tag_13
   313        jumpi
   314          /* "../contracts/contruct.sol":1575:1582  return; */
   315        jump(tag_12)
   316          /* "../contracts/contruct.sol":1550:1582  if (msg.sender != owner) return; */
   317      tag_13:
   318          /* "../contracts/contruct.sol":1851:1858  creator */
   319        0x0
   320        dup1
   321        swap1
   322        sload
   323        swap1
   324        0x100
   325        exp
   326        swap1
   327        div
   328        0xffffffffffffffffffffffffffffffffffffffff
   329        and
   330          /* "../contracts/contruct.sol":1851:1876  creator.isTokenTransferOK */
   331        0xffffffffffffffffffffffffffffffffffffffff
   332        and
   333        0xc3cee9c1
   334          /* "../contracts/contruct.sol":1877:1882  owner */
   335        0x1
   336        0x0
   337        swap1
   338        sload
   339        swap1
   340        0x100
   341        exp
   342        swap1
   343        div
   344        0xffffffffffffffffffffffffffffffffffffffff
   345        and
   346          /* "../contracts/contruct.sol":1884:1892  newOwner */
   347        dup4
   348          /* "../contracts/contruct.sol":1851:1893  creator.isTokenTransferOK(owner, newOwner) */
   349        mload(0x40)
   350        dup4
   351        0xffffffff
   352        and
   353        0x100000000000000000000000000000000000000000000000000000000
   354        mul
   355        dup2
   356        mstore
   357        0x4
   358        add
   359        dup1
   360        dup4
   361        0xffffffffffffffffffffffffffffffffffffffff
   362        and
   363        0xffffffffffffffffffffffffffffffffffffffff
   364        and
   365        dup2
   366        mstore
   367        0x20
   368        add
   369        dup3
   370        0xffffffffffffffffffffffffffffffffffffffff
   371        and
   372        0xffffffffffffffffffffffffffffffffffffffff
   373        and
   374        dup2
   375        mstore
   376        0x20
   377        add
   378        swap3
   379        pop
   380        pop
   381        pop
   382        0x20
   383        mload(0x40)
   384        dup1
   385        dup4
   386        sub
   387        dup2
   388        dup7
   389        dup1
   390        extcodesize
   391        iszero
   392          /* "--CODEGEN--":8:17   */
   393        dup1
   394          /* "--CODEGEN--":5:7   */
   395        iszero
   396        tag_14
   397        jumpi
   398          /* "--CODEGEN--":30:31   */
   399        0x0
   400          /* "--CODEGEN--":27:28   */
   401        dup1
   402          /* "--CODEGEN--":20:32   */
   403        revert
   404          /* "--CODEGEN--":5:7   */
   405      tag_14:
   406          /* "../contracts/contruct.sol":1851:1893  creator.isTokenTransferOK(owner, newOwner) */
   407        pop
   408        gas
   409        staticcall
   410        iszero
   411          /* "--CODEGEN--":8:17   */
   412        dup1
   413          /* "--CODEGEN--":5:7   */
   414        iszero
   415        tag_15
   416        jumpi
   417          /* "--CODEGEN--":45:61   */
   418        returndatasize
   419          /* "--CODEGEN--":42:43   */
   420        0x0
   421          /* "--CODEGEN--":39:40   */
   422        dup1
   423          /* "--CODEGEN--":24:62   */
   424        returndatacopy
   425          /* "--CODEGEN--":77:93   */
   426        returndatasize
   427          /* "--CODEGEN--":74:75   */
   428        0x0
   429          /* "--CODEGEN--":67:94   */
   430        revert
   431          /* "--CODEGEN--":5:7   */
   432      tag_15:
   433          /* "../contracts/contruct.sol":1851:1893  creator.isTokenTransferOK(owner, newOwner) */
   434        pop
   435        pop
   436        pop
   437        pop
   438        mload(0x40)
   439        returndatasize
   440          /* "--CODEGEN--":13:15   */
   441        0x20
   442          /* "--CODEGEN--":8:11   */
   443        dup2
   444          /* "--CODEGEN--":5:16   */
   445        lt
   446          /* "--CODEGEN--":2:4   */
   447        iszero
   448        tag_16
   449        jumpi
   450          /* "--CODEGEN--":29:30   */
   451        0x0
   452          /* "--CODEGEN--":26:27   */
   453        dup1
   454          /* "--CODEGEN--":19:31   */
   455        revert
   456          /* "--CODEGEN--":2:4   */
   457      tag_16:
   458          /* "../contracts/contruct.sol":1851:1893  creator.isTokenTransferOK(owner, newOwner) */
   459        dup2
   460        add
   461        swap1
   462        dup1
   463        dup1
   464        mload
   465        swap1
   466        0x20
   467        add
   468        swap1
   469        swap3
   470        swap2
   471        swap1
   472        pop
   473        pop
   474        pop
   475          /* "../contracts/contruct.sol":1847:1923  if (creator.isTokenTransferOK(owner, newOwner))... */
   476        iszero
   477        tag_17
   478        jumpi
   479          /* "../contracts/contruct.sol":1915:1923  newOwner */
   480        dup1
   481          /* "../contracts/contruct.sol":1907:1912  owner */
   482        0x1
   483        0x0
   484          /* "../contracts/contruct.sol":1907:1923  owner = newOwner */
   485        0x100
   486        exp
   487        dup2
   488        sload
   489        dup2
   490        0xffffffffffffffffffffffffffffffffffffffff
   491        mul
   492        not
   493        and
   494        swap1
   495        dup4
   496        0xffffffffffffffffffffffffffffffffffffffff
   497        and
   498        mul
   499        or
   500        swap1
   501        sstore
   502        pop
   503          /* "../contracts/contruct.sol":1847:1923  if (creator.isTokenTransferOK(owner, newOwner))... */
   504      tag_17:
   505          /* "../contracts/contruct.sol":1439:1930  function transfer(address newOwner) public {... */
   506      tag_12:
   507        pop
   508        jump	// out
   509          /* "../contracts/contruct.sol":1154:1433  function changeName(bytes32 newName) public {... */
   510      tag_11:
   511          /* "../contracts/contruct.sol":1390:1397  creator */
   512        0x0
   513        dup1
   514        swap1
   515        sload
   516        swap1
   517        0x100
   518        exp
   519        swap1
   520        div
   521        0xffffffffffffffffffffffffffffffffffffffff
   522        and
   523          /* "../contracts/contruct.sol":1368:1398  msg.sender == address(creator) */
   524        0xffffffffffffffffffffffffffffffffffffffff
   525        and
   526          /* "../contracts/contruct.sol":1368:1378  msg.sender */
   527        caller
   528          /* "../contracts/contruct.sol":1368:1398  msg.sender == address(creator) */
   529        0xffffffffffffffffffffffffffffffffffffffff
   530        and
   531        eq
   532          /* "../contracts/contruct.sol":1364:1426  if (msg.sender == address(creator))... */
   533        iszero
   534        tag_19
   535        jumpi
   536          /* "../contracts/contruct.sol":1419:1426  newName */
   537        dup1
   538          /* "../contracts/contruct.sol":1412:1416  name */
   539        0x2
   540          /* "../contracts/contruct.sol":1412:1426  name = newName */
   541        dup2
   542        swap1
   543        sstore
   544        pop
   545          /* "../contracts/contruct.sol":1364:1426  if (msg.sender == address(creator))... */
   546      tag_19:
   547          /* "../contracts/contruct.sol":1154:1433  function changeName(bytes32 newName) public {... */
   548        pop
   549        jump	// out
   550  
   551      auxdata: 0xa165627a7a723058200eaaef95da7e440ebd4d62e215d89a2937fbc0b9c5c514334ea99a84235563060029
   552  }