SmartMuv-это интеллектуальный анализ контрактов и инструмент извлечения данных в Python 3. SmartMuv может извлечь полное состояние/данные интеллектуального контракта и позволяет пользователям обновлять или перенести свои смарт-контракты вместе с данными по любым EVM-совместимому блокчейну. SmartMUV также может использоваться для отслеживания состояния смарт -контракта или получения данных Smart Contract (IE Holders List или списка записей любого типа данных, таких как картирование, массивы и т. Д.) До определенного номера блока.
Поскольку солидность не отслеживает клавиши переменных отображения, SmartMuv использует методы анализа исходного кода статического времени для выполнения анализа приближения ключей на переменных отображения. Он анализирует полный макет интеллектуального контракта и может извлекать не только обычные переменные, но и сложные переменные (то есть отображения и многомерные массивы) и определенные пользовательские переменные.
git clone https://github.com/WaizKhan7/SmartMuv.git
Вы можете установить все необходимые пакеты со следующей командой:
python3 setup.py install
Вы можете установить все необходимые компиляторы Solidity со следующей командой:
python3 install_compilers.py
SmartMuv использует EVM-совместимый URL-адрес RPC Blockchain для извлечения государственного, а также APIs интерфейсы блоков Etherscan, Polygonscan, BSCSCAN и т. Д., Для получения операций Smart Contract. Ключи API и URL -адреса для RPC и Block Explorers должны быть добавлены в файл config.ini для правильной работы инструмента.
Вы можете запустить SmartMuv со следующей командой в приведенном примере Smart Contracts:
python3 -m try_smartmuv
Выберите Smart Contract из предоставленного списка, и SmartMUV проанализирует и извлечет его полное состояние.
1 0xc9ae11a393a08e86d46ce683fde7699db01a5f15 AUX1769
2 0x51bb7917efcad03ec8b1d37251a06cd56b0c4a72 DSRCoin
3 0x24dd6e1fe742bd8fd3a1d144fece1680f16296aa OBK
4 0x143e685dd51d467d77663a3be119217185d81b99 CommunityBankCoin
5 0x145f9bbd9f1ca0923e81e05c2ac04fda2310d774 VACCToken
Select contract no from above to run SmartMuv ->
Чтобы запустить SmartMuv на Solidity Smart Contract по вашему выбору, добавьте сведения о контракте в файле smartmuv.py и запустите:
python3 -m smartmuv
ПРИМЕЧАНИЕ. Добавьте исходный код вашего проекта в путь 'Contract_directory', указанный в файле config.ini . Файл кода должен содержать весь код без какого -либо оператора import .
slot 0 - mapping balances[address] = uint256;
slot 1 - mapping allowed[address][address] = uint256;
slot 2 - uint256 totalSupply;
slot 3 - string name;
slot 4 - uint8 decimals;
slot 5 - string symbol;
[Имя, тип, значение, размер (байты), номер слота]
['owner', 'address', '0xb520de5470c80d57f7005d3b771af675ad311f91', 20, '0x0']
['totalSupply', 'uint256', 100000000000000000, 32, '0x1']
['decimals', 'uint8', 6, 1, '0x2']
['name', 'string', 'Community Decentralized Banking>', 32, '0x3']
['symbol', 'string', 'CMD', 32, '0x4']
['tokenIsFrozen', 'bool', 'False', 1, '0x5']
['tokenMintingEnabled', 'bool', 'False', 1, '0x5']
['contractLaunched', 'bool', 'False', 1, '0x5']
['stakingStatus', 'bool', 'False', 1, '0x5']
['balances:key:0xb520de5470c80d57f7005d3b771af675ad311f91', 'uint256', 99000000000000000, 32, '0x4fa3db652fe4fb0b4583b73847299fbd568219c49826e6778a89ecc882273865']
['balances:key:0x5b7b3ccfc5a89caf6a459627029dc1e1255ee360', 'uint256', 999998994679681, 32, '0xb500fc54d70185966c1ff1538715017b5b6b324727f02becd41481a337bcf77a']
['balances:key:0x642481c0d64f1d8a06da621599b9d64cf41740b8', 'uint256', 2023908, 32, '0xb930fddb7465b82ccbad649c33609aafcf74f4f0763fcd3609a15183bb6e2d8e']
['balances:key:0x4a30f1974Ff2338C4d8f8Eb2f7FE11353FE6f71d', 'uint256', 3296411, 32, '0xffb44d017dc752df1a3231eb81905c9cac26214ade36e0a2a3bc72fcdcbef740']
['balances:key:0x38BC418476D274900167f33e2098A86aB01b96Af', 'uint256', 1000000000, 32, '0x430d203e4eb0ef42503559f8c2f4410eef444da81d0b910d2c40ed75d9c2f34a']
python3 -m tests.test_ast_parsing
python3 -m tests.test_slot_analysis
python3 -m tests.test_key_approx_analysis
python3 -m tests.test_state_extraction
Слот -анализ умного контракта , чтобы получить полный макет хранения умного контракта.
Смарт -контракт на хранение .
Смарт -контракт Полная индексация внутренних данных для платформ Blockchain Explorer .
Государственное извлечение (снимок) данных смарт -контракта.
Перераспределение/обновление интеллектуальных контрактов наряду с их существующими данными.
Миграция интеллектуальных контрактов наряду с данными о контрактах, то есть L1 на L2 или L2 на миграцию L2.
В случае любого запроса вы можете написать нам по адресу [email protected]