matic馬蹄鏈超級MMM互助公排dapp系統開發原始碼詳情

nice1022發表於2023-03-30

智慧合約是一個執行在以太坊鏈上的一個程式,超級MMM(3M)互助系統I34-開發I633-原始碼53I9, 它是位於以太坊區塊鏈上一個特定地址的一系列程式碼(函式)和資料(狀態)。

智慧合約也是一個以太坊帳戶,我們稱之為合約帳戶。 這意味著它們有餘額,可以成為交易的物件。 但是,他們無法被人操控,他們是被部署在網路上作為程式執行著。 個人使用者可以透過提交交易執行智慧合約的某一個函式來與智慧合約進行互動。 智慧合約能像常規合約一樣定義規則,並透過程式碼自動強制執行。 預設情況下,您無法刪除智慧合約,與它們的互動是不可逆的


# Palkeoramix decompiler. 
def storage:
  owner is addr at storage 0
  stor1 is addr at storage 1
  stor2 is addr at storage 2
  stor3 is uint8 at storage 3
  stor3 is uint8 at storage 3 offset 160
  stor3 is uint8 at storage 3 offset 168
  stor3 is uint8 at storage 3 offset 176
  stor3 is uint8 at storage 3 offset 184
  stor3 is uint8 at storage 3 offset 192
  stor3 is uint64 at storage 3 offset 200
  stor3 is addr at storage 3
  stor4 is addr at storage 4
  stor5 is addr at storage 5
  stor6 is addr at storage 6
  stor7 is addr at storage 7
  stor8 is mapping of uint8 at storage 8
def owner(): # not payable
  return owner
def unknownc7e21014(addr _param1): # not payable
  return bool(stor8[addr(_param1)])
#
#  Regular functions
#
def _fallback() payable: # default function
  revert
def isOwner(): # not payable
  return (caller == owner)
def unknown0a5aa421(): # not payable
  return stor4, stor5, stor6, stor7
def unknowne419d406(): # not payable
  return stor1, stor2, addr(stor3.field_0)
def renounceOwnership(): # not payable
  require caller == owner
  log OwnershipRenounced(address previousOwner=owner)
  owner = 0
def unknownd10fc104(): # not payable
  return uint8(stor3.field_0), uint8(stor3.field_0), uint8(stor3.field_0), uint8(stor3.field_0), uint8(stor3.field_192)
def unknown8ea2cdd6(addr _param1, addr _param2, addr _param3): # not payable
  require caller == owner
  stor1 = _param1
  stor2 = _param2
  addr(stor3.field_0) = _param3
def unknown93b4f0a5(addr _param1, addr _param2, addr _param3, addr _param4): # not payable
  require caller == owner
  stor4 = _param1
  stor5 = _param2
  stor6 = _param3
  stor7 = _param4
def transferOwnership(address _newOwner): # not payable
  require caller == owner
  require _newOwner
  log OwnershipTransferred(
        address previousOwner=owner,
        address newOwner=_newOwner)
  owner = _newOwner
def unknownc96e51d0(addr _param1, bool _param2): # not payable
  require caller == owner
  if _param2 == bool(stor8[addr(_param1)]):
      revert with 0x8c379a000000000000000000000000000000000000000000000000000000000, 'This address is already the value of 'value''
  stor8[addr(_param1)] = uint8(_param2)
def unknownb1e49ad7(addr _param1, uint256 _param2): # not payable
  require ext_code.size(stor1)
  call stor1.transferFrom(address from, address to, uint256 tokens) with:
       gas gas_remaining wei
      args addr(_param1), this.address, _param2
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
def unknown8ef9348c(uint8 _param1, uint8 _param2, uint8 _param3, uint8 _param4, uint8 _param5): # not payable
  require caller == owner
  uint8(stor3.field_160) = _param1
  uint8(stor3.field_168) = _param2
  uint8(stor3.field_176) = _param3
  uint8(stor3.field_184) = _param4
  uint8(stor3.field_192) = _param5
  stor3.field_200 % 72057594037927936 = 0
def unknown2f00d4cb(addr _param1, uint256 _param2): # not payable
  if not stor8[caller]:
      revert with 0, 'Error: caller is not the caller'
  require ext_code.size(stor1)
  call stor1.transfer(address to, uint256 tokens) with:
       gas gas_remaining wei
      args addr(_param1), _param2
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
def unknown46da7811(addr _param1, uint256 _param2): # not payable
  if not stor8[caller]:
      revert with 0, 'Error: caller is not the caller'
  require ext_code.size(addr(stor3.field_0))
  call addr(stor3.field_0).mint(address owner, uint256 value) with:
       gas gas_remaining wei
      args addr(_param1), _param2
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require return_data.size >= 32
def unknown7d4fa89a(addr _param1, uint256 _param2): # not payable
  require ext_code.size(stor1)
  call stor1.transferFrom(address from, address to, uint256 tokens) with:
       gas gas_remaining wei
      args addr(_param1), stor2, _param2
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require ext_code.size(stor2)
  call stor2.mint(address owner, uint256 value) with:
       gas gas_remaining wei
      args addr(_param1), _param2
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require return_data.size >= 32
def unknown1163023e(addr _param1, uint256 _param2): # not payable
  require ext_code.size(stor1)
  call stor1.balanceOf(address tokenOwner) with:
       gas gas_remaining wei
      args _param1
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require return_data.size >= 32
  require ext_call.return_data[0] >= _param2
  require ext_code.size(stor1)
  call stor1.balanceOf(address tokenOwner) with:
       gas gas_remaining wei
      args stor2
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require return_data.size >= 32
  require ext_call.return_data[0] >= _param2 * uint8(stor3.field_160) / 1000
  require ext_code.size(stor2)
  call stor2.balanceOf(address tokenOwner) with:
       gas gas_remaining wei
      args _param1
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require return_data.size >= 32
  require ext_call.return_data[0] >= _param2 * uint8(stor3.field_160) / 1000
  require ext_code.size(addr(stor3.field_0))
  call addr(stor3.field_0).balanceOf(address tokenOwner) with:
       gas gas_remaining wei
      args _param1
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require return_data.size >= 32
  require ext_call.return_data[0] >= 100 * 10^6
  require ext_code.size(stor1)
  call stor1.transferFrom(address from, address to, uint256 tokens) with:
       gas gas_remaining wei
      args addr(_param1), this.address, _param2
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require ext_code.size(stor2)
  call stor2.transferOut(address param1, uint256 param2) with:
       gas gas_remaining wei
      args stor4, _param2 * uint8(stor3.field_168) / 1000
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require ext_code.size(stor2)
  call stor2.transferOut(address param1, uint256 param2) with:
       gas gas_remaining wei
      args stor5, _param2 * uint8(stor3.field_176) / 1000
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require ext_code.size(stor2)
  call stor2.transferOut(address param1, uint256 param2) with:
       gas gas_remaining wei
      args stor6, _param2 * uint8(stor3.field_184) / 1000
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require ext_code.size(stor2)
  call stor2.transferOut(address param1, uint256 param2) with:
       gas gas_remaining wei
      args stor7, _param2 * uint8(stor3.field_192) / 1000
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require ext_code.size(stor2)
  call stor2.burn(address who, uint256 value) with:
       gas gas_remaining wei
      args addr(_param1), _param2 * uint8(stor3.field_160) / 1000
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require return_data.size >= 32
  require ext_code.size(addr(stor3.field_0))
  call addr(stor3.field_0).burn(address who, uint256 value) with:
       gas gas_remaining wei
      args addr(_param1), 100 * 10^6
  if not ext_call.success:
      revert with ext_call.return_data[0 len return_data.size]
  require return_data.size >= 32


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70011332/viewspace-2942680/,如需轉載,請註明出處,否則將追究法律責任。

相關文章