Skip to content

geekseong/koa

This branch is 1 commit ahead of, 132 commits behind DE-labtory/koa:develop.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

성락원성락원
성락원
and
성락원
Jan 27, 2019
738aebb · Jan 27, 2019
Jan 18, 2019
Jan 22, 2019
Jan 22, 2019
Jan 12, 2019
Jan 20, 2019
Jan 22, 2019
Jan 27, 2019
Jan 22, 2019
Jan 22, 2019
Jan 27, 2019
Jan 20, 2019
Jan 3, 2019
Jan 25, 2019
Jan 11, 2019
Jan 3, 2019
Jan 7, 2019
Dec 25, 2018
Jan 24, 2019
Jan 21, 2019
Jan 21, 2019

Repository files navigation

koa

Build Status License Language Coverage Status

The project is inspired by the simplicity and the ivy-bitcoin.

The koa project is to create a high-level language that has more expressions than the bitcoin script and is simpler and easy to analyze than soldity(ethereum).

A more detailed explanation is given below.

Architecture

koa architecture

  • Lexer
  • Parser
  • Compiler
  • VM

Language Specification

Primitive Type

  • Integer

    It is expressed in int. Integer size is 32 bytes.

  • String

    It is expressed in string.

  • Boolean

    It is expressed in true or false.

Operators

  • Arithmetic

    We support +, -, *, /, % only for integer.

  • Comparison

    We support ==, !=, >, <, >=, <= for comparsion.

  • Prefix

    We support !, - for prefix operator.

Condition

It is expressed in if(){} or if(){}else{}.

Etc

  • return
  • \n : All statements should end in \n.
  • Assign : It is expressed in =.

Example Code

contract {
 func Sig(sig string){
   string pubkey = "fvfidBGruUYC+mTw7CusaCOQbBuZBiYduFgH8hRW97KLmHn0xzB1FV++KI7syo8qXGo8Un24WP40IT78XjKO"
   
   if checkSig(pubkey, sig){
     return true
   }
   return false
 }
}

Contribution

Contribution Guide CONTRIBUTION

License

Project source code files are made available under the Apache License, Version 2.0 (Apache-2.0), located in the LICENSE.

CLA Hub

To get started, sign the Contributor License Agreement.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.5%
  • Shell 0.5%