Skip to content

A parser and runtime engine for Michelson written in Rust

Notifications You must be signed in to change notification settings

claudebarde/michelson-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Krusty Krab

A Michelson parser and runtime implemented in Rust

I am writing this Michelson engine as I am learning Rust :) As it is a work in process, it is subject to constant breaking changes. Wait until the stable version to use.

Available instructions (implemented and tested):

  • ABS
  • ADD
  • ADDRESS
  • AND
  • AMOUNT
  • BALANCE
  • CAR
  • CDR
  • CHAIN_ID
  • COMPARE
  • CONCAT
  • CONS
  • DIG
  • DROP
  • DUG
  • DUP
  • EDIV
  • EMPTY_BIG_MAP
  • EMPTY_MAP
  • EMPTY_SET
  • EQ
  • FAILWITH
  • GE
  • GET
  • GT
  • IF
  • IF_LEFT
  • INT
  • ISNAT
  • KECCAK
  • LE
  • LEFT
  • LEVEL
  • LT
  • MAP
  • MEM
  • MUL
  • NEG
  • NEQ
  • NEVER
  • NIL
  • NONE
  • NOW
  • NOT
  • OR
  • PAIR
  • PUSH
  • RIGHT
  • SELF_ADDRESS
  • SENDER
  • SIZE
  • SLICE
  • SOME
  • SOURCE
  • SUB
  • SWAP
  • TICKET
  • UNIT
  • UPDATE
  • UNPAIR
  • XOR

To be done next:

  • DIP
  • IF_CONS
  • IF_NONE
  • IFCMP*
  • ITER
  • IMPLICIT_ACCOUNT
  • SELF

To be done:

  • APPLY
  • BLAKE2B
  • CAST
  • CHECK_SIGNATURE
  • CONTRACT
  • CREATE_CONTRACT
  • EXEC
  • HASH_KEY
  • JOIN_TICKETS
  • LAMBDA
  • LOOP
  • LSL
  • LSR
  • OPEN_CHEST
  • PACK
  • PAIRING_CHECK
  • READ_TICKET
  • RENAME
  • SAPLING_EMPTY_STATE
  • SAPLING_VERIFY_UPDATE
  • SET_DELEGATE
  • SHA3
  • SHA256
  • SHA512
  • SPLIT_TICKET
  • SUB_MUTEZ
  • TOTAL_VOTING_POWER
  • TRANSFER_TOKENS
  • UNPACK
  • VOTING_POWER

(60 instructions / 96)

How to run the tests for utils?

cargo test utils_test_micheline_to_json -- --nocapture

How to run the tests in watch mode for utils?

cargo watch -x 'test utils_test_micheline_to_json -- --nocapture'

About

A parser and runtime engine for Michelson written in Rust

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages