No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Latest commit d460382 Oct 1, 2017
Permalink
Failed to load latest commit information.
examples Removed cyberdyne examples due to test issues Oct 1, 2017
.gitignore update cyberdyne market to serpent2 May 18, 2015
LICENSE Supports indexing by variable length string/bytes Sep 4, 2015
MANIFEST.in v1.5 Jul 13, 2014
Makefile Fix for Makefile May 21, 2017
README.md Update README.md Jul 16, 2017
bignum.cpp Fix to storage objects Feb 6, 2015
bignum.h Fix to storage objects Feb 6, 2015
cmdline.cpp Added get_prefix, but as a one-argument method Jul 1, 2015
compiler.cpp Fix to contracts that have many big pushes Nov 2, 2016
compiler.h Changed short strings to left-aligned Feb 6, 2015
example.cpp Fixed byte array conversion, and added Schellingcoin implementation Jun 17, 2014
funcs.cpp Added get_prefix, but as a one-argument method Jul 1, 2015
funcs.h Added get_prefix, but as a one-argument method Jul 1, 2015
functions.cpp Removed extraneous warnings Nov 29, 2015
functions.h Added support for solidity types Jun 18, 2015
keccak-tiny-wrapper.h Added support for new ABI Feb 1, 2015
keccak-tiny.cpp Added support for new ABI Feb 1, 2015
keccak-tiny.h Added support for new ABI Feb 1, 2015
lllparser.cpp v1.5 Jul 13, 2014
lllparser.h Fixed rewrite and deserialize Jun 23, 2014
opcodes.cpp Added rlp encoder Jul 30, 2016
opcodes.h Basic macro support Dec 5, 2014
optimize.cpp Added a lovely optimizer for with statements Mar 4, 2015
optimize.h Fix to storage objects Feb 6, 2015
parser.cpp Added event logging Mar 17, 2015
parser.h Pushed filename conversion into parseSerpent method Jun 23, 2014
preprocess.cpp Added some more features for serenity Feb 12, 2016
preprocess.h Added constant methods Sep 20, 2015
pyserpent.cpp Added get_prefix, but as a one-argument method Jul 1, 2015
pyserpent.py Added pyserpent backup name Jul 13, 2014
requirements-dev.txt Remove ethereum dev requirement Oct 1, 2017
rewriter.cpp Changed assert May 21, 2017
rewriter.h Added chunk commands Sep 10, 2014
rewriteutils.cpp Updated to new ABI May 12, 2015
rewriteutils.h Updated to new ABI May 12, 2015
serpent.py add py3 Sep 30, 2017
serpent_pyext.so Supports indexing by variable length string/bytes Sep 4, 2015
setup.py Removed travis.yml Oct 1, 2017
tokenize.cpp Moved escape sequence parsing to rewriter Feb 6, 2015
tokenize.h v1.5 Jul 13, 2014
tox.ini fix setup.py and dox errors Jun 17, 2016
util.cpp Added event logging Mar 17, 2015
util.h Added support for solidity types Jun 18, 2015

README.md

Introduction

Serpent is an assembly language that compiles to EVM code that is extended with various high-level features. It can be useful for writing code that requires low-level opcode manipulation as well as access to high-level primitives like the ABI.

Being a low-level language, Serpent is NOT RECOMMENDED for building applications unless you really really know what you're doing. The creator recommends Solidity as a default choice, LLL if you want close-to-the-metal optimizations, or Viper if you like its features though it is still experimental.

Installation:

make && sudo make install

Testing

Testing is done using pytest and tox.

$ pip install tox -r requirements-dev.txt

To run the test suite in your current python version:

$ py.test

To run the full test suite across all supported python versions:

$ tox