0

Decompiled the bytecode of a ERC-1155 contract using EtherScan, which gave the following result. It's fairly short, which is unexpected for an NFT, so line-by-line what does this code even mean, given that it's not even Solidity? Is there any malicious code here that should not interact with the contract?

#
#  Panoramix v4 Oct 2019 
#  Decompiled source of 0x192Bb5374ef5c20F651665b2a7752Ba1C419398e
# 
#  Let's make the world open source 
# 

def storage:
  storA3F0 is addr at storage 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50

def _fallback() payable: # default function
  require ext_code.size(storA3F0)
  static call storA3F0.implementation() with:
          gas gas_remaining wei
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require return_data.size >= 32
  delegate ext_call.return_data[0] with:
     funct call.data[0 len 4]
       gas gas_remaining wei
      args call.data[4 len calldata.size - 4]
  if not delegate.return_code:
      revert with ext_call.return_data[0 len return_data.size]
  return ext_call.return_data[0 len return_data.size]

1 Answer 1

0

It looks like a proxy contract.

First it get the current implementation with storA3F0.implementation().

Then it delegates the call with delegate ext_call.return_data[0].

2
  • If it's the contract of a NFT, is there any malicious code in it
    – user610620
    Mar 7 at 18:01
  • @user610620 Sorry, but without the source code I won't say anything about the contract safety.
    – Ismael
    Mar 7 at 20:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.