Skip to content
This repository has been archived by the owner. It is now read-only.
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
bin
 
 
 
 
psl
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Pyramid Scheme

Pyramid is a dialect of the Scheme programming language targeting the Ethereum Virtual Machine(EVM).

Here is an example of a Pyramid program:

(begin
  (define (factorial n)
    (if (= n 1)
        1
        (* (factorial (- n 1)) n)))
  (factorial 5))

Getting Started

Pyramid Scheme is under heavy construction. Join our public Discord channel if you'd like to contribute or use Pyramid to develop Ethereum contracts.

After installing the prerequisites(listed below),

$ ./pyramid -t tests/0001-factorial.pmd 
(Test Passed:  return 120 120 ((s . 14066) (g . 47052) (z . 3591)))

To deploy that program on a test network:

  • Install Ganache CLI
  • Start an EthereumJS test chain: ganache-cli -l 10000000. It will output a list of "Available Accounts".
  • Change the from variable in deploy.js to one of the test accounts.
  • Change the code variable to be the hex string that the Pyramid compiler output
  • Install the Go Ethereum client.
  • Attach to the EthereumJS chain: geth attach http://localhost:8545.
  • Copy the contents of deploy.js into the geth Javascript prompt.

You can see advanced command line options using pyramid --help.

Prerequisites

Editor

I recommend Emacs with racket-mode. You should add Pyramid's .pmd extension to the list of racket-mode file extensions:

(add-to-list 'auto-mode-alist '("\\.pmd\\'" . racket-mode))

License

This project is licensed under the GNU AGPL 3.0 - see the LICENSE.md file for details

Built With

Authors

About

Pyramid is a language to create Ethereum smart contracts

Resources

License

Releases

No releases published

Packages

No packages published

Languages

You can’t perform that action at this time.