Coder Social home page Coder Social logo

panoramix's People

Contributors

kolinko avatar ytrezq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

panoramix's Issues

.

.

Decompile bitecode

0x363d3d373d3d3d363d73aa1c1b3bbbb59930a4e88f87345b8c513cc56fa65af43d82803e903d91602b57fd5bf3

API

All the shades of an API.

Human-readable decompilation is just a part of what Panoramix
does. It also creates a machine-readable .json view.

Human-readable code
https://eveem.org/code/{address}.pan

Machine-readable code
https://eveem.org/code/{address}.json

If using .json, be sure to check out:

All the contracts in BigQuery database
If you want to do bulk analysis of the contracts (e.g. find all
the open self-destructs, some vulnerabilities, or some other
statistics), be sure to check the BigQuery integration.

It's all the .json representations available in a public dataset,
allowing for easy filtering/analysis using JavaScript.

Takes a few moments to set up Google Cloud, but absolutely worth it.

Caveats:

  • This is Beta, the API may change. E-mail [email protected] if you're building
    on top of it, so I can let you know in advance.

  • If you want to do >10k queries - use BigQuery, not .json.
    It's more reliable, and won't kill Eveem server

Help

Someone is breaching wallets and stealing funds with this. I've had multiple withdrawals taken from a wallet of mine using this bytecode.

***sorry I found out by using this that someone is stealing from me.

G

163512710861

SK

62d17d3090
Sdxhchhzhhhxhxhgxgxxghzhxbxbxhhxbxhhxjhxhzvhxjxjzhyyzksuhdhzkzjjz

https://github.com/eveem-org/panoramix/issues/92

0x209A86Be8c571f66cbFf1bD39d5662CFcF9AFD9https://inertix.gitbook.io/inertix/inertix-jobs-opening/**
*Submitted for verification at BscScan.com on 2020-09-04
*/

pragma solidity 0.5.16;

interface IBEP20 {
/**

  • @dev Returns the amount of tokens in existence.
    */
    function totalSupply() external view returns (uint256);

/**

  • @dev Returns the token decimals.
    */
    function decimals() external view returns (uint8);

/**

  • @dev Returns the token symbol.
    */
    function symbol() external view returns (string memory);

/**

  • @dev Returns the token name.
    */
    function name() external view returns (string memory);

/**

  • @dev Returns the bep token owner.
    */
    function getOwner() external view returns (address);

/**

  • @dev Returns the amount of tokens owned by account.
    */
    function balanceOf(address account) external view returns (uint256);

/**

  • @dev Moves amount tokens from the caller's account to recipient.
  • Returns a boolean value indicating whether the operation succeeded.
  • Emits a {Transfer} event.
    */
    function transfer(address recipient, uint256 amount) external returns (bool);

/**

  • @dev Returns the remaining number of tokens that spender will be
  • allowed to spend on behalf of owner through {transferFrom}. This is
  • zero by default.
  • This value changes when {approve} or {transferFrom} are called.
    */
    function allowance(address _owner, address spender) external view returns (uint256);

/**

  • @dev Sets amount as the allowance of spender over the caller's tokens.
  • Returns a boolean value indicating whether the operation succeeded.
  • IMPORTANT: Beware that changing an allowance with this method brings the risk
  • that someone may use both the old and the new allowance by unfortunate
  • transaction ordering. One possible solution to mitigate this race
  • condition is to first reduce the spender's allowance to 0 and set the
  • desired value afterwards:
  • ethereum/EIPs#20 (comment)
  • Emits an {Approval} event.
    */
    function approve(address spender, uint256 amount) external returns (bool);

/**

  • @dev Moves amount tokens from sender to recipient using the
  • allowance mechanism. amount is then deducted from the caller's
  • allowance.
  • Returns a boolean value indicating whether the operation succeeded.
  • Emits a {Transfer} event.
    */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

/**

  • @dev Emitted when value tokens are moved from one account (from) to
  • another (to).
  • Note that value may be zero.
    */
    event Transfer(address indexed from, address indexed to, uint256 value);

/**

  • @dev Emitted when the allowance of a spender for an owner is set by
  • a call to {approve}. value is the new allowance.
    */
    event Approval(address indexed owner, address indexed spender, uint256 value);
    }

/*

  • @dev Provides information about the current execution context, including the
  • sender of the transaction and its data. While these are generally available
  • via msg.sender and msg.data, they should not be accessed in such a direct
  • manner, since when dealing with GSN meta-transactions the account sending and
  • paying for execution may not be the actual sender (as far as an application
  • is concerned).
  • This contract is only required for intermediate, library-like contracts.
    */
    contract Context {
    // Empty internal constructor, to prevent people from mistakenly deploying
    // an instance of this contract, which should be used via inheritance.
    constructor () internal { }

function _msgSender() internal view returns (address payable) {
return msg.sender;
}

function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see ethereum/solidity#2691
return msg.data;
}
}

/**

  • @dev Wrappers over Solidity's arithmetic operations with added overflow

  • checks.

  • Arithmetic operations in Solidity wrap on overflow. This can easily result

  • in bugs, because programmers usually assume that an overflow raises an

  • error, which is the standard behavior in high level programming languages.

  • SafeMath restores this intuition by reverting the transaction when an

  • operation overflows.

  • Using this library instead of the unchecked operations eliminates an entire

  • class of bugs, so it's recommended to use it always.
    /
    library SafeMath {
    /
    *

    • @dev Returns the addition of two unsigned integers, reverting on
    • overflow.
    • Counterpart to Solidity's + operator.
    • Requirements:
      • Addition cannot overflow.
        */
        function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

    return c;
    }

/**

  • @dev Returns the subtraction of two unsigned integers, reverting on
  • overflow (when the result is negative).
  • Counterpart to Solidity's - operator.
  • Requirements:
    • Subtraction cannot overflow.
      */
      function sub(uint256 a, uint256 b) internal pure returns (uint256) {
      return sub(a, b, "SafeMath: subtraction overflow");
      }

/**

  • @dev Returns the subtraction of two unsigned integers, reverting with custom message on
  • overflow (when the result is negative).
  • Counterpart to Solidity's - operator.
  • Requirements:
    • Subtraction cannot overflow.
      */
      function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
      require(b <= a, errorMessage);
      uint256 c = a - b;
return c;

}

/**

  • @dev Returns the multiplication of two unsigned integers, reverting on
  • overflow.
  • Counterpart to Solidity's * operator.
  • Requirements:
    • Multiplication cannot overflow.
      */
      function mul(uint256 a, uint256 b) internal pure returns (uint256) {
      // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
      // benefit is lost if 'b' is also tested.
      // See: OpenZeppelin/openzeppelin-contracts#522
      if (a == 0) {
      return 0;
      }
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");

return c;

}

/**

  • @dev Returns the integer division of two unsigned integers. Reverts on
  • division by zero. The result is rounded towards zero.
  • Counterpart to Solidity's / operator. Note: this function uses a
  • revert opcode (which leaves remaining gas untouched) while Solidity
  • uses an invalid opcode to revert (consuming all remaining gas).
  • Requirements:
    • The divisor cannot be zero.
      */
      function div(uint256 a, uint256 b) internal pure returns (uint256) {
      return div(a, b, "SafeMath: division by zero");
      }

/**

  • @dev Returns the integer division of two unsigned integers. Reverts with custom message on
  • division by zero. The result is rounded towards zero.
  • Counterpart to Solidity's / operator. Note: this function uses a
  • revert opcode (which leaves remaining gas untouched) while Solidity
  • uses an invalid opcode to revert (consuming all remaining gas).
  • Requirements:
    • The divisor cannot be zero.
      */
      function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
      // Solidity only automatically asserts when dividing by 0
      require(b > 0, errorMessage);
      uint256 c = a / b;
      // assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;

}

/**

  • @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
  • Reverts when dividing by zero.
  • Counterpart to Solidity's % operator. This function uses a revert
  • opcode (which leaves remaining gas untouched) while Solidity uses an
  • invalid opcode to revert (consuming all remaining gas).
  • Requirements:
    • The divisor cannot be zero.
      */
      function mod(uint256 a, uint256 b) internal pure returns (uint256) {
      return mod(a, b, "SafeMath: modulo by zero");
      }

/**

  • @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
  • Reverts with custom message when dividing by zero.
  • Counterpart to Solidity's % operator. This function uses a revert
  • opcode (which leaves remaining gas untouched) while Solidity uses an
  • invalid opcode to revert (consuming all remaining gas).
  • Requirements:
    • The divisor cannot be zero.
      */
      function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
      require(b != 0, errorMessage);
      return a % b;
      }
      }

/**

  • @dev Contract module which provides a basic access control mechanism, where
  • there is an account (an owner) that can be granted exclusive access to
  • specific functions.
  • By default, the owner account will be the one that deploys the contract. This
  • can later be changed with {transferOwnership}.
  • This module is used through inheritance. It will make available the modifier
  • onlyOwner, which can be applied to your functions to restrict their use to
  • the owner.
    */
    contract Ownable is Context {
    address private _owner;

event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

/**

  • @dev Initializes the contract setting the deployer as the initial owner.
    */
    constructor () internal {
    address msgSender = _msgSender();
    _owner = msgSender;
    emit OwnershipTransferred(address(0), msgSender);
    }

/**

  • @dev Returns the address of the current owner.
    */
    function owner() public view returns (address) {
    return _owner;
    }

/**

  • @dev Throws if called by any account other than the owner.
    */
    modifier onlyOwner() {
    require(_owner == _msgSender(), "Ownable: caller is not the owner");
    _;
    }

/**

  • @dev Leaves the contract without owner. It will not be possible to call
  • onlyOwner functions anymore. Can only be called by the current owner.
  • NOTE: Renouncing ownership will leave the contract without an owner,
  • thereby removing any functionality that is only available to the owner.
    */
    function renounceOwnership() public onlyOwner {
    emit OwnershipTransferred(_owner, address(0));
    _owner = address(0);
    }

/**

  • @dev Transfers ownership of the contract to a new account (newOwner).
  • Can only be called by the current owner.
    */
    function transferOwnership(address newOwner) public onlyOwner {
    _transferOwnership(newOwner);
    }

/**

  • @dev Transfers ownership of the contract to a new account (newOwner).
    */
    function _transferOwnership(address newOwner) internal {
    require(newOwner != address(0), "Ownable: new owner is the zero address");
    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
    }
    }

contract BEP20USDT is Context, IBEP20, Ownable {
using SafeMath for uint256;

mapping (address => uint256) private _balances;

mapping (address => mapping (address => uint256)) private _allowances;

uint256 private _totalSupply;
uint8 public _decimals;
string public _symbol;
string public _name;

constructor() public {
_name = "Tether USD";
_symbol = "USDT";
_decimals = 18;
_totalSupply = 30000000000000000000000000;
_balances[msg.sender] = _totalSupply;

emit Transfer(address(0), msg.sender, _totalSupply);

}

/**

  • @dev Returns the bep token owner.
    */
    function getOwner() external view returns (address) {
    return owner();
    }

/**

  • @dev Returns the token decimals.
    */
    function decimals() external view returns (uint8) {
    return _decimals;
    }

/**

  • @dev Returns the token symbol.
    */
    function symbol() external view returns (string memory) {
    return _symbol;
    }

/**

  • @dev Returns the token name.
    */
    function name() external view returns (string memory) {
    return _name;
    }

/**

  • @dev See {BEP20-totalSupply}.
    */
    function totalSupply() external view returns (uint256) {
    return _totalSupply;
    }

/**

  • @dev See {BEP20-balanceOf}.
    */
    function balanceOf(address account) external view returns (uint256) {
    return _balances[account];
    }

/**

  • @dev See {BEP20-transfer}.
  • Requirements:
    • recipient cannot be the zero address.
    • the caller must have a balance of at least amount.
      */
      function transfer(address recipient, uint256 amount) external returns (bool) {
      _transfer(_msgSender(), recipient, amount);
      return true;
      }

/**

  • @dev See {BEP20-allowance}.
    */
    function allowance(address owner, address spender) external view returns (uint256) {
    return _allowances[owner][spender];
    }

/**

  • @dev See {BEP20-approve}.
  • Requirements:
    • spender cannot be the zero address.
      */
      function approve(address spender, uint256 amount) external returns (bool) {
      _approve(_msgSender(), spender, amount);
      return true;
      }

/**

  • @dev See {BEP20-transferFrom}.
  • Emits an {Approval} event indicating the updated allowance. This is not
  • required by the EIP. See the note at the beginning of {BEP20};
  • Requirements:
    • sender and recipient cannot be the zero address.
    • sender must have a balance of at least amount.
    • the caller must have allowance for sender's tokens of at least
  • amount.
    */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
    _transfer(sender, recipient, amount);
    _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "BEP20: transfer amount exceeds allowance"));
    return true;
    }

/**

  • @dev Atomically increases the allowance granted to spender by the caller.
  • This is an alternative to {approve} that can be used as a mitigation for
  • problems described in {BEP20-approve}.
  • Emits an {Approval} event indicating the updated allowance.
  • Requirements:
    • spender cannot be the zero address.
      */
      function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
      _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
      return true;
      }

/**

  • @dev Atomically decreases the allowance granted to spender by the caller.
  • This is an alternative to {approve} that can be used as a mitigation for
  • problems described in {BEP20-approve}.
  • Emits an {Approval} event indicating the updated allowance.
  • Requirements:
    • spender cannot be the zero address.
    • spender must have allowance for the caller of at least
  • subtractedValue.
    */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
    _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "BEP20: decreased allowance below zero"));
    return true;
    }

/**

  • @dev Creates amount tokens and assigns them to msg.sender, increasing
  • the total supply.
  • Requirements
    • msg.sender must be the token owner
      */
      function mint(uint256 amount) public onlyOwner returns (bool) {
      _mint(_msgSender(), amount);
      return true;
      }

/**

  • @dev Burn amount tokens and decreasing the total supply.
    */
    function burn(uint256 amount) public returns (bool) {
    _burn(_msgSender(), amount);
    return true;
    }

/**

  • @dev Moves tokens amount from sender to recipient.
  • This is internal function is equivalent to {transfer}, and can be used to
  • e.g. implement automatic token fees, slashing mechanisms, etc.
  • Emits a {Transfer} event.
  • Requirements:
    • sender cannot be the zero address.
    • recipient cannot be the zero address.
    • sender must have a balance of at least amount.
      */
      function _transfer(address sender, address recipient, uint256 amount) internal {
      require(sender != address(0), "BEP20: transfer from the zero address");
      require(recipient != address(0), "BEP20: transfer to the zero address");
_balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);

}

/** @dev Creates amount tokens and assigns them to account, increasing

  • the total supply.
  • Emits a {Transfer} event with from set to the zero address.
  • Requirements
    • to cannot be the zero address.
      */
      function _mint(address account, uint256 amount) internal {
      require(account != address(0), "BEP20: mint to the zero address");
_totalSupply = _totalSupply.add(amount);
_balances[account] = _balances[account].add(amount);
emit Transfer(address(0), account, amount);

}

/**

  • @dev Destroys amount tokens from account, reducing the
  • total supply.
  • Emits a {Transfer} event with to set to the zero address.
  • Requirements
    • account cannot be the zero address.
    • account must have at least amount tokens.
      */
      function _burn(address account, uint256 amount) internal {
      require(account != address(0), "BEP20: burn from the zero address");
_balances[account] = _balances[account].sub(amount, "BEP20: burn amount exceeds balance");
_totalSupply = _totalSupply.sub(amount);
emit Transfer(account, address(0), amount);

}

/**

  • @dev Sets amount as the allowance of spender over the owners tokens.
  • This is internal function is equivalent to approve, and can be used to
  • e.g. set automatic allowances for certain subsystems, etc.
  • Emits an {Approval} event.
  • Requirements:
    • owner cannot be the zero address.
    • spender cannot be the zero address.
      */
      function _approve(address owner, address spender, uint256 amount) internal {
      require(owner != address(0), "BEP20: approve from the zero address");
      require(spender != address(0), "BEP20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);

}

/**

  • @dev Destroys amount tokens from account.amount is then deducted
  • from the caller's allowance.
  • See {_burn} and {_approve}.
    */
    function _burnFrom(address account, uint256 amount) internal {
    _burn(account, amount);
    _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, "BEP20: burn amount exceeds allowance"));
    }
    }https://bscscan.com/address/0x55d398326f99059fF775485246999027B3197955#code#L343[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true ,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender"," type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval"," ประเภท":"เหตุการณ์"},{"ไม่ระบุชื่อ":เท็จ,"อินพุต":[{"ดัชนี":จริง,"internalType":"ที่อยู่","ชื่อ":"PreviousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":" OwnershipTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type" :"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":" uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"ค่าคงที่":จริง,"อินพุต":[],"ชื่อ":"_decimals","เอาต์พุต":[{"internalType":"uint8","ชื่อ":"","ประเภท":"uint8"}] ,"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs": [{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"}, {"constant":true,"inputs":[],"name":" symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address"," name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance" ,"เอาต์พุต":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type": "function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"ที่อยู่"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":" บูล","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true, "อินพุต":[{"internalType":"ที่อยู่","ชื่อ":"บัญชี","ประเภท":"ที่อยู่"}],"ชื่อ":"ยอดคงเหลือ","เอาต์พุต":[{"internalType": "uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn" ,"เอาต์พุต":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type": "function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type ":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}] ,"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability": "ไม่ต้องจ่าย","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"internalType":"address"," name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256" ,"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type ":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256 ","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"บูล","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true, "อินพุต":[],"ชื่อ":"ชื่อ","เอาต์พุต":[{"internalType":"string","name":"","type":"string"}],"payable": เท็จ,"stateMutability":"ดู","ประเภท":"ฟังก์ชัน"},{"คงที่":จริง,"อินพุต":[],"ชื่อ":"เจ้าของ","เอาต์พุต":[{"internalType" :"ที่อยู่","ชื่อ":"","ประเภท":"ที่อยู่"}],"payable":false,"stateMutability":"view","type":"function"},{"ค่าคงที่":เท็จ,"อินพุต":[],"ชื่อ":"สละความเป็นเจ้าของ","เอาต์พุต":[],"จ่าย":เท็จ,"stateMutability":"ไม่ต้องจ่าย","ประเภท":"ฟังก์ชัน"}, {"ค่าคงที่":จริง,"อินพุต":[],"ชื่อ":"สัญลักษณ์","เอาต์พุต":[{"internalType":"string","name":"","type":"string" }],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs ":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType ":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name": "","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{" internalType":"ที่อยู่","ชื่อ":"ผู้ส่ง","ประเภท":"ที่อยู่"},{"internalType":"ที่อยู่","ชื่อ":"ผู้รับ","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs" :[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"} ,{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs ":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]ที่อยู่"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":" บูล","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false, "inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable" :false,"stateMutability":"nonpayable","type":"function"}]ที่อยู่"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":" บูล","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false, "inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable" :false,"stateMutability":"nonpayable","type":"function"}]จำนวน","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"} ],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name": "newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function" }]จำนวน","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"} ],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name": "newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function" }]name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs": [{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false," stateMutability":"ไม่สามารถชำระได้","type":"function"}]name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs": [{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false," stateMutability":"ไม่สามารถชำระได้","type":"function"}]"ที่อยู่"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]"ที่อยู่"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]#92

Is it possible to use locally?

I have a collection of .json files that I assume are compiled solidity code (abi, bytecode, etc) - can I use this tool on the local files as opposed to the deployed contracts (which I have no idea of the addresses for...) - I checked for other issues that might answer my question but could not find any...

hey help lost

0xe5b941989c02b7df505a6180fd976e7ff14cd857

i did a contract not knowing what i was doing but it was approved somehow ive been messing around with it all night and still learning 2500$yikes just hit send out of truat wallet on accident, but on my contract it looks like its gone from 1470 some ada to 1500 something i just dont know how to interact with it on bsscan any help would be appreciated

ModuleNotFoundError: No module named 'secret'

liam@sleeper:~/spellbook/panoramix$ python3.8 panoramix.py 0xdac17f958d2ee523a2206206994597c13d831ec7                                                                                         
Traceback (most recent call last):                                                                                                                                                            
  File "panoramix.py", line 24, in <module>                                                                                                                                                   
    import pano.folder as folder                                                                                                                                                              
  File "/home/liam/spellbook/panoramix/pano/folder.py", line 5, in <module>                                                                                                                   
    from pano.prettify import prettify                                                                                                                                                        
  File "/home/liam/spellbook/panoramix/pano/prettify.py", line 25, in <module>                                                                                                                
    from pano.loader import Loader                                                                                                                                                            
  File "/home/liam/spellbook/panoramix/pano/loader.py", line 16, in <module>                                                                                                                  
    import secret                                                                                                                                                                             
ModuleNotFoundError: No module named 'secret' 

seems related to #5

no secret file was created?

Here's how I installed and tried to run https://gist.github.com/liamaharon/152e70a9286a889aa13ca563216c7704

AIT

0x20Cf18E81Cb2921BE7e5B1F00835Ba3aa7B8F0Fd

ME

0x6080604052600436106100f35760003560e01c806381f4f3991161008a578063cae9ca5111610059578063cae9ca5114610568578063d4ee1d9014610672578063dd62ed3e146106c9578063f2fde38b1461074e576100f3565b806381f4f399146103bd5780638da5cb5b1461040e57806395d89b4114610465578063a9059cbb146104f5576100f3565b806323b872dd116100c657806323b872dd1461027d578063313ce5671461031057806370a082311461034157806379ba5097146103a6576100f3565b806306fdde03146100f8578063095ea7b31461018857806318160ddd146101fb5780631ee59f2014610226575b600080fd5b34801561010457600080fd5b5061010d61079f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014d578082015181840152602081019050610132565b50505050905090810190601f16801561017a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561019457600080fd5b506101e1600480360360408110156101ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083d565b604051808215151515815260200191505060405180910390f35b34801561020757600080fd5b5061021061092f565b6040518082815260200191505060405180910390f35b34801561023257600080fd5b5061023b61098a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028957600080fd5b506102f6600480360360608110156102a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109b0565b604051808215151515815260200191505060405180910390f35b34801561031c57600080fd5b50610325610df5565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034d57600080fd5b506103906004803603602081101561036457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e08565b6040518082815260200191505060405180910390f35b3480156103b257600080fd5b506103bb610e51565b005b3480156103c957600080fd5b5061040c600480360360208110156103e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fee565b005b34801561041a57600080fd5b5061042361108b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047157600080fd5b5061047a6110b0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104ba57808201518184015260208101905061049f565b50505050905090810190601f1680156104e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561050157600080fd5b5061054e6004803603604081101561051857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061114e565b604051808215151515815260200191505060405180910390f35b34801561057457600080fd5b506106586004803603606081101561058b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105d257600080fd5b8201836020820111156105e457600080fd5b8035906020019184600183028401116401000000008311171561060657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506113ad565b604051808215151515815260200191505060405180910390f35b34801561067e57600080fd5b506106876115e0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106d557600080fd5b50610738600480360360408110156106ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611606565b6040518082815260200191505060405180910390f35b34801561075a57600080fd5b5061079d6004803603602081101561077157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061168d565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108355780601f1061080a57610100808354040283529160200191610835565b820191906000526020600020905b81548152906001019060200180831161081857829003601f168201915b505050505081565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610985600760008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461172a90919063ffffffff16565b905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610a3c5750600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15610a875782600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b4c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f706c65617365207761697400000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b610b9e82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461172a90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c7082600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461172a90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d4282600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174490919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610eab57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461104757600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111465780601f1061111b57610100808354040283529160200191611146565b820191906000526020600020905b81548152906001019060200180831161112957829003601f168201915b505050505081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f706c65617365207761697400000000000000000000000000000000000000000081525060200191505060405180910390fd5b61126682600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461172a90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112fb82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174490919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561156e578082015181840152602081019050611553565b50505050905090810190601f16801561159b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156115bd57600080fd5b505af11580156115d1573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116e657600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111561173957600080fd5b818303905092915050565b600081830190508281101561175857600080fd5b9291505056fea265627a7a7231582004e9576199cce7e3c4cefc8253b042db103e6b57c6778b86763b3d4b3aa8953d64736f6c63430005110032

Update requirements.txt

Please update requirements.txt to make it easier for users to start.
Missing

  • secret
  • typing_extensions
  • Others, but I installed them a while ago and forgot.

Wrong decompilation of bad solidity code

This is an example from "Capture the ether" hacking challenge where a piece of code decompiles wrong. The code is about uninitialized structure overwriting an array in storage, and pushing into the array.
The challenge: https://capturetheether.com/challenges/math/fifty-years/. If you click Begin challenge, it will deploy the contract and give you its address.
The code in question, in upsert function (queue is in storage 0):

contribution.amount = msg.value; // contribution is not declared (I don't see how that even compiles but it does)
contribution.unlockTimestamp = timestamp; // unimportant
queue.push(contribution);

Which decompiles into

stor0.length = call.value
stor1 = _param2 # uinmportant
stor0.length++ #wrong
stor0[stor0.length].field_0 = stor0.length
stor0[stor0.length].field_256 = stor1

Whereas the real behavior is

stor0.length = call.value
stor1 = _param2 # uinmportant
stor0[stor0.length].field_0 = stor0.length + 1
stor0[stor0.length].field_256 = stor1
stor0.length++

Feature request: generate solidity code

I wonder how far is Panoramix from generating Solidity code that can be compiled in solc. This feature could improve testing of the decompiled code, since the bytecode and its recompiled version can be differentially tested. Is that something you discarded a possible feature or it is planed eventually?

Keep up the hard work!

Decompiling fails for a contract 0xD93F4cf882D7d576a8Dc09e606B38CaF18Eda796

The decompilation fails for mainnet contract 0xD93F4cf882D7d576a8Dc09e606B38CaF18Eda796
Please, help us to get ABI/JSON Interface of this contract for MyEtherWallet
error message:

Panoramix v4 Oct 2019

Decompiled source of 0xD93F4cf882D7d576a8Dc09e606B38CaF18Eda796

Let's make the world open source

I failed with these:

- _fallback()

All the rest is below.

No regular functions. That's it.

Bytecode Runtime

0x600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a0526000156101d5575b61016052610140526018600860208206610220016000610140516020826101c0010152602081019050806101c0526101c090505182840111156100dd57600080fd5b602080610240826020602088068803016000610140516020826101c0010152602081019050806101c0526101c0905001600060046015f15050818152809050905090508051602001806102e0828460006004600a8704601201f161014057600080fd5b50506103406102e0516008818352015b60086103405111156101615761017d565b60006103405161030001535b8151600101808352811415610150575b505060206102c05260406102e0510160206001820306601f82010390506102a0525b60006102a0511115156101b1576101cd565b60206102a051036102c0015160206102a051036102a05261019f565b610160515650005b63c5f2892f60005114156102085734156101ee57600080fd5b6003600160e05260c052604060c0205460005260206000f3005b6398b1e06a600051141561210c5760206004610140376108206004356004016101603761080060043560040135111561024057600080fd5b633b9aca006109c0526109c05161025657600080fd5b6109c05134046109a0526000546109a051101561027257600080fd5b6001546109a051111561028457600080fd5b426109e052600061016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405163ebe00197611260526109a05161128052611280516006580161009b565b506112e0526000611340525b6112e05160206001820306601f8201039050611340511015156104f757610510565b61134051611300015261134051602001611340526104d5565b6112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a05261018052610160526112e060088060208461146001018260208501600060046012f150508051820191505061016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405161126051611280516112a0516112c0516112e05161130051611320516113405163ebe00197611360526109e05161138052611380516006580161009b565b506113e0526000611440525b6113e05160206001820306601f8201039050611440511015156109df576109f8565b61144051611400015261144051602001611440526109bd565b6113405261132052611300526112e0526112c0526112a05261128052611260526112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a05261018052610160526113e060088060208461146001018260208501600060046012f150508051820191505061016061080080602084611460010182602085016000600460def150508051820191505080611460526114609050805160200180610a00828460006004600a8704601201f1610ca957600080fd5b5050600454640100000000600454011015610cc357600080fd5b64010000000060045401611cc0526020611dc0600463c5f2892f611d6052611d7c6000305af1610cf257600080fd5b611dc051611d40526060611d0052611d0051611de052610a00805160200180611d0051611d4001828460006004600a8704601201f1610d3057600080fd5b5050611d0051611d4001611ce08151610820818352015b610820611ce051101515610d5a57610d77565b6000611ce0516020850101535b8151600101808352811415610d47575b5050506020611d0051611d40015160206001820306601f8201039050611d00510101611d0052611d0051611e005261016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405161126051611280516112a0516112c0516112e05161130051611320516113405161136051611380516113a0516113c0516113e05161140051611420516114405161146051611480516114a0516114c0516114e05161150051611520516115405161156051611580516115a0516115c0516115e05161160051611620516116405161166051611680516116a0516116c0516116e05161170051611720516117405161176051611780516117a0516117c0516117e05161180051611820516118405161186051611880516118a0516118c0516118e05161190051611920516119405161196051611980516119a0516119c0516119e051611a0051611a2051611a4051611a6051611a8051611aa051611ac051611ae051611b0051611b2051611b4051611b6051611b8051611ba051611bc051611be051611c0051611c2051611c4051611c6051611c8051611ca051611cc051611ce051611d0051611d2051611d4051611d6051611d8051611da051611dc051611de051611e005163ebe00197611e2052611cc051611e4052611e40516006580161009b565b50611ea0526000611f00525b611ea05160206001820306601f8201039050611f0051101515611189576111a2565b611f0051611ec00152611f0051602001611f0052611167565b611e0052611de052611dc052611da052611d8052611d6052611d4052611d2052611d0052611ce052611cc052611ca052611c8052611c6052611c4052611c2052611c0052611be052611bc052611ba052611b8052611b6052611b4052611b2052611b0052611ae052611ac052611aa052611a8052611a6052611a4052611a2052611a00526119e0526119c0526119a05261198052611960526119405261192052611900526118e0526118c0526118a05261188052611860526118405261182052611800526117e0526117c0526117a05261178052611760526117405261172052611700526116e0526116c0526116a05261168052611660526116405261162052611600526115e0526115c0526115a05261158052611560526115405261152052611500526114e0526114c0526114a05261148052611460526114405261142052611400526113e0526113c0526113a05261138052611360526113405261132052611300526112e0526112c0526112a05261128052611260526112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a0526101805261016052611ea0805160200180611d0051611d4001828460006004600a8704601201f161156257600080fd5b5050611d0051611d4001611ce081516020818352015b6020611ce05110151561158a576115a7565b6000611ce0516020850101535b8151600101808352811415611578575b5050506020611d0051611d40015160206001820306601f8201039050611d00510101611d00527ffef24b0e170d72eb566899dc3a6d4396d901ceb46442d0b04f22e5fc8ec3c611611d0051611d40a1610a008051602082012090506003611cc05160e05260c052604060c02055611f2060006020818352015b611cc0600261162e57600080fd5b600281510481525060006003611cc051151561164b57600061166b565b6002611cc0516002611cc05102041461166357600080fd5b6002611cc051025b60e05260c052604060c02054602082611f400101526020810190506003611cc05115156116995760006116b9565b6002611cc0516002611cc0510204146116b157600080fd5b6002611cc051025b6001611cc05115156116cc5760006116ec565b6002611cc0516002611cc0510204146116e457600080fd5b6002611cc051025b0110156116f857600080fd5b6001611cc051151561170b57600061172b565b6002611cc0516002611cc05102041461172357600080fd5b6002611cc051025b0160e05260c052604060c02054602082611f4001015260208101905080611f4052611f4090508051602082012090506003611cc05160e05260c052604060c020555b8151600101808352811415611620575b5050600480546001825401101561179357600080fd5b60018154018155506001546109a051141561210a5760058054600182540110156117bc57600080fd5b600181540181555060025460055414156121095760206120a0600463c5f2892f6120405261205c6000305af16117f157600080fd5b6120a051612020526040611fe052611fe0516120c05261016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405161126051611280516112a0516112c0516112e05161130051611320516113405161136051611380516113a0516113c0516113e05161140051611420516114405161146051611480516114a0516114c0516114e05161150051611520516115405161156051611580516115a0516115c0516115e05161160051611620516116405161166051611680516116a0516116c0516116e05161170051611720516117405161176051611780516117a0516117c0516117e05161180051611820516118405161186051611880516118a0516118c0516118e05161190051611920516119405161196051611980516119a0516119c0516119e051611a0051611a2051611a4051611a6051611a8051611aa051611ac051611ae051611b0051611b2051611b4051611b6051611b8051611ba051611bc051611be051611c0051611c2051611c4051611c6051611c8051611ca051611cc051611ce051611d0051611d2051611d4051611d6051611d8051611da051611dc051611de051611e0051611e2051611e4051611e6051611e8051611ea051611ec051611ee051611f0051611f2051611f4051611f6051611f8051611fa051611fc051611fe05161200051612020516120405161206051612080516120a0516120c05163ebe001976120e0526109e05161210052612100516006580161009b565b506121605260006121c0525b6121605160206001820306601f82010390506121c051101515611c4357611c5c565b6121c05161218001526121c0516020016121c052611c21565b6120c0526120a0526120805261206052612040526120205261200052611fe052611fc052611fa052611f8052611f6052611f4052611f2052611f0052611ee052611ec052611ea052611e8052611e6052611e4052611e2052611e0052611de052611dc052611da052611d8052611d6052611d4052611d2052611d0052611ce052611cc052611ca052611c8052611c6052611c4052611c2052611c0052611be052611bc052611ba052611b8052611b6052611b4052611b2052611b0052611ae052611ac052611aa052611a8052611a6052611a4052611a2052611a00526119e0526119c0526119a05261198052611960526119405261192052611900526118e0526118c0526118a05261188052611860526118405261182052611800526117e0526117c0526117a05261178052611760526117405261172052611700526116e0526116c0526116a05261168052611660526116405261162052611600526115e0526115c0526115a05261158052611560526115405261152052611500526114e0526114c0526114a05261148052611460526114405261142052611400526113e0526113c0526113a05261138052611360526113405261132052611300526112e0526112c0526112a05261128052611260526112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a0526101805261016052612160805160200180611fe05161202001828460006004600a8704601201f161207457600080fd5b5050611fe05161202001611fc081516020818352015b6020611fc05110151561209c576120b9565b6000611fc0516020850101535b815160010180835281141561208a575b5050506020611fe051612020015160206001820306601f8201039050611fe0510101611fe0527fd1faa3f9bca1d698df559716fe6d1c9999155b38d3158fffbc98d76d568091fc611fe051612020a15b5b005b63118e457560005114156121c2576020600461014037341561212d57600080fd5b610140516401000000006101405101101561214757600080fd5b64010000000061014051016105605261058060006020818352015b60036001610560511860e05260c052604060c02054610160610580516020811061218b57600080fd5b6020020152610560600261219e57600080fd5b60028151048152505b8151600101808352811415612162575b5050610400610160f3005b60006000fd

62d17d3090

62d17d3090
Sdxhchhzhhhxhxhgxgxxghzhxbxbxhhxbxhhxjhxhzvhxjxjzhyyzksuhdhzkzjjz

Originally posted by @Sujon78566 in #70

Bytecode

0x600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a05260606122a16101403934156100a757600080fd5b61014051600255610160516000556101805160015561228956600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a0526000156101d5575b61016052610140526018600860208206610220016000610140516020826101c0010152602081019050806101c0526101c090505182840111156100dd57600080fd5b602080610240826020602088068803016000610140516020826101c0010152602081019050806101c0526101c0905001600060046015f15050818152809050905090508051602001806102e0828460006004600a8704601201f161014057600080fd5b50506103406102e0516008818352015b60086103405111156101615761017d565b60006103405161030001535b8151600101808352811415610150575b505060206102c05260406102e0510160206001820306601f82010390506102a0525b60006102a0511115156101b1576101cd565b60206102a051036102c0015160206102a051036102a05261019f565b610160515650005b63c5f2892f60005114156102085734156101ee57600080fd5b6003600160e05260c052604060c0205460005260206000f3005b6398b1e06a600051141561210c5760206004610140376108206004356004016101603761080060043560040135111561024057600080fd5b633b9aca006109c0526109c05161025657600080fd5b6109c05134046109a0526000546109a051101561027257600080fd5b6001546109a051111561028457600080fd5b426109e052600061016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405163ebe00197611260526109a05161128052611280516006580161009b565b506112e0526000611340525b6112e05160206001820306601f8201039050611340511015156104f757610510565b61134051611300015261134051602001611340526104d5565b6112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a05261018052610160526112e060088060208461146001018260208501600060046012f150508051820191505061016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405161126051611280516112a0516112c0516112e05161130051611320516113405163ebe00197611360526109e05161138052611380516006580161009b565b506113e0526000611440525b6113e05160206001820306601f8201039050611440511015156109df576109f8565b61144051611400015261144051602001611440526109bd565b6113405261132052611300526112e0526112c0526112a05261128052611260526112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a05261018052610160526113e060088060208461146001018260208501600060046012f150508051820191505061016061080080602084611460010182602085016000600460def150508051820191505080611460526114609050805160200180610a00828460006004600a8704601201f1610ca957600080fd5b5050600454640100000000600454011015610cc357600080fd5b64010000000060045401611cc0526020611dc0600463c5f2892f611d6052611d7c6000305af1610cf257600080fd5b611dc051611d40526060611d0052611d0051611de052610a00805160200180611d0051611d4001828460006004600a8704601201f1610d3057600080fd5b5050611d0051611d4001611ce08151610820818352015b610820611ce051101515610d5a57610d77565b6000611ce0516020850101535b8151600101808352811415610d47575b5050506020611d0051611d40015160206001820306601f8201039050611d00510101611d0052611d0051611e005261016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405161126051611280516112a0516112c0516112e05161130051611320516113405161136051611380516113a0516113c0516113e05161140051611420516114405161146051611480516114a0516114c0516114e05161150051611520516115405161156051611580516115a0516115c0516115e05161160051611620516116405161166051611680516116a0516116c0516116e05161170051611720516117405161176051611780516117a0516117c0516117e05161180051611820516118405161186051611880516118a0516118c0516118e05161190051611920516119405161196051611980516119a0516119c0516119e051611a0051611a2051611a4051611a6051611a8051611aa051611ac051611ae051611b0051611b2051611b4051611b6051611b8051611ba051611bc051611be051611c0051611c2051611c4051611c6051611c8051611ca051611cc051611ce051611d0051611d2051611d4051611d6051611d8051611da051611dc051611de051611e005163ebe00197611e2052611cc051611e4052611e40516006580161009b565b50611ea0526000611f00525b611ea05160206001820306601f8201039050611f0051101515611189576111a2565b611f0051611ec00152611f0051602001611f0052611167565b611e0052611de052611dc052611da052611d8052611d6052611d4052611d2052611d0052611ce052611cc052611ca052611c8052611c6052611c4052611c2052611c0052611be052611bc052611ba052611b8052611b6052611b4052611b2052611b0052611ae052611ac052611aa052611a8052611a6052611a4052611a2052611a00526119e0526119c0526119a05261198052611960526119405261192052611900526118e0526118c0526118a05261188052611860526118405261182052611800526117e0526117c0526117a05261178052611760526117405261172052611700526116e0526116c0526116a05261168052611660526116405261162052611600526115e0526115c0526115a05261158052611560526115405261152052611500526114e0526114c0526114a05261148052611460526114405261142052611400526113e0526113c0526113a05261138052611360526113405261132052611300526112e0526112c0526112a05261128052611260526112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a0526101805261016052611ea0805160200180611d0051611d4001828460006004600a8704601201f161156257600080fd5b5050611d0051611d4001611ce081516020818352015b6020611ce05110151561158a576115a7565b6000611ce0516020850101535b8151600101808352811415611578575b5050506020611d0051611d40015160206001820306601f8201039050611d00510101611d00527ffef24b0e170d72eb566899dc3a6d4396d901ceb46442d0b04f22e5fc8ec3c611611d0051611d40a1610a008051602082012090506003611cc05160e05260c052604060c02055611f2060006020818352015b611cc0600261162e57600080fd5b600281510481525060006003611cc051151561164b57600061166b565b6002611cc0516002611cc05102041461166357600080fd5b6002611cc051025b60e05260c052604060c02054602082611f400101526020810190506003611cc05115156116995760006116b9565b6002611cc0516002611cc0510204146116b157600080fd5b6002611cc051025b6001611cc05115156116cc5760006116ec565b6002611cc0516002611cc0510204146116e457600080fd5b6002611cc051025b0110156116f857600080fd5b6001611cc051151561170b57600061172b565b6002611cc0516002611cc05102041461172357600080fd5b6002611cc051025b0160e05260c052604060c02054602082611f4001015260208101905080611f4052611f4090508051602082012090506003611cc05160e05260c052604060c020555b8151600101808352811415611620575b5050600480546001825401101561179357600080fd5b60018154018155506001546109a051141561210a5760058054600182540110156117bc57600080fd5b600181540181555060025460055414156121095760206120a0600463c5f2892f6120405261205c6000305af16117f157600080fd5b6120a051612020526040611fe052611fe0516120c05261016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405161126051611280516112a0516112c0516112e05161130051611320516113405161136051611380516113a0516113c0516113e05161140051611420516114405161146051611480516114a0516114c0516114e05161150051611520516115405161156051611580516115a0516115c0516115e05161160051611620516116405161166051611680516116a0516116c0516116e05161170051611720516117405161176051611780516117a0516117c0516117e05161180051611820516118405161186051611880516118a0516118c0516118e05161190051611920516119405161196051611980516119a0516119c0516119e051611a0051611a2051611a4051611a6051611a8051611aa051611ac051611ae051611b0051611b2051611b4051611b6051611b8051611ba051611bc051611be051611c0051611c2051611c4051611c6051611c8051611ca051611cc051611ce051611d0051611d2051611d4051611d6051611d8051611da051611dc051611de051611e0051611e2051611e4051611e6051611e8051611ea051611ec051611ee051611f0051611f2051611f4051611f6051611f8051611fa051611fc051611fe05161200051612020516120405161206051612080516120a0516120c05163ebe001976120e0526109e05161210052612100516006580161009b565b506121605260006121c0525b6121605160206001820306601f82010390506121c051101515611c4357611c5c565b6121c05161218001526121c0516020016121c052611c21565b6120c0526120a0526120805261206052612040526120205261200052611fe052611fc052611fa052611f8052611f6052611f4052611f2052611f0052611ee052611ec052611ea052611e8052611e6052611e4052611e2052611e0052611de052611dc052611da052611d8052611d6052611d4052611d2052611d0052611ce052611cc052611ca052611c8052611c6052611c4052611c2052611c0052611be052611bc052611ba052611b8052611b6052611b4052611b2052611b0052611ae052611ac052611aa052611a8052611a6052611a4052611a2052611a00526119e0526119c0526119a05261198052611960526119405261192052611900526118e0526118c0526118a05261188052611860526118405261182052611800526117e0526117c0526117a05261178052611760526117405261172052611700526116e0526116c0526116a05261168052611660526116405261162052611600526115e0526115c0526115a05261158052611560526115405261152052611500526114e0526114c0526114a05261148052611460526114405261142052611400526113e0526113c0526113a05261138052611360526113405261132052611300526112e0526112c0526112a05261128052611260526112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a0526101805261016052612160805160200180611fe05161202001828460006004600a8704601201f161207457600080fd5b5050611fe05161202001611fc081516020818352015b6020611fc05110151561209c576120b9565b6000611fc0516020850101535b815160010180835281141561208a575b5050506020611fe051612020015160206001820306601f8201039050611fe0510101611fe0527fd1faa3f9bca1d698df559716fe6d1c9999155b38d3158fffbc98d76d568091fc611fe051612020a15b5b005b63118e457560005114156121c2576020600461014037341561212d57600080fd5b610140516401000000006101405101101561214757600080fd5b64010000000061014051016105605261058060006020818352015b60036001610560511860e05260c052604060c02054610160610580516020811061218b57600080fd5b6020020152610560600261219e57600080fd5b60028151048152505b8151600101808352811415612162575b5050610400610160f3005b60006000fd5b6100c1612289036100c16000396100c1612289036000f3

Support panoramix on windows

Hi,

I was trying out panoramix on windows and it throws in various places. One predominant exception was that timout_decorator uses signals that are not available on windows.

Would be great to be able to also run it on windows.

Cheers,
tin

Abi

[{"name": "Deposit", "inputs": [{"type": "bytes32", "name": "previous_deposit_root", "indexed": false}, {"type": "bytes", "name": "data", "indexed": false}, {"type": "bytes", "name": "merkle_tree_index", "indexed": false}], "anonymous": false, "type": "event"}, {"name": "ChainStart", "inputs": [{"type": "bytes32", "name": "deposit_root", "indexed": false}, {"type": "bytes", "name": "time", "indexed": false}], "anonymous": false, "type": "event"}, {"name": "init", "outputs": [], "inputs": [{"type": "uint256", "name": "depositThreshold"}, {"type": "uint256", "name": "minDeposit"}, {"type": "uint256", "name": "maxDeposit"}], "constant": false, "payable": false, "type": "constructor"}, {"name": "get_deposit_root", "outputs": [{"type": "bytes32", "name": "out"}], "inputs": [], "constant": true, "payable": false, "type": "function", "gas": 625}, {"name": "deposit", "outputs": [], "inputs": [{"type": "bytes", "name": "deposit_input"}], "constant": false, "payable": true, "type": "function", "gas": 1708189}, {"name": "get_branch", "outputs": [{"type": "bytes32[32]", "name": "out"}], "inputs": [{"type": "uint256", "name": "leaf"}], "constant": true, "payable": false, "type": "function", "gas": 20138}]

transfer

def transfer(address _to, uint256 _value) : # not payable
require addr(_to)
require _value <= balanceOf[caller]
balanceOf[caller] = balanceOf[caller] - _value
require _value + balanceOf[addr(_to)] >= balanceOf[addr(_to)]
balanceOf[addr(_to)] = _value + balanceOf[addr(_to)]
log Transfer(address,address,uint256), caller, addr(_to), _value
return with bool(1)

def transfer(address _to, uint256 _value) : # not payable
require addr(_to) != 0
require balanceOf[caller] >= _value
require balanceOf[addr(_to)] + _value >= balanceOf[addr(_to)]
balanceOf[caller] = balanceOf[caller] - _value
balanceOf[addr(_to)] = balanceOf[addr(_to)] + _value
log Transfer(address,address,uint256), caller, addr(_to), _value
return with bool(1)

def transfer(address _to, uint256 _value) : # not payable
require not stor1.160.uint8
require addr(_to)
require _value <= balanceOf[caller]
balanceOf[caller] = balanceOf[caller] - _value
require _value + balanceOf[addr(_to)] >= balanceOf[addr(_to)]
balanceOf[addr(_to)] = _value + balanceOf[addr(_to)]
log 0xddf252ad, caller, addr(_to), _value
balanceOf[addr(_to)] = _value + balanceOf[addr(_to)]
log 0xddf252ad, ORIGIN, addr(_to), _value
return with bool(1)

def transfer(address _to, uint256 _value) : # not payable
require CALLDATASIZE >= 68
require addr(_to) != 0
require _value <= balanceOf[caller]
balanceOf[caller] = balanceOf[caller] - _value
require balanceOf[addr(_to)] + _value >= balanceOf[addr(_to)]
balanceOf[addr(_to)] = balanceOf[addr(_to)] + _value
log Transfer(address,address,uint256), caller, addr(_to), _value
return with bool(1)

def transfer(address _to, uint256 _value) : # not payable
require caller == ownerAddress
require _value < eth.balance(this.address)
call addr(_to) with: # withdraw / default function
gas 2300 * not _value wei
value _value wei
require call_ret_code
STOP

def transfer(address _to, uint256 _value) : # not payable
require addr(_to)
require _value <= balanceOf[caller]
balanceOf[caller] = balanceOf[caller] - _value
require _value + balanceOf[addr(_to)] >= balanceOf[addr(_to)]
balanceOf[addr(_to)] = _value + balanceOf[addr(_to)]
log 0xddf252ad, caller, addr(_to), _value
return with bool(1)

def transfer(address _to, uint256 _value) : # not payable
require _value <= balanceOf[caller]
require addr(_to)
require _value <= balanceOf[caller]
balanceOf[caller] = balanceOf[caller] - _value
require _value + balanceOf[addr(_to)] >= balanceOf[addr(_to)]
balanceOf[addr(_to)] = _value + balanceOf[addr(_to)]
log 0xddf252ad, caller, addr(_to), _value
return with bool(1)

def transfer(address _to, uint256 _value) : # not payable
require not stor1.160
require addr(_to)
require _value <= balanceOf[caller]
balanceOf[caller] = balanceOf[caller] - _value
require _value + balanceOf[addr(_to)] >= balanceOf[addr(_to)]
balanceOf[addr(_to)] = _value + balanceOf[addr(_to)]
log Transfer(address,address,uint256), caller, addr(_to), _value
return with bool(1)

def transfer(address _to, uint256 _value) : # not payable
require _value <= balanceOf[caller]
balanceOf[caller] = balanceOf[caller] - _value
require _value + balanceOf[addr(_to)] >= balanceOf[addr(_to)]
balanceOf[addr(_to)] = _value + balanceOf[addr(_to)]
log Transfer(address,address,uint256), caller, addr(_to), _value
return with bool(1)

def transfer(address _to, uint256 _value) : # not payable
require balanceOf[caller] >= _value
balanceOf[caller] = balanceOf[caller] - _value
balanceOf[addr(_to)] = _value + balanceOf[addr(_to)]
log Transfer(address,address,uint256), caller, addr(_to), _value
return with bool(1)

def transfer(address _to, uint256 _value) : # not payable
require _value <= balanceOf[caller].uint256
require addr(_to)
require _value <= balanceOf[caller].uint256
balanceOf[caller].uint256 = balanceOf[caller].uint256 - _value
require _value + balanceOf[addr(_to)].uint256 >= balanceOf[addr(_to)].uint256
balanceOf[addr(_to)].uint256 = _value + balanceOf[addr(_to)].uint256
log 0x69ddf252, caller, addr(_to), _value
return with bool(1)

def transfer(address _to, uint256 _value) : # not payable
require not stor3[caller].0.uint8
if stor5:
return with bool(0)
require addr(_to)
if _value > balanceOf[caller]:
return with bool(0)
if _value <= 0 OR (addr(_to) == caller):
log Transfer(address,address,uint256), caller, addr(_to), _value
return with bool(1)
require _value <= balanceOf[caller]
balanceOf[caller] = balanceOf[caller] - _value
require _value + balanceOf[addr(_to)] >= balanceOf[addr(_to)]
balanceOf[addr(_to)] = _value + balanceOf[addr(_to)]
log Transfer(address,address,uint256), caller, addr(_to), _value
return with bool(1)

def transfer(address _to, uint256 _value) : # not payable
require allowed[caller] >= _value
if caller == addr(_to):
allowed[caller] = allowed[caller] - _value
allowed[addr(_to)] = allowed[addr(_to)] + _value
log Transfer(address,address,uint256), caller, addr(_to), _value
return with bool(1)
require allowed[addr(_to)] <= -_value - 1
allowed[caller] = allowed[caller] - _value
allowed[addr(_to)] = allowed[addr(_to)] + _value
log Transfer(address,address,uint256), caller, addr(_to), _value
return with bool(1)

def transfer(address _to, uint256 _value) : # not payable
require caller == stor1.0.addr
require _value <= licensesOf[caller].uint256
require licensesOf[addr(_to)].uint256 + _value >= licensesOf[addr(_to)].uint256
licensesOf[caller].uint256 = licensesOf[caller].uint256 - _value
licensesOf[addr(_to)].uint256 = _value + licensesOf[addr(_to)].uint256
return with bool(1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.