Beaker

_images/beaker.png

Beaker is a Python framework for building Smart Contracts on Algorand using PyTeal.

Note

This project is under active development

Installation

Note

Beaker requires python 3.10 or higher

You may install from Pip

(.venv)$ pip install beaker-pyteal

Or from github directly

(.venv)$ pip install git+https://github.com/algorand-devrel/beaker

Hello, Beaker

from pyteal import *
from beaker import *

# Create a class, subclassing Application from beaker
class HelloBeaker(Application):
    # Add an external method with ABI method signature `hello(string)string`
    @external
    def hello(self, name: abi.String, *, output: abi.String):
        # Set output to the result of `Hello, `+name
        return output.set(Concat(Bytes("Hello, "), name.get()))


def demo():
    # Create an Application client
    app_client = client.ApplicationClient(
        # Get sandbox algod client
        client=sandbox.get_algod_client(),
        # Instantiate app with the program version (default is MAX_TEAL_VERSION)
        app=HelloBeaker(version=8),
        # Get acct from sandbox and pass the signer
        signer=sandbox.get_accounts().pop().signer,
    )

    # Deploy the app on-chain
    app_id, app_addr, txid = app_client.create()
    print(
        f"""Deployed app in txid {txid}
        App ID: {app_id} 
        Address: {app_addr} 
    """
    )

    # Call the `hello` method
    result = app_client.call(HelloBeaker.hello, name="Beaker")
    print(result.return_value)  # "Hello, Beaker"


if __name__ == "__main__":
    demo()

Usage

Check out the Usage section for further information.

See full examples here.

Indices and tables