└── README.md /README.md: -------------------------------------------------------------------------------- 1 | Monocerus Engine 2 | ================ 3 | 4 | **Monocerus** is a lightweight, multi-platform, multi-architecture emulator 5 | framework for smart contracts of blockchain platforms, and beyond. 6 | 7 | Monocerus offers some key features: 8 | 9 | - Emulate smart contract's byte-code, that requires no source code. 10 | - Muli-platform: native build for Windows & \*nix (with Mac OSX, Linux, 11 | \*BSD & Solaris confirmed). 12 | - Clean/simple/lightweight/intuitive blockchain-neutral API. 13 | - Implemented in pure C language, with (future) support for bindings of other languages. 14 | - Allow fine-grained instrumentation, with user-customized callbacks. 15 | - Thread-safe by design. 16 | - Open source with permissive license 17 | 18 | Further information is available at http://www.groundx.io/monocerus 19 | 20 | 21 | Code release 22 | ------------ 23 | 24 | To be publish in early **April 2019** - stay tuned! 25 | 26 | 27 | Compilation 28 | ----------- 29 | 30 | See [COMPILE](docs/COMPILE.md) for how to compile Monocerus. 31 | 32 | 33 | mndebug 34 | ------- 35 | 36 | Run in non-interactive mode, and default function selector: 37 | 38 | ``` 39 | $ ./mndebug -t -f ../samples/sample_evm.bin 40 | ``` 41 | 42 | To trace with a function seletor: 43 | 44 | ``` 45 | $ ./mndebug -t -f ../samples/out/sample.bin-runtime -s 8f33ea2d 46 | ``` 47 | 48 | Interactive mode: 49 | 50 | ``` 51 | $ ./mndebug -f ../samples/reentrancy-victim.bin -i -s d0e30db0 52 | 53 | > selector d0e30db0 54 | > callvalue deadbeef 55 | > r 56 | 57 | > selector 3ccfd60b 58 | > callvalue 0 59 | > r 60 | ``` 61 | 62 | Contact 63 | ------- 64 | 65 | Contact us via mailing list, email or twitter for any questions. 66 | --------------------------------------------------------------------------------