eveem-org / panoramix Goto Github PK
View Code? Open in Web Editor NEWDecompiler at the heart of Eveem.org
Home Page: https://www.eveem.org/
License: MIT License
Decompiler at the heart of Eveem.org
Home Page: https://www.eveem.org/
License: MIT License
Version:
Panoramix v4 Oct 2019
Source: https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2Pair.sol
Address: 0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc
Output: https://etherscan.io/bytecode-decompiler?a=0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc
[{"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}]
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...
0x6080604052600436106100f35760003560e01c806381f4f3991161008a578063cae9ca5111610059578063cae9ca5114610568578063d4ee1d9014610672578063dd62ed3e146106c9578063f2fde38b1461074e576100f3565b806381f4f399146103bd5780638da5cb5b1461040e57806395d89b4114610465578063a9059cbb146104f5576100f3565b806323b872dd116100c657806323b872dd1461027d578063313ce5671461031057806370a082311461034157806379ba5097146103a6576100f3565b806306fdde03146100f8578063095ea7b31461018857806318160ddd146101fb5780631ee59f2014610226575b600080fd5b34801561010457600080fd5b5061010d61079f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014d578082015181840152602081019050610132565b50505050905090810190601f16801561017a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561019457600080fd5b506101e1600480360360408110156101ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083d565b604051808215151515815260200191505060405180910390f35b34801561020757600080fd5b5061021061092f565b6040518082815260200191505060405180910390f35b34801561023257600080fd5b5061023b61098a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028957600080fd5b506102f6600480360360608110156102a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109b0565b604051808215151515815260200191505060405180910390f35b34801561031c57600080fd5b50610325610df5565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034d57600080fd5b506103906004803603602081101561036457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e08565b6040518082815260200191505060405180910390f35b3480156103b257600080fd5b506103bb610e51565b005b3480156103c957600080fd5b5061040c600480360360208110156103e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fee565b005b34801561041a57600080fd5b5061042361108b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047157600080fd5b5061047a6110b0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104ba57808201518184015260208101905061049f565b50505050905090810190601f1680156104e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561050157600080fd5b5061054e6004803603604081101561051857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061114e565b604051808215151515815260200191505060405180910390f35b34801561057457600080fd5b506106586004803603606081101561058b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105d257600080fd5b8201836020820111156105e457600080fd5b8035906020019184600183028401116401000000008311171561060657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506113ad565b604051808215151515815260200191505060405180910390f35b34801561067e57600080fd5b506106876115e0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106d557600080fd5b50610738600480360360408110156106ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611606565b6040518082815260200191505060405180910390f35b34801561075a57600080fd5b5061079d6004803603602081101561077157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061168d565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108355780601f1061080a57610100808354040283529160200191610835565b820191906000526020600020905b81548152906001019060200180831161081857829003601f168201915b505050505081565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610985600760008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461172a90919063ffffffff16565b905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610a3c5750600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15610a875782600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b4c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f706c65617365207761697400000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b610b9e82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461172a90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c7082600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461172a90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d4282600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174490919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610eab57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461104757600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111465780601f1061111b57610100808354040283529160200191611146565b820191906000526020600020905b81548152906001019060200180831161112957829003601f168201915b505050505081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f706c65617365207761697400000000000000000000000000000000000000000081525060200191505060405180910390fd5b61126682600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461172a90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112fb82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174490919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561156e578082015181840152602081019050611553565b50505050905090810190601f16801561159b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156115bd57600080fd5b505af11580156115d1573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116e657600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111561173957600080fd5b818303905092915050565b600081830190508281101561175857600080fd5b9291505056fea265627a7a7231582004e9576199cce7e3c4cefc8253b042db103e6b57c6778b86763b3d4b3aa8953d64736f6c63430005110032
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.
As a result, _fallback()
is erroneously treaded as one giant function which is making Panoramix timeout.
Line 5 in 704aea7
0x20Cf18E81Cb2921BE7e5B1F00835Ba3aa7B8F0Fd
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
link is not available now
so i can't generate pabi
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
0x600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a0526000156101d5575b61016052610140526018600860208206610220016000610140516020826101c0010152602081019050806101c0526101c090505182840111156100dd57600080fd5b602080610240826020602088068803016000610140516020826101c0010152602081019050806101c0526101c0905001600060046015f15050818152809050905090508051602001806102e0828460006004600a8704601201f161014057600080fd5b50506103406102e0516008818352015b60086103405111156101615761017d565b60006103405161030001535b8151600101808352811415610150575b505060206102c05260406102e0510160206001820306601f82010390506102a0525b60006102a0511115156101b1576101cd565b60206102a051036102c0015160206102a051036102a05261019f565b610160515650005b63c5f2892f60005114156102085734156101ee57600080fd5b6003600160e05260c052604060c0205460005260206000f3005b6398b1e06a600051141561210c5760206004610140376108206004356004016101603761080060043560040135111561024057600080fd5b633b9aca006109c0526109c05161025657600080fd5b6109c05134046109a0526000546109a051101561027257600080fd5b6001546109a051111561028457600080fd5b426109e052600061016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405163ebe00197611260526109a05161128052611280516006580161009b565b506112e0526000611340525b6112e05160206001820306601f8201039050611340511015156104f757610510565b61134051611300015261134051602001611340526104d5565b6112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a05261018052610160526112e060088060208461146001018260208501600060046012f150508051820191505061016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405161126051611280516112a0516112c0516112e05161130051611320516113405163ebe00197611360526109e05161138052611380516006580161009b565b506113e0526000611440525b6113e05160206001820306601f8201039050611440511015156109df576109f8565b61144051611400015261144051602001611440526109bd565b6113405261132052611300526112e0526112c0526112a05261128052611260526112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a05261018052610160526113e060088060208461146001018260208501600060046012f150508051820191505061016061080080602084611460010182602085016000600460def150508051820191505080611460526114609050805160200180610a00828460006004600a8704601201f1610ca957600080fd5b5050600454640100000000600454011015610cc357600080fd5b64010000000060045401611cc0526020611dc0600463c5f2892f611d6052611d7c6000305af1610cf257600080fd5b611dc051611d40526060611d0052611d0051611de052610a00805160200180611d0051611d4001828460006004600a8704601201f1610d3057600080fd5b5050611d0051611d4001611ce08151610820818352015b610820611ce051101515610d5a57610d77565b6000611ce0516020850101535b8151600101808352811415610d47575b5050506020611d0051611d40015160206001820306601f8201039050611d00510101611d0052611d0051611e005261016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405161126051611280516112a0516112c0516112e05161130051611320516113405161136051611380516113a0516113c0516113e05161140051611420516114405161146051611480516114a0516114c0516114e05161150051611520516115405161156051611580516115a0516115c0516115e05161160051611620516116405161166051611680516116a0516116c0516116e05161170051611720516117405161176051611780516117a0516117c0516117e05161180051611820516118405161186051611880516118a0516118c0516118e05161190051611920516119405161196051611980516119a0516119c0516119e051611a0051611a2051611a4051611a6051611a8051611aa051611ac051611ae051611b0051611b2051611b4051611b6051611b8051611ba051611bc051611be051611c0051611c2051611c4051611c6051611c8051611ca051611cc051611ce051611d0051611d2051611d4051611d6051611d8051611da051611dc051611de051611e005163ebe00197611e2052611cc051611e4052611e40516006580161009b565b50611ea0526000611f00525b611ea05160206001820306601f8201039050611f0051101515611189576111a2565b611f0051611ec00152611f0051602001611f0052611167565b611e0052611de052611dc052611da052611d8052611d6052611d4052611d2052611d0052611ce052611cc052611ca052611c8052611c6052611c4052611c2052611c0052611be052611bc052611ba052611b8052611b6052611b4052611b2052611b0052611ae052611ac052611aa052611a8052611a6052611a4052611a2052611a00526119e0526119c0526119a05261198052611960526119405261192052611900526118e0526118c0526118a05261188052611860526118405261182052611800526117e0526117c0526117a05261178052611760526117405261172052611700526116e0526116c0526116a05261168052611660526116405261162052611600526115e0526115c0526115a05261158052611560526115405261152052611500526114e0526114c0526114a05261148052611460526114405261142052611400526113e0526113c0526113a05261138052611360526113405261132052611300526112e0526112c0526112a05261128052611260526112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a0526101805261016052611ea0805160200180611d0051611d4001828460006004600a8704601201f161156257600080fd5b5050611d0051611d4001611ce081516020818352015b6020611ce05110151561158a576115a7565b6000611ce0516020850101535b8151600101808352811415611578575b5050506020611d0051611d40015160206001820306601f8201039050611d00510101611d00527ffef24b0e170d72eb566899dc3a6d4396d901ceb46442d0b04f22e5fc8ec3c611611d0051611d40a1610a008051602082012090506003611cc05160e05260c052604060c02055611f2060006020818352015b611cc0600261162e57600080fd5b600281510481525060006003611cc051151561164b57600061166b565b6002611cc0516002611cc05102041461166357600080fd5b6002611cc051025b60e05260c052604060c02054602082611f400101526020810190506003611cc05115156116995760006116b9565b6002611cc0516002611cc0510204146116b157600080fd5b6002611cc051025b6001611cc05115156116cc5760006116ec565b6002611cc0516002611cc0510204146116e457600080fd5b6002611cc051025b0110156116f857600080fd5b6001611cc051151561170b57600061172b565b6002611cc0516002611cc05102041461172357600080fd5b6002611cc051025b0160e05260c052604060c02054602082611f4001015260208101905080611f4052611f4090508051602082012090506003611cc05160e05260c052604060c020555b8151600101808352811415611620575b5050600480546001825401101561179357600080fd5b60018154018155506001546109a051141561210a5760058054600182540110156117bc57600080fd5b600181540181555060025460055414156121095760206120a0600463c5f2892f6120405261205c6000305af16117f157600080fd5b6120a051612020526040611fe052611fe0516120c05261016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405161126051611280516112a0516112c0516112e05161130051611320516113405161136051611380516113a0516113c0516113e05161140051611420516114405161146051611480516114a0516114c0516114e05161150051611520516115405161156051611580516115a0516115c0516115e05161160051611620516116405161166051611680516116a0516116c0516116e05161170051611720516117405161176051611780516117a0516117c0516117e05161180051611820516118405161186051611880516118a0516118c0516118e05161190051611920516119405161196051611980516119a0516119c0516119e051611a0051611a2051611a4051611a6051611a8051611aa051611ac051611ae051611b0051611b2051611b4051611b6051611b8051611ba051611bc051611be051611c0051611c2051611c4051611c6051611c8051611ca051611cc051611ce051611d0051611d2051611d4051611d6051611d8051611da051611dc051611de051611e0051611e2051611e4051611e6051611e8051611ea051611ec051611ee051611f0051611f2051611f4051611f6051611f8051611fa051611fc051611fe05161200051612020516120405161206051612080516120a0516120c05163ebe001976120e0526109e05161210052612100516006580161009b565b506121605260006121c0525b6121605160206001820306601f82010390506121c051101515611c4357611c5c565b6121c05161218001526121c0516020016121c052611c21565b6120c0526120a0526120805261206052612040526120205261200052611fe052611fc052611fa052611f8052611f6052611f4052611f2052611f0052611ee052611ec052611ea052611e8052611e6052611e4052611e2052611e0052611de052611dc052611da052611d8052611d6052611d4052611d2052611d0052611ce052611cc052611ca052611c8052611c6052611c4052611c2052611c0052611be052611bc052611ba052611b8052611b6052611b4052611b2052611b0052611ae052611ac052611aa052611a8052611a6052611a4052611a2052611a00526119e0526119c0526119a05261198052611960526119405261192052611900526118e0526118c0526118a05261188052611860526118405261182052611800526117e0526117c0526117a05261178052611760526117405261172052611700526116e0526116c0526116a05261168052611660526116405261162052611600526115e0526115c0526115a05261158052611560526115405261152052611500526114e0526114c0526114a05261148052611460526114405261142052611400526113e0526113c0526113a05261138052611360526113405261132052611300526112e0526112c0526112a05261128052611260526112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a0526101805261016052612160805160200180611fe05161202001828460006004600a8704601201f161207457600080fd5b5050611fe05161202001611fc081516020818352015b6020611fc05110151561209c576120b9565b6000611fc0516020850101535b815160010180835281141561208a575b5050506020611fe051612020015160206001820306601f8201039050611fe0510101611fe0527fd1faa3f9bca1d698df559716fe6d1c9999155b38d3158fffbc98d76d568091fc611fe051612020a15b5b005b63118e457560005114156121c2576020600461014037341561212d57600080fd5b610140516401000000006101405101101561214757600080fd5b64010000000061014051016105605261058060006020818352015b60036001610560511860e05260c052604060c02054610160610580516020811061218b57600080fd5b6020020152610560600261219e57600080fd5b60028151048152505b8151600101808352811415612162575b5050610400610160f3005b60006000fd
62d17d3090
Sdxhchhzhhhxhxhgxgxxghzhxbxbxhhxbxhhxjhxhzvhxjxjzhyyzksuhdhzkzjjz
Originally posted by @Sujon78566 in #70
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 {
/**
/**
/**
/**
/**
/**
account
./**
amount
tokens from the caller's account to recipient
./**
spender
will beowner
through {transferFrom}. This is/**
amount
as the allowance of spender
over the caller's tokens./**
amount
tokens from sender
to recipient
using theamount
is then deducted from the caller's/**
value
tokens are moved from one account (from
) toto
).value
may be zero./**
spender
for an owner
is set byvalue
is the new allowance./*
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 {
/*
+
operator.return c;
}
/**
-
operator./**
-
operator.return c;
}
/**
*
operator.uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
/
operator. Note: this function uses arevert
opcode (which leaves remaining gas untouched) while Solidity/**
/
operator. Note: this function uses arevert
opcode (which leaves remaining gas untouched) while Solidityreturn c;
}
/**
%
operator. This function uses a revert
/**
%
operator. This function uses a revert
/**
onlyOwner
, which can be applied to your functions to restrict their use toevent OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
/**
/**
/**
onlyOwner
functions anymore. Can only be called by the current owner./**
newOwner
)./**
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);
}
/**
/**
/**
/**
/**
/**
/**
recipient
cannot be the zero address.amount
./**
/**
spender
cannot be the zero address./**
sender
and recipient
cannot be the zero address.sender
must have a balance of at least amount
.sender
's tokens of at leastamount
./**
spender
by the caller.spender
cannot be the zero address./**
spender
by the caller.spender
cannot be the zero address.spender
must have allowance for the caller of at leastsubtractedValue
./**
amount
tokens and assigns them to msg.sender
, increasingmsg.sender
must be the token owner/**
amount
tokens and decreasing the total supply./**
amount
from sender
to recipient
.sender
cannot be the zero address.recipient
cannot be the zero address.sender
must have a balance of at least amount
._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
from
set to the zero address.to
cannot be the zero address._totalSupply = _totalSupply.add(amount);
_balances[account] = _balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
/**
amount
tokens from account
, reducing theto
set to the zero address.account
cannot be the zero address.account
must have at least amount
tokens._balances[account] = _balances[account].sub(amount, "BEP20: burn amount exceeds balance");
_totalSupply = _totalSupply.sub(amount);
emit Transfer(account, address(0), amount);
}
/**
amount
as the allowance of spender
over the owner
s tokens.approve
, and can be used toowner
cannot be the zero address.spender
cannot be the zero address._allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
/**
amount
tokens from account
.amount
is then deductedPlease update requirements.txt to make it easier for users to start.
Missing
[export-token-0x38ec854248a0f6a81aad2081c11fc56b74471c56 2.csv](
export-token-0x38ec854248a0f6a81aad2081c11fc56b74471c56.2.csv
https://github.com/eveem-org/panoramix/files/11184931/export-token-0x38ec854248a0f6a81aad2081c11fc56b74471c56.2.csv)
Godos
Tried to decompile a Vyper contract (this one https://kovan.etherscan.io/bytecode-decompiler?a=0x438cfeb56120052f9e1a285e09592ea7c0cd6f88), and sadly the lovely eveem shows nothing
The decompilation fails for mainnet contract 0xD93F4cf882D7d576a8Dc09e606B38CaF18Eda796
Please, help us to get ABI/JSON Interface of this contract for MyEtherWallet
error message:
The decompilation fails for mainnet contract 0x236C5285cA0AF7d946222296257BEAb4B6B4e099 with error message:
... # Decompilation aborted, sorry: ("decompilation didn't finish",)
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
I'm trying to run panoramix locally and, obviously, it wants a web3 provider in order to grab the bytecode from the chain. But I'm not seeing anything in the documentation about how to do that. Can you assist?
62d17d3090
Sdxhchhzhhhxhxhgxgxxghzhxbxbxhhxbxhhxjhxhzvhxjxjzhyyzksuhdhzkzjjz
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++
.
0x363d3d373d3d3d363d73aa1c1b3bbbb59930a4e88f87345b8c513cc56fa65af43d82803e903d91602b57fd5bf3
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!
163512710861
How does the following work :
len
floor32
ceil32
Mask
and other work keywords```
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)
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
Everything is here.
0x600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a05260606122a16101403934156100a757600080fd5b61014051600255610160516000556101805160015561228956600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a0526000156101d5575b61016052610140526018600860208206610220016000610140516020826101c0010152602081019050806101c0526101c090505182840111156100dd57600080fd5b602080610240826020602088068803016000610140516020826101c0010152602081019050806101c0526101c0905001600060046015f15050818152809050905090508051602001806102e0828460006004600a8704601201f161014057600080fd5b50506103406102e0516008818352015b60086103405111156101615761017d565b60006103405161030001535b8151600101808352811415610150575b505060206102c05260406102e0510160206001820306601f82010390506102a0525b60006102a0511115156101b1576101cd565b60206102a051036102c0015160206102a051036102a05261019f565b610160515650005b63c5f2892f60005114156102085734156101ee57600080fd5b6003600160e05260c052604060c0205460005260206000f3005b6398b1e06a600051141561210c5760206004610140376108206004356004016101603761080060043560040135111561024057600080fd5b633b9aca006109c0526109c05161025657600080fd5b6109c05134046109a0526000546109a051101561027257600080fd5b6001546109a051111561028457600080fd5b426109e052600061016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405163ebe00197611260526109a05161128052611280516006580161009b565b506112e0526000611340525b6112e05160206001820306601f8201039050611340511015156104f757610510565b61134051611300015261134051602001611340526104d5565b6112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a05261018052610160526112e060088060208461146001018260208501600060046012f150508051820191505061016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405161126051611280516112a0516112c0516112e05161130051611320516113405163ebe00197611360526109e05161138052611380516006580161009b565b506113e0526000611440525b6113e05160206001820306601f8201039050611440511015156109df576109f8565b61144051611400015261144051602001611440526109bd565b6113405261132052611300526112e0526112c0526112a05261128052611260526112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a05261018052610160526113e060088060208461146001018260208501600060046012f150508051820191505061016061080080602084611460010182602085016000600460def150508051820191505080611460526114609050805160200180610a00828460006004600a8704601201f1610ca957600080fd5b5050600454640100000000600454011015610cc357600080fd5b64010000000060045401611cc0526020611dc0600463c5f2892f611d6052611d7c6000305af1610cf257600080fd5b611dc051611d40526060611d0052611d0051611de052610a00805160200180611d0051611d4001828460006004600a8704601201f1610d3057600080fd5b5050611d0051611d4001611ce08151610820818352015b610820611ce051101515610d5a57610d77565b6000611ce0516020850101535b8151600101808352811415610d47575b5050506020611d0051611d40015160206001820306601f8201039050611d00510101611d0052611d0051611e005261016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405161126051611280516112a0516112c0516112e05161130051611320516113405161136051611380516113a0516113c0516113e05161140051611420516114405161146051611480516114a0516114c0516114e05161150051611520516115405161156051611580516115a0516115c0516115e05161160051611620516116405161166051611680516116a0516116c0516116e05161170051611720516117405161176051611780516117a0516117c0516117e05161180051611820516118405161186051611880516118a0516118c0516118e05161190051611920516119405161196051611980516119a0516119c0516119e051611a0051611a2051611a4051611a6051611a8051611aa051611ac051611ae051611b0051611b2051611b4051611b6051611b8051611ba051611bc051611be051611c0051611c2051611c4051611c6051611c8051611ca051611cc051611ce051611d0051611d2051611d4051611d6051611d8051611da051611dc051611de051611e005163ebe00197611e2052611cc051611e4052611e40516006580161009b565b50611ea0526000611f00525b611ea05160206001820306601f8201039050611f0051101515611189576111a2565b611f0051611ec00152611f0051602001611f0052611167565b611e0052611de052611dc052611da052611d8052611d6052611d4052611d2052611d0052611ce052611cc052611ca052611c8052611c6052611c4052611c2052611c0052611be052611bc052611ba052611b8052611b6052611b4052611b2052611b0052611ae052611ac052611aa052611a8052611a6052611a4052611a2052611a00526119e0526119c0526119a05261198052611960526119405261192052611900526118e0526118c0526118a05261188052611860526118405261182052611800526117e0526117c0526117a05261178052611760526117405261172052611700526116e0526116c0526116a05261168052611660526116405261162052611600526115e0526115c0526115a05261158052611560526115405261152052611500526114e0526114c0526114a05261148052611460526114405261142052611400526113e0526113c0526113a05261138052611360526113405261132052611300526112e0526112c0526112a05261128052611260526112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a0526101805261016052611ea0805160200180611d0051611d4001828460006004600a8704601201f161156257600080fd5b5050611d0051611d4001611ce081516020818352015b6020611ce05110151561158a576115a7565b6000611ce0516020850101535b8151600101808352811415611578575b5050506020611d0051611d40015160206001820306601f8201039050611d00510101611d00527ffef24b0e170d72eb566899dc3a6d4396d901ceb46442d0b04f22e5fc8ec3c611611d0051611d40a1610a008051602082012090506003611cc05160e05260c052604060c02055611f2060006020818352015b611cc0600261162e57600080fd5b600281510481525060006003611cc051151561164b57600061166b565b6002611cc0516002611cc05102041461166357600080fd5b6002611cc051025b60e05260c052604060c02054602082611f400101526020810190506003611cc05115156116995760006116b9565b6002611cc0516002611cc0510204146116b157600080fd5b6002611cc051025b6001611cc05115156116cc5760006116ec565b6002611cc0516002611cc0510204146116e457600080fd5b6002611cc051025b0110156116f857600080fd5b6001611cc051151561170b57600061172b565b6002611cc0516002611cc05102041461172357600080fd5b6002611cc051025b0160e05260c052604060c02054602082611f4001015260208101905080611f4052611f4090508051602082012090506003611cc05160e05260c052604060c020555b8151600101808352811415611620575b5050600480546001825401101561179357600080fd5b60018154018155506001546109a051141561210a5760058054600182540110156117bc57600080fd5b600181540181555060025460055414156121095760206120a0600463c5f2892f6120405261205c6000305af16117f157600080fd5b6120a051612020526040611fe052611fe0516120c05261016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051610580516105a0516105c0516105e05161060051610620516106405161066051610680516106a0516106c0516106e05161070051610720516107405161076051610780516107a0516107c0516107e05161080051610820516108405161086051610880516108a0516108c0516108e05161090051610920516109405161096051610980516109a0516109c0516109e051610a0051610a2051610a4051610a6051610a8051610aa051610ac051610ae051610b0051610b2051610b4051610b6051610b8051610ba051610bc051610be051610c0051610c2051610c4051610c6051610c8051610ca051610cc051610ce051610d0051610d2051610d4051610d6051610d8051610da051610dc051610de051610e0051610e2051610e4051610e6051610e8051610ea051610ec051610ee051610f0051610f2051610f4051610f6051610f8051610fa051610fc051610fe05161100051611020516110405161106051611080516110a0516110c0516110e05161110051611120516111405161116051611180516111a0516111c0516111e05161120051611220516112405161126051611280516112a0516112c0516112e05161130051611320516113405161136051611380516113a0516113c0516113e05161140051611420516114405161146051611480516114a0516114c0516114e05161150051611520516115405161156051611580516115a0516115c0516115e05161160051611620516116405161166051611680516116a0516116c0516116e05161170051611720516117405161176051611780516117a0516117c0516117e05161180051611820516118405161186051611880516118a0516118c0516118e05161190051611920516119405161196051611980516119a0516119c0516119e051611a0051611a2051611a4051611a6051611a8051611aa051611ac051611ae051611b0051611b2051611b4051611b6051611b8051611ba051611bc051611be051611c0051611c2051611c4051611c6051611c8051611ca051611cc051611ce051611d0051611d2051611d4051611d6051611d8051611da051611dc051611de051611e0051611e2051611e4051611e6051611e8051611ea051611ec051611ee051611f0051611f2051611f4051611f6051611f8051611fa051611fc051611fe05161200051612020516120405161206051612080516120a0516120c05163ebe001976120e0526109e05161210052612100516006580161009b565b506121605260006121c0525b6121605160206001820306601f82010390506121c051101515611c4357611c5c565b6121c05161218001526121c0516020016121c052611c21565b6120c0526120a0526120805261206052612040526120205261200052611fe052611fc052611fa052611f8052611f6052611f4052611f2052611f0052611ee052611ec052611ea052611e8052611e6052611e4052611e2052611e0052611de052611dc052611da052611d8052611d6052611d4052611d2052611d0052611ce052611cc052611ca052611c8052611c6052611c4052611c2052611c0052611be052611bc052611ba052611b8052611b6052611b4052611b2052611b0052611ae052611ac052611aa052611a8052611a6052611a4052611a2052611a00526119e0526119c0526119a05261198052611960526119405261192052611900526118e0526118c0526118a05261188052611860526118405261182052611800526117e0526117c0526117a05261178052611760526117405261172052611700526116e0526116c0526116a05261168052611660526116405261162052611600526115e0526115c0526115a05261158052611560526115405261152052611500526114e0526114c0526114a05261148052611460526114405261142052611400526113e0526113c0526113a05261138052611360526113405261132052611300526112e0526112c0526112a05261128052611260526112405261122052611200526111e0526111c0526111a05261118052611160526111405261112052611100526110e0526110c0526110a0526110805261106052611040526110205261100052610fe052610fc052610fa052610f8052610f6052610f4052610f2052610f0052610ee052610ec052610ea052610e8052610e6052610e4052610e2052610e0052610de052610dc052610da052610d8052610d6052610d4052610d2052610d0052610ce052610cc052610ca052610c8052610c6052610c4052610c2052610c0052610be052610bc052610ba052610b8052610b6052610b4052610b2052610b0052610ae052610ac052610aa052610a8052610a6052610a4052610a2052610a00526109e0526109c0526109a05261098052610960526109405261092052610900526108e0526108c0526108a05261088052610860526108405261082052610800526107e0526107c0526107a05261078052610760526107405261072052610700526106e0526106c0526106a05261068052610660526106405261062052610600526105e0526105c0526105a05261058052610560526105405261052052610500526104e0526104c0526104a05261048052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a0526101805261016052612160805160200180611fe05161202001828460006004600a8704601201f161207457600080fd5b5050611fe05161202001611fc081516020818352015b6020611fc05110151561209c576120b9565b6000611fc0516020850101535b815160010180835281141561208a575b5050506020611fe051612020015160206001820306601f8201039050611fe0510101611fe0527fd1faa3f9bca1d698df559716fe6d1c9999155b38d3158fffbc98d76d568091fc611fe051612020a15b5b005b63118e457560005114156121c2576020600461014037341561212d57600080fd5b610140516401000000006101405101101561214757600080fd5b64010000000061014051016105605261058060006020818352015b60036001610560511860e05260c052604060c02054610160610580516020811061218b57600080fd5b6020020152610560600261219e57600080fd5b60028151048152505b8151600101808352811415612162575b5050610400610160f3005b60006000fd5b6100c1612289036100c16000396100c1612289036000f3
Currently having trouble getting started because this fetch fails: https://github.com/eveem-org/panoramix/blob/master/utils/supplement.py#L193
Would it be possible to share a zip of the supplements db somewhere else? in the meanwhile, i can just create an empty supplements.db locally, but it'd be nice to work with the ones you already have :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.