algopy

Package Contents

Classes

ARC4Contract

A contract that conforms to the ARC4 ABI specification, functions decorated with @abimethod or @baremethod will form the public interface of the contract

Account

An Account on the Algorand network.

Application

An Application on the Algorand network.

Asset

An Asset on the Algorand network.

BigUInt

A variable length (max 512-bit) unsigned integer

Bytes

A byte sequence, with a maximum length of 4096 bytes, one of the primary data types on the AVM

BytesBacked

Represents a type that is a single bytes value

Contract

Base class for an Algorand Smart Contract

Global

Get Global values Native TEAL op: global

GlobalState

Global state associated with the application, the key will be the name of the member, this is assigned to

LocalState

Local state associated with the application and an account

LogicSig

A logic signature

OnCompleteAction

On Completion actions available in an application call transaction

OpUpFeeSource

Defines the source of fees for the OpUp utility.

StateTotals

Options class to manually define the total amount of global and local state contract will use, used by Contract.__init_subclass__.

String

A UTF-8 encoded string.

TransactionType

The different transaction types available in a transaction

Txn

Get values for the current executing transaction Native TEAL ops: txn, txnas

UInt64

A 64-bit unsigned integer, one of the primary data types on the AVM

urange

Produces a sequence of UInt64 from start (inclusive) to stop (exclusive) by step.

Functions

ensure_budget

Ensure the available op code budget is greater than or equal to required_budget

log

Concatenates and logs supplied args as a single bytes value.

logicsig

Decorator to indicate a function is a logic signature

subroutine

Decorator to indicate functions or methods that can be called by a Smart Contract

uenumerate

Yields pairs containing a count (from zero) and a value yielded by the iterable argument.

Data

TemplateVar

Template variables can be used to represent a placeholder for a deploy-time provided value.

API

class algopy.ARC4Contract

A contract that conforms to the ARC4 ABI specification, functions decorated with @abimethod or @baremethod will form the public interface of the contract

The approval_program will be implemented by the compiler, and route application args according to the ARC4 ABI specification

The clear_state_program will by default return True, but can be overridden

class algopy.Account(value: str | algopy.Bytes = ..., /)

An Account on the Algorand network.

Note: must be an available resource to access properties other than bytes

Initialization

If value is a string, it should be a 58 character base32 string, ie a base32 string-encoded 32 bytes public key + 4 bytes checksum. If value is a Bytes, it’s length checked to be 32 bytes - to avoid this check, use Address.from_bytes(...) instead. Defaults to the zero-address.

__bool__() bool

Returns True if not equal to the zero-address

__eq__(other: algopy.Account | str) bool

Account equality is determined by the address of another Account or str

__ne__(other: algopy.Account | str) bool

Account equality is determined by the address of another Account or str

property auth_address: algopy.Account

Address the account is rekeyed to

Note

Account must be an available resource

property balance: algopy.UInt64

Account balance in microalgos

Note

Account must be an available resource

property bytes: algopy.Bytes

Get the underlying Bytes

classmethod from_bytes(value: algopy.Bytes | bytes, /) Self

Construct an instance from the underlying bytes (no validation)

is_opted_in(asset_or_app: algopy.Asset | algopy.Application, /) bool

Returns true if this account is opted in to the specified Asset or Application.

Note

Account and Asset/Application must be an available resource

property min_balance: algopy.UInt64

Minimum required balance for account, in microalgos

Note

Account must be an available resource

property total_apps_created: algopy.UInt64

The number of existing apps created by this account.

Note

Account must be an available resource

property total_apps_opted_in: algopy.UInt64

The number of apps this account is opted into.

Note

Account must be an available resource

property total_assets: algopy.UInt64

The numbers of ASAs held by this account (including ASAs this account created).

Note

Account must be an available resource

property total_assets_created: algopy.UInt64

The number of existing ASAs created by this account.

Note

Account must be an available resource

property total_box_bytes: algopy.UInt64

The total number of bytes used by this account’s app’s box keys and values.

Note

Account must be an available resource

property total_boxes: algopy.UInt64

The number of existing boxes created by this account’s app.

Note

Account must be an available resource

property total_extra_app_pages: algopy.UInt64

The number of extra app code pages used by this account.

Note

Account must be an available resource

property total_num_byte_slice: algopy.Bytes

The total number of byte array values allocated by this account in Global and Local States.

Note

Account must be an available resource

property total_num_uint: algopy.UInt64

The total number of uint64 values allocated by this account in Global and Local States.

Note

Account must be an available resource

class algopy.Application(application_id: algopy.UInt64 | int = 0, /)

An Application on the Algorand network.

Initialization

Initialized with the id of an application. Defaults to zero (an invalid ID).

__bool__() bool

Returns True if application_id is not 0

__eq__(other: algopy.Application) bool

Application equality is determined by the equality of an Application’s id

__ne__(other: algopy.Application) bool

Application equality is determined by the equality of an Application’s id

property address: algopy.Account

Address for which this application has authority

Note

Application must be an available resource

property approval_program: algopy.Bytes

Bytecode of Approval Program

Note

Application must be an available resource

property clear_state_program: algopy.Bytes

Bytecode of Clear State Program

Note

Application must be an available resource

property creator: algopy.Account

Creator address

Note

Application must be an available resource

property extra_program_pages: algopy.UInt64

Number of Extra Program Pages of code space

Note

Application must be an available resource

property global_num_bytes: algopy.UInt64

Number of byte array values allowed in Global State

Note

Application must be an available resource

property global_num_uint: algopy.UInt64

Number of uint64 values allowed in Global State

Note

Application must be an available resource

property id: algopy.UInt64

Returns the id of the application

property local_num_bytes: algopy.UInt64

Number of byte array values allowed in Local State

Note

Application must be an available resource

property local_num_uint: algopy.UInt64

Number of uint64 values allowed in Local State

Note

Application must be an available resource

class algopy.Asset(asset_id: algopy.UInt64 | int = 0, /)

An Asset on the Algorand network.

Initialization

Initialized with the id of an asset. Defaults to zero (an invalid ID).

__bool__() bool

Returns True if asset_id is not 0

__eq__(other: algopy.Asset) bool

Asset equality is determined by the equality of an Asset’s id

__ne__(other: algopy.Asset) bool

Asset equality is determined by the equality of an Asset’s id

balance(account: algopy.Account, /) algopy.UInt64

Amount of the asset unit held by this account. Fails if the account has not opted in to the asset.

Note

Asset and supplied Account must be an available resource

property clawback: algopy.Account

Clawback address

Note

Asset must be an available resource

property creator: algopy.Account

Creator address

Note

Asset must be an available resource

property decimals: algopy.UInt64

See AssetParams.Decimals

Note

Asset must be an available resource

property default_frozen: bool

Frozen by default or not

Note

Asset must be an available resource

property freeze: algopy.Account

Freeze address

Note

Asset must be an available resource

frozen(account: algopy.Account, /) bool

Is the asset frozen or not. Fails if the account has not opted in to the asset.

Note

Asset and supplied Account must be an available resource

property id: algopy.UInt64

Returns the id of the Asset

property manager: algopy.Account

Manager address

Note

Asset must be an available resource

property metadata_hash: algopy.Bytes

Arbitrary commitment

Note

Asset must be an available resource

property name: algopy.Bytes

Asset name

Note

Asset must be an available resource

property reserve: algopy.Account

Reserve address

Note

Asset must be an available resource

property total: algopy.UInt64

Total number of units of this asset

Note

Asset must be an available resource

property unit_name: algopy.Bytes

Asset unit name

Note

Asset must be an available resource

property url: algopy.Bytes

URL with additional info about the asset

Note

Asset must be an available resource

class algopy.BigUInt(value: algopy.UInt64 | int = 0, /)

A variable length (max 512-bit) unsigned integer

Initialization

A BigUInt can be initialized with a UInt64, a Python int literal, or an int variable declared at the module level

__add__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be added with another BigUInt, UInt64 or int e.g. BigUInt(4) + 2.

__and__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can bitwise and with another BigUInt, UInt64 or int e.g. BigUInt(4) & 2

__bool__() bool

A BigUInt will evaluate to False if zero, and True otherwise

__eq__(other: algopy.BigUInt | algopy.UInt64 | int) bool

A BigUInt can use the == operator with another BigUInt, UInt64 or int

__floordiv__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be floor divided with another BigUInt, UInt64 or int e.g. BigUInt(4) // 2.

This will error on divide by zero

__ge__(other: algopy.BigUInt | algopy.UInt64 | int) bool

A BigUInt can use the >= operator with another BigUInt, UInt64 or int

__gt__(other: algopy.BigUInt | algopy.UInt64 | int) bool

A BigUInt can use the > operator with another BigUInt, UInt64 or int

__iadd__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be incremented with another BigUInt, UInt64 or int e.g. a += BigUInt(2).

__iand__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can bitwise and with another BigUInt, UInt64 or int e.g. a &= BigUInt(2)

__ifloordiv__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be floor divided with another BigUInt, UInt64 or int e.g. a //= BigUInt(2).

This will error on divide by zero

__imod__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be modded with another BigUInt, UInt64 or int e.g. a %= BigUInt(2).

This will error on mod by zero

__imul__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be multiplied with another BigUInt, UInt64 or int e.g. a*= BigUInt(2).

__ior__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can bitwise or with another BigUInt, UInt64 or int e.g. a |= BigUInt(2)

__isub__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be subtracted with another BigUInt, UInt64 or int e.g. a -= BigUInt(2).

This will error on underflow

__ixor__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can bitwise xor with another BigUInt, UInt64 or int e.g. a ^= BigUInt(2)

__le__(other: algopy.BigUInt | algopy.UInt64 | int) bool

A BigUInt can use the <= operator with another BigUInt, UInt64 or int

__lt__(other: algopy.BigUInt | algopy.UInt64 | int) bool

A BigUInt can use the < operator with another BigUInt, UInt64 or int

__mod__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be modded with another BigUInt, UInt64 or int e.g. BigUInt(4) % 2.

This will error on mod by zero

__mul__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be multiplied with another BigUInt, UInt64 or int e.g. 4 + BigUInt(2).

__ne__(other: algopy.BigUInt | algopy.UInt64 | int) bool

A BigUInt can use the != operator with another BigUInt, UInt64 or int

__or__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can bitwise or with another BigUInt, UInt64 or int e.g. BigUInt(4) | 2

__pos__() algopy.BigUInt

Supports unary + operator. Redundant given the type is unsigned

__radd__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be added with another BigUInt, UInt64 or int e.g. 4 + BigUInt(2).

__rand__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can bitwise and with another BigUInt, UInt64 or int e.g. 4 & BigUInt(2)

__rfloordiv__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be floor divided with another BigUInt, UInt64 or int e.g. 4 // BigUInt(2).

This will error on divide by zero

__rmod__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be modded with another BigUInt, UInt64 or int e.g. 4 % BigUInt(2).

This will error on mod by zero

__rmul__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be multiplied with another BigUInt, UInt64 or int e.g. BigUInt(4) + 2.

__ror__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can bitwise or with another BigUInt, UInt64 or int e.g. 4 | BigUInt(2)

__rsub__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be subtracted with another BigUInt, UInt64 or int e.g. 4 - BigUInt(2).

This will error on underflow

__rxor__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can bitwise xor with another BigUInt, UInt64 or int e.g. 4 ^ BigUInt(2)

__sub__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can be subtracted with another BigUInt, UInt64 or int e.g. BigUInt(4) - 2.

This will error on underflow

__xor__(other: algopy.BigUInt | algopy.UInt64 | int) algopy.BigUInt

A BigUInt can bitwise xor with another BigUInt, UInt64 or int e.g. BigUInt(4) ^ 2

property bytes: algopy.Bytes

Get the underlying Bytes

classmethod from_bytes(value: algopy.Bytes | bytes, /) Self

Construct an instance from the underlying bytes (no validation)

class algopy.Bytes(value: bytes = b'', /)

A byte sequence, with a maximum length of 4096 bytes, one of the primary data types on the AVM

Initialization

Bytes can be initialized with a Python bytes literal, or bytes variable declared at the module level

__add__(other: algopy.Bytes | bytes) algopy.Bytes

Concatenate Bytes with another Bytes or bytes literal e.g. Bytes(b"Hello ") + b"World".

__and__(other: algopy.Bytes | bytes) algopy.Bytes

Bytes can bitwise and with another Bytes or bytes e.g. Bytes(b"FF") & b"0F")

__bool__() bool

Returns True if length of bytes is >0

__eq__(other: algopy.Bytes | bytes) bool

Bytes can be compared using the == operator with another Bytes or bytes

__getitem__(index: algopy.UInt64 | int | slice) algopy.Bytes

Returns a Bytes containing a single byte if indexed with UInt64 or int otherwise the substring o bytes described by the slice

__iadd__(other: algopy.Bytes | bytes) algopy.Bytes

Concatenate Bytes with another Bytes or bytes literal e.g. a += Bytes(b"World").

__iand__(other: algopy.Bytes | bytes) algopy.Bytes

Bytes can bitwise and with another Bytes or bytes e.g. a &= Bytes(b"0F")

__invert__() algopy.Bytes

Bytes can be bitwise inverted e.g. ~Bytes(b"FF)

__ior__(other: algopy.Bytes | bytes) algopy.Bytes

Bytes can bitwise or with another Bytes or bytes e.g. a |= Bytes(b"0F")

__iter__() collections.abc.Iterator[algopy.Bytes]

Bytes can be iterated, yielding each consecutive byte

__ixor__(other: algopy.Bytes | bytes) algopy.Bytes

Bytes can bitwise xor with another Bytes or bytes e.g. a ^= Bytes(b"0F")

__ne__(other: algopy.Bytes | bytes) bool

Bytes can be compared using the != operator with another Bytes or bytes

__or__(other: algopy.Bytes | bytes) algopy.Bytes

Bytes can bitwise or with another Bytes or bytes e.g. Bytes(b"FF") | b"0F")

__radd__(other: algopy.Bytes | bytes) algopy.Bytes

Concatenate Bytes with another Bytes or bytes literal e.g. b"Hello " + Bytes(b"World").

__reversed__() collections.abc.Iterator[algopy.Bytes]

Bytes can be iterated in reverse, yield each preceding byte starting at the end

__xor__(other: algopy.Bytes | bytes) algopy.Bytes

Bytes can bitwise xor with another Bytes or bytes e.g. Bytes(b"FF") ^ b"0F")

static from_base32(value: str, /) algopy.Bytes

Creates Bytes from a base32 encoded string e.g. Bytes.from_base32("74======")

static from_base64(value: str, /) algopy.Bytes

Creates Bytes from a base64 encoded string e.g. Bytes.from_base64("RkY=")

static from_hex(value: str, /) algopy.Bytes

Creates Bytes from a hex/octal encoded string e.g. Bytes.from_hex("FF")

property length: algopy.UInt64

Returns the length of the Bytes

class algopy.BytesBacked

Represents a type that is a single bytes value

property bytes: algopy.Bytes

Get the underlying Bytes

classmethod from_bytes(value: algopy.Bytes | bytes, /) Self

Construct an instance from the underlying bytes (no validation)

class algopy.Contract

Base class for an Algorand Smart Contract

classmethod __init_subclass__(
*,
name: str = ...,
scratch_slots: algopy.urange | tuple[int | algopy.urange, ...] | list[int | algopy.urange] = ...,
state_totals: algopy.StateTotals = ...,
)

When declaring a Contract subclass, options and configuration are passed in the base class list:

class MyContract(algopy.Contract, name="CustomName"):
    ...
Parameters:
  • name

    Will affect the output TEAL file name if there are multiple non-abstract contracts in the same file.

    If the contract is a subclass of algopy.ARC4Contract, name will also be used as the contract name in the ARC-32 application.json, instead of the class name.

  • scratch_slots

    Allows you to mark a slot ID or range of slot IDs as “off limits” to Puya. These slot ID(s) will never be written to or otherwise manipulating by the compiler itself. This is particularly useful in combination with algopy.op.gload_bytes / algopy.op.gload_uint64 which lets a contract in a group transaction read from the scratch slots of another contract that occurs earlier in the transaction group.

    In the case of inheritance, scratch slots reserved become cumulative. It is not an error to have overlapping ranges or values either, so if a base class contract reserves slots 0-5 inclusive and the derived contract reserves 5-10 inclusive, then within the derived contract all slots 0-10 will be marked as reserved.

  • state_totals

    Allows defining what values should be used for global and local uint and bytes storage values when creating a contract. Used when outputting ARC-32 application.json schemas.

    If let unspecified, the totals will be determined by the compiler based on state variables assigned to self.

    This setting is not inherited, and only applies to the exact Contract it is specified on. If a base class does specify this setting, and a derived class does not, a warning will be emitted for the derived class. To resolve this warning, state_totals must be specified. Note that it is valid to not provide any arguments to the StateTotals constructor, like so state_totals=StateTotals(), in which case all values will be automatically calculated.

abstract approval_program() algopy.UInt64 | bool

Represents the program called for all transactions where OnCompletion != ClearState

abstract clear_state_program() algopy.UInt64 | bool

Represents the program called when OnCompletion == ClearState

class algopy.Global

Get Global values Native TEAL op: global

asset_create_min_balance: Final[algopy.UInt64]

Ellipsis

The additional minimum balance required to create (and opt-in to) an asset.

asset_opt_in_min_balance: Final[algopy.UInt64]

Ellipsis

The additional minimum balance required to opt-in to an asset.

caller_application_address: Final[algopy.Account]

Ellipsis

The application address of the application that called this application. ZeroAddress if this application is at the top-level. Application mode only.

caller_application_id: Final[algopy.UInt64]

Ellipsis

The application ID of the application that called this application. 0 if this application is at the top-level. Application mode only.

creator_address: Final[algopy.Account]

Ellipsis

Address of the creator of the current application. Application mode only.

current_application_address: Final[algopy.Account]

Ellipsis

Address that the current application controls. Application mode only.

current_application_id: Final[algopy.Application]

Ellipsis

ID of current application executing. Application mode only.

genesis_hash: Final[algopy.Bytes]

Ellipsis

The Genesis Hash for the network.

group_id: Final[algopy.Bytes]

Ellipsis

ID of the transaction group. 32 zero bytes if the transaction is not part of a group.

group_size: Final[algopy.UInt64]

Ellipsis

Number of transactions in this atomic transaction group. At least 1

latest_timestamp: Final[algopy.UInt64]

Ellipsis

Last confirmed block UNIX timestamp. Fails if negative. Application mode only.

logic_sig_version: Final[algopy.UInt64]

Ellipsis

Maximum supported version

max_txn_life: Final[algopy.UInt64]

Ellipsis

rounds

min_balance: Final[algopy.UInt64]

Ellipsis

microalgos

min_txn_fee: Final[algopy.UInt64]

Ellipsis

microalgos

static opcode_budget() algopy.UInt64

The remaining cost that can be spent by opcodes in this program.

Native TEAL opcode: global

round: Final[algopy.UInt64]

Ellipsis

Current round number. Application mode only.

zero_address: Final[algopy.Account]

Ellipsis

32 byte address of all zero bytes

class algopy.GlobalState

Global state associated with the application, the key will be the name of the member, this is assigned to

Note

The GlobalState class provides a richer API that in addition to storing and retrieving values, can test if a value is set or unset it. However if this extra functionality is not needed then it is simpler to just store the data without the GlobalState proxy e.g. self.some_variable = UInt64(0)

__bool__() bool

Returns True if the key has a value set, regardless of the truthiness of that value

get(default: algopy._TState) algopy._TState

Returns the value or default if no value is set

name = self.name.get(Bytes(b"no name")
maybe() tuple[algopy._TState, bool]

Returns the value, and a bool

name, name_exists = self.name.maybe()
if not name_exists:
    name = Bytes(b"no name")
property value: algopy._TState

Returns the value or and error if the value is not set

name = self.name.value
class algopy.LocalState(
type_: type[algopy._TState],
/,
*,
key: bytes | str = ...,
description: str = '',
)

Local state associated with the application and an account

Initialization

Declare the local state key and it’s associated type

self.names = LocalState(algopy.Bytes)
__contains__(account: algopy.Account | algopy.UInt64 | int) bool

Can test if data exists by using an Account reference or foreign account index

assert account in self.names
__delitem__(account: algopy.Account | algopy.UInt64 | int) None

Data can be removed by using an Account reference or foreign account index

del self.names[account]
__getitem__(account: algopy.Account | algopy.UInt64 | int) algopy._TState

Data can be accessed by an Account reference or foreign account index

account_name = self.names[account]
__setitem__(
account: algopy.Account | algopy.UInt64 | int,
value: algopy._TState,
) None

Data can be stored by using an Account reference or foreign account index

self.names[account] = account_name
get(
account: algopy.Account | algopy.UInt64 | int,
default: algopy._TState,
) algopy._TState

Can retrieve value using an Account reference or foreign account index, and a fallback default value.

name = self.names.get(account, Bytes(b"no name")
maybe(
account: algopy.Account | algopy.UInt64 | int,
) tuple[algopy._TState, bool]

Can retrieve value, and a bool indicating if the value was present using an Account reference or foreign account index.

name, name_exists = self.names.maybe(account)
if not name_exists:
    name = Bytes(b"no name")
class algopy.LogicSig

A logic signature

class algopy.OnCompleteAction(value: int = 0, /)

On Completion actions available in an application call transaction

Initialization

A UInt64 can be initialized with a Python int literal, or an int variable declared at the module level

ClearState: algopy.OnCompleteAction

Ellipsis

ClearState is similar to CloseOut, but may never fail. This allows users to reclaim their minimum balance from an application they no longer wish to opt in to.

CloseOut: algopy.OnCompleteAction

Ellipsis

CloseOut indicates that an application transaction will deallocate some LocalState for the application from the user’s account

DeleteApplication: algopy.OnCompleteAction

Ellipsis

DeleteApplication indicates that an application transaction will delete the AppParams for the application from the creator’s balance record

NoOp: algopy.OnCompleteAction

Ellipsis

NoOP indicates that no additional action is performed when the transaction completes

OptIn: algopy.OnCompleteAction

Ellipsis

OptIn indicates that an application transaction will allocate some LocalState for the application in the sender’s account

UpdateApplication: algopy.OnCompleteAction

Ellipsis

UpdateApplication indicates that an application transaction will update the ApprovalProgram and ClearStateProgram for the application

__add__(other: algopy.UInt64 | int) algopy.UInt64
__and__(other: algopy.UInt64 | int) algopy.UInt64
__bool__() bool
__eq__(other: algopy.UInt64 | int) bool
__floordiv__(other: algopy.UInt64 | int) algopy.UInt64
__ge__(other: algopy.UInt64 | int) bool
__gt__(other: algopy.UInt64 | int) bool
__iadd__(other: algopy.UInt64 | int) algopy.UInt64
__iand__(other: algopy.UInt64 | int) algopy.UInt64
__ifloordiv__(other: algopy.UInt64 | int) algopy.UInt64
__ilshift__(other: algopy.UInt64 | int) algopy.UInt64
__imod__(other: algopy.UInt64 | int) algopy.UInt64
__imul__(other: algopy.UInt64 | int) algopy.UInt64
__index__() int
__invert__() algopy.UInt64
__ior__(other: algopy.UInt64 | int) algopy.UInt64
__ipow__(power: algopy.UInt64 | int) algopy.UInt64
__irshift__(other: algopy.UInt64 | int) algopy.UInt64
__isub__(other: algopy.UInt64 | int) algopy.UInt64
__ixor__(other: algopy.UInt64 | int) algopy.UInt64
__le__(other: algopy.UInt64 | int) bool
__lshift__(other: algopy.UInt64 | int) algopy.UInt64
__lt__(other: algopy.UInt64 | int) bool
__mod__(other: algopy.UInt64 | int) algopy.UInt64
__mul__(other: algopy.UInt64 | int) algopy.UInt64
__ne__(other: algopy.UInt64 | int) bool
__or__(other: algopy.UInt64 | int) algopy.UInt64
__pos__() algopy.UInt64
__pow__(power: algopy.UInt64 | int) algopy.UInt64
__radd__(other: algopy.UInt64 | int) algopy.UInt64
__rand__(other: algopy.UInt64 | int) algopy.UInt64
__rfloordiv__(other: algopy.UInt64 | int) algopy.UInt64
__rlshift__(other: algopy.UInt64 | int) algopy.UInt64
__rmod__(other: algopy.UInt64 | int) algopy.UInt64
__rmul__(other: algopy.UInt64 | int) algopy.UInt64
__ror__(other: algopy.UInt64 | int) algopy.UInt64
__rpow__(power: algopy.UInt64 | int) algopy.UInt64
__rrshift__(other: algopy.UInt64 | int) algopy.UInt64
__rshift__(other: algopy.UInt64 | int) algopy.UInt64
__rsub__(other: algopy.UInt64 | int) algopy.UInt64
__rxor__(other: algopy.UInt64 | int) algopy.UInt64
__sub__(other: algopy.UInt64 | int) algopy.UInt64
__xor__(other: algopy.UInt64 | int) algopy.UInt64
class algopy.OpUpFeeSource(value: int = 0, /)

Defines the source of fees for the OpUp utility.

Initialization

A UInt64 can be initialized with a Python int literal, or an int variable declared at the module level

Any: algopy.OpUpFeeSource

Ellipsis

First the excess will be used, remaining fees will be taken from the app account

AppAccount: algopy.OpUpFeeSource

Ellipsis

The app’s account will cover all fees (set inner_tx.fee=Global.min_tx_fee())

GroupCredit: algopy.OpUpFeeSource

Ellipsis

Only the excess fee (credit) on the outer group should be used (set inner_tx.fee=0)

__add__(other: algopy.UInt64 | int) algopy.UInt64
__and__(other: algopy.UInt64 | int) algopy.UInt64
__bool__() bool
__eq__(other: algopy.UInt64 | int) bool
__floordiv__(other: algopy.UInt64 | int) algopy.UInt64
__ge__(other: algopy.UInt64 | int) bool
__gt__(other: algopy.UInt64 | int) bool
__iadd__(other: algopy.UInt64 | int) algopy.UInt64
__iand__(other: algopy.UInt64 | int) algopy.UInt64
__ifloordiv__(other: algopy.UInt64 | int) algopy.UInt64
__ilshift__(other: algopy.UInt64 | int) algopy.UInt64
__imod__(other: algopy.UInt64 | int) algopy.UInt64
__imul__(other: algopy.UInt64 | int) algopy.UInt64
__index__() int
__invert__() algopy.UInt64
__ior__(other: algopy.UInt64 | int) algopy.UInt64
__ipow__(power: algopy.UInt64 | int) algopy.UInt64
__irshift__(other: algopy.UInt64 | int) algopy.UInt64
__isub__(other: algopy.UInt64 | int) algopy.UInt64
__ixor__(other: algopy.UInt64 | int) algopy.UInt64
__le__(other: algopy.UInt64 | int) bool
__lshift__(other: algopy.UInt64 | int) algopy.UInt64
__lt__(other: algopy.UInt64 | int) bool
__mod__(other: algopy.UInt64 | int) algopy.UInt64
__mul__(other: algopy.UInt64 | int) algopy.UInt64
__ne__(other: algopy.UInt64 | int) bool
__or__(other: algopy.UInt64 | int) algopy.UInt64
__pos__() algopy.UInt64
__pow__(power: algopy.UInt64 | int) algopy.UInt64
__radd__(other: algopy.UInt64 | int) algopy.UInt64
__rand__(other: algopy.UInt64 | int) algopy.UInt64
__rfloordiv__(other: algopy.UInt64 | int) algopy.UInt64
__rlshift__(other: algopy.UInt64 | int) algopy.UInt64
__rmod__(other: algopy.UInt64 | int) algopy.UInt64
__rmul__(other: algopy.UInt64 | int) algopy.UInt64
__ror__(other: algopy.UInt64 | int) algopy.UInt64
__rpow__(power: algopy.UInt64 | int) algopy.UInt64
__rrshift__(other: algopy.UInt64 | int) algopy.UInt64
__rshift__(other: algopy.UInt64 | int) algopy.UInt64
__rsub__(other: algopy.UInt64 | int) algopy.UInt64
__rxor__(other: algopy.UInt64 | int) algopy.UInt64
__sub__(other: algopy.UInt64 | int) algopy.UInt64
__xor__(other: algopy.UInt64 | int) algopy.UInt64
class algopy.StateTotals(
*,
global_uints: int = ...,
global_bytes: int = ...,
local_uints: int = ...,
local_bytes: int = ...,
)

Options class to manually define the total amount of global and local state contract will use, used by Contract.__init_subclass__.

This is not required when all state is assigned to self., but is required if a contract dynamically interacts with state via AppGlobal.get_bytes etc, or if you want to reserve additional state storage for future contract updates, since the Algorand protocol doesn’t allow increasing them after creation.

Initialization

Specify the totals for both global and local, and for each type. Any arguments not specified default to their automatically calculated values.

Values are validated against the known totals assigned through self., a warning is produced if the total specified is insufficient to accommodate all self. state values at once.

class algopy.String(value: str = '', /)

A UTF-8 encoded string.

In comparison to arc4.String, this type does not store the array length prefix, since that information is always available through the len AVM op. This makes it more efficient to operate on when doing operations such as concatenation.

Note that due to the lack of UTF-8 support in the AVM, indexing and length operations are not currently supported.

Initialization

A String can be initialized with a Python str literal, or a str variable declared at the module level

__add__(other: algopy.String | str) algopy.String

Concatenate String with another String or str literal e.g. String("Hello ") + "World".

__bool__() bool

Returns True if the string is not empty

__contains__(other: algopy.String | str) bool

Test whether another string is a substring of this one. Note this is expensive due to a lack of AVM support.

__eq__(other: algopy.String | str) bool

Supports using the == operator with another String or literal str

__iadd__(other: algopy.String | str) algopy.String

Concatenate String with another String or str literal e.g. a = String("Hello"); a += "World".

__ne__(other: algopy.String | str) bool

Supports using the != operator with another String or literal str

__radd__(other: algopy.String | str) algopy.String

Concatenate String with another String or str literal e.g. "Hello " + String("World").

property bytes: algopy.Bytes

Get the underlying Bytes

endswith(suffix: algopy.String | str) bool

Check if this string ends with another string.

The behaviour should mirror str.endswith, for example, if suffix is the empty string, the result will always be True.

Only a single argument is currently supported.

classmethod from_bytes(value: algopy.Bytes | bytes, /) Self

Construct an instance from the underlying bytes (no validation)

join(others: tuple[algopy.String, ...], /) algopy.String

Join a sequence of Strings with a common separator.

The behaviour should mirror str.join.

startswith(prefix: algopy.String | str) bool

Check if this string starts with another string.

The behaviour should mirror str.startswith, for example, if prefix is the empty string, the result will always be True.

Only a single argument is currently supported.

algopy.TemplateVar: algopy._TemplateVarGeneric

Ellipsis

Template variables can be used to represent a placeholder for a deploy-time provided value.

class algopy.TransactionType(value: int = 0, /)

The different transaction types available in a transaction

Initialization

A UInt64 can be initialized with a Python int literal, or an int variable declared at the module level

ApplicationCall: algopy.TransactionType

Ellipsis

An Application Call transaction

AssetConfig: algopy.TransactionType

Ellipsis

An Asset Config transaction

AssetFreeze: algopy.TransactionType

Ellipsis

An Asset Freeze transaction

AssetTransfer: algopy.TransactionType

Ellipsis

An Asset Transfer transaction

KeyRegistration: algopy.TransactionType

Ellipsis

A Key Registration transaction

Payment: algopy.TransactionType

Ellipsis

A Payment transaction

__add__(other: algopy.UInt64 | int) algopy.UInt64
__and__(other: algopy.UInt64 | int) algopy.UInt64
__bool__() bool
__eq__(other: algopy.UInt64 | int) bool
__floordiv__(other: algopy.UInt64 | int) algopy.UInt64
__ge__(other: algopy.UInt64 | int) bool
__gt__(other: algopy.UInt64 | int) bool
__iadd__(other: algopy.UInt64 | int) algopy.UInt64
__iand__(other: algopy.UInt64 | int) algopy.UInt64
__ifloordiv__(other: algopy.UInt64 | int) algopy.UInt64
__ilshift__(other: algopy.UInt64 | int) algopy.UInt64
__imod__(other: algopy.UInt64 | int) algopy.UInt64
__imul__(other: algopy.UInt64 | int) algopy.UInt64
__index__() int
__invert__() algopy.UInt64
__ior__(other: algopy.UInt64 | int) algopy.UInt64
__ipow__(power: algopy.UInt64 | int) algopy.UInt64
__irshift__(other: algopy.UInt64 | int) algopy.UInt64
__isub__(other: algopy.UInt64 | int) algopy.UInt64
__ixor__(other: algopy.UInt64 | int) algopy.UInt64
__le__(other: algopy.UInt64 | int) bool
__lshift__(other: algopy.UInt64 | int) algopy.UInt64
__lt__(other: algopy.UInt64 | int) bool
__mod__(other: algopy.UInt64 | int) algopy.UInt64
__mul__(other: algopy.UInt64 | int) algopy.UInt64
__ne__(other: algopy.UInt64 | int) bool
__or__(other: algopy.UInt64 | int) algopy.UInt64
__pos__() algopy.UInt64
__pow__(power: algopy.UInt64 | int) algopy.UInt64
__radd__(other: algopy.UInt64 | int) algopy.UInt64
__rand__(other: algopy.UInt64 | int) algopy.UInt64
__rfloordiv__(other: algopy.UInt64 | int) algopy.UInt64
__rlshift__(other: algopy.UInt64 | int) algopy.UInt64
__rmod__(other: algopy.UInt64 | int) algopy.UInt64
__rmul__(other: algopy.UInt64 | int) algopy.UInt64
__ror__(other: algopy.UInt64 | int) algopy.UInt64
__rpow__(power: algopy.UInt64 | int) algopy.UInt64
__rrshift__(other: algopy.UInt64 | int) algopy.UInt64
__rshift__(other: algopy.UInt64 | int) algopy.UInt64
__rsub__(other: algopy.UInt64 | int) algopy.UInt64
__rxor__(other: algopy.UInt64 | int) algopy.UInt64
__sub__(other: algopy.UInt64 | int) algopy.UInt64
__xor__(other: algopy.UInt64 | int) algopy.UInt64
class algopy.Txn

Get values for the current executing transaction Native TEAL ops: txn, txnas

static accounts(a: algopy.UInt64 | int, /) algopy.Account

Accounts listed in the ApplicationCall transaction

Native TEAL opcode: txna, txnas

amount: Final[algopy.UInt64]

Ellipsis

microalgos

static application_args(a: algopy.UInt64 | int, /) algopy.Bytes

Arguments passed to the application in the ApplicationCall transaction

Native TEAL opcode: txna, txnas

application_id: Final[algopy.Application]

Ellipsis

ApplicationID from ApplicationCall transaction

static applications(a: algopy.UInt64 | int, /) algopy.Application

Foreign Apps listed in the ApplicationCall transaction

Native TEAL opcode: txna, txnas

approval_program: Final[algopy.Bytes]

Ellipsis

Approval program

static approval_program_pages(a: algopy.UInt64 | int, /) algopy.Bytes

Approval Program as an array of pages

Native TEAL opcode: txna, txnas

asset_amount: Final[algopy.UInt64]

Ellipsis

value in Asset’s units

asset_close_to: Final[algopy.Account]

Ellipsis

32 byte address

asset_receiver: Final[algopy.Account]

Ellipsis

32 byte address

asset_sender: Final[algopy.Account]

Ellipsis

32 byte address. Source of assets if Sender is the Asset’s Clawback address.

static assets(a: algopy.UInt64 | int, /) algopy.Asset

Foreign Assets listed in the ApplicationCall transaction

Native TEAL opcode: txna, txnas

clear_state_program: Final[algopy.Bytes]

Ellipsis

Clear state program

static clear_state_program_pages(a: algopy.UInt64 | int, /) algopy.Bytes

ClearState Program as an array of pages

Native TEAL opcode: txna, txnas

close_remainder_to: Final[algopy.Account]

Ellipsis

32 byte address

config_asset: Final[algopy.Asset]

Ellipsis

Asset ID in asset config transaction

config_asset_clawback: Final[algopy.Account]

Ellipsis

32 byte address

config_asset_decimals: Final[algopy.UInt64]

Ellipsis

Number of digits to display after the decimal place when displaying the asset

config_asset_default_frozen: Final[bool]

Ellipsis

Whether the asset’s slots are frozen by default or not, 0 or 1

config_asset_freeze: Final[algopy.Account]

Ellipsis

32 byte address

config_asset_manager: Final[algopy.Account]

Ellipsis

32 byte address

config_asset_metadata_hash: Final[algopy.Bytes]

Ellipsis

32 byte commitment to unspecified asset metadata

config_asset_name: Final[algopy.Bytes]

Ellipsis

The asset name

config_asset_reserve: Final[algopy.Account]

Ellipsis

32 byte address

config_asset_total: Final[algopy.UInt64]

Ellipsis

Total number of units of this asset created

config_asset_unit_name: Final[algopy.Bytes]

Ellipsis

Unit name of the asset

config_asset_url: Final[algopy.Bytes]

Ellipsis

URL

created_application_id: Final[algopy.Application]

Ellipsis

ApplicationID allocated by the creation of an application (only with itxn in v5). Application mode only

created_asset_id: Final[algopy.Asset]

Ellipsis

Asset ID allocated by the creation of an ASA (only with itxn in v5). Application mode only

extra_program_pages: Final[algopy.UInt64]

Ellipsis

Number of additional pages for each of the application’s approval and clear state programs. An ExtraProgramPages of 1 means 2048 more total bytes, or 1024 for each program.

fee: Final[algopy.UInt64]

Ellipsis

microalgos

first_valid: Final[algopy.UInt64]

Ellipsis

round number

first_valid_time: Final[algopy.UInt64]

Ellipsis

UNIX timestamp of block before txn.FirstValid. Fails if negative

freeze_asset: Final[algopy.Asset]

Ellipsis

Asset ID being frozen or un-frozen

freeze_asset_account: Final[algopy.Account]

Ellipsis

32 byte address of the account whose asset slot is being frozen or un-frozen

freeze_asset_frozen: Final[bool]

Ellipsis

The new frozen value, 0 or 1

global_num_byte_slice: Final[algopy.UInt64]

Ellipsis

Number of global state byteslices in ApplicationCall

global_num_uint: Final[algopy.UInt64]

Ellipsis

Number of global state integers in ApplicationCall

group_index: Final[algopy.UInt64]

Ellipsis

Position of this transaction within an atomic transaction group. A stand-alone transaction is implicitly element 0 in a group of 1

last_log: Final[algopy.Bytes]

Ellipsis

The last message emitted. Empty bytes if none were emitted. Application mode only

last_valid: Final[algopy.UInt64]

Ellipsis

round number

lease: Final[algopy.Bytes]

Ellipsis

32 byte lease value

local_num_byte_slice: Final[algopy.UInt64]

Ellipsis

Number of local state byteslices in ApplicationCall

local_num_uint: Final[algopy.UInt64]

Ellipsis

Number of local state integers in ApplicationCall

static logs(a: algopy.UInt64 | int, /) algopy.Bytes

Log messages emitted by an application call (only with itxn in v5). Application mode only

Native TEAL opcode: txna, txnas

nonparticipation: Final[bool]

Ellipsis

Marks an account nonparticipating for rewards

note: Final[algopy.Bytes]

Ellipsis

Any data up to 1024 bytes

num_accounts: Final[algopy.UInt64]

Ellipsis

Number of Accounts

num_app_args: Final[algopy.UInt64]

Ellipsis

Number of ApplicationArgs

num_applications: Final[algopy.UInt64]

Ellipsis

Number of Applications

num_approval_program_pages: Final[algopy.UInt64]

Ellipsis

Number of Approval Program pages

num_assets: Final[algopy.UInt64]

Ellipsis

Number of Assets

num_clear_state_program_pages: Final[algopy.UInt64]

Ellipsis

Number of ClearState Program pages

num_logs: Final[algopy.UInt64]

Ellipsis

Number of Logs (only with itxn in v5). Application mode only

on_completion: Final[algopy.UInt64]

Ellipsis

ApplicationCall transaction on completion action

receiver: Final[algopy.Account]

Ellipsis

32 byte address

rekey_to: Final[algopy.Account]

Ellipsis

32 byte Sender’s new AuthAddr

selection_pk: Final[algopy.Bytes]

Ellipsis

32 byte address

sender: Final[algopy.Account]

Ellipsis

32 byte address

state_proof_pk: Final[algopy.Bytes]

Ellipsis

64 byte state proof public key

tx_id: Final[algopy.Bytes]

Ellipsis

The computed ID for this transaction. 32 bytes.

type: Final[algopy.Bytes]

Ellipsis

Transaction type as bytes

type_enum: Final[algopy.UInt64]

Ellipsis

Transaction type as integer

vote_first: Final[algopy.UInt64]

Ellipsis

The first round that the participation key is valid.

vote_key_dilution: Final[algopy.UInt64]

Ellipsis

Dilution for the 2-level participation key

vote_last: Final[algopy.UInt64]

Ellipsis

The last round that the participation key is valid.

vote_pk: Final[algopy.Bytes]

Ellipsis

32 byte address

xfer_asset: Final[algopy.Asset]

Ellipsis

Asset ID

class algopy.UInt64(value: int = 0, /)

A 64-bit unsigned integer, one of the primary data types on the AVM

Initialization

A UInt64 can be initialized with a Python int literal, or an int variable declared at the module level

__add__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be added with another UInt64 or int e.g. UInt(4) + 2.

This will error on overflow

__and__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can bitwise and with another UInt64 or int e.g. UInt64(4) & 2

__bool__() bool

A UInt64 will evaluate to False if zero, and True otherwise

__eq__(other: algopy.UInt64 | int) bool

A UInt64 can use the == operator with another UInt64 or int

__floordiv__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be floor divided with another UInt64 or int e.g. UInt64(4) // 2.

This will error on divide by zero

__ge__(other: algopy.UInt64 | int) bool

A UInt64 can use the >= operator with another UInt64 or int

__gt__(other: algopy.UInt64 | int) bool

A UInt64 can use the > operator with another UInt64 or int

__iadd__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be incremented with another UInt64 or int e.g. a += UInt(2).

This will error on overflow

__iand__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can bitwise and with another UInt64 or int e.g. a &= UInt64(2)

__ifloordiv__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be floor divided with another UInt64 or int e.g. a //= UInt64(2).

This will error on divide by zero

__ilshift__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be left shifted by another UInt64 or int e.g. a <<= UInt64(2)

__imod__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be modded with another UInt64 or int e.g. a %= UInt64(2).

This will error on mod by zero

__imul__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be multiplied with another UInt64 or int e.g. a*= UInt64(2).

This will error on overflow

__index__() int

A UInt64 can be used in indexing/slice expressions

__invert__() algopy.UInt64

A UInt64 can be bitwise inverted e.g. ~UInt64(4)

__ior__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can bitwise or with another UInt64 or int e.g. a |= UInt64(2)

__ipow__(power: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be raised to the power of another UInt64 or int e.g. a **= UInt64(2).

This will error on overflow

__irshift__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be right shifted by another UInt64 or int e.g. a >>= UInt64(2)

__isub__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be subtracted with another UInt64 or int e.g. a -= UInt64(2).

This will error on underflow

__ixor__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can bitwise xor with another UInt64 or int e.g. a ^= UInt64(2)

__le__(other: algopy.UInt64 | int) bool

A UInt64 can use the <= operator with another UInt64 or int

__lshift__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be left shifted by another UInt64 or int e.g. UInt64(4) << 2

__lt__(other: algopy.UInt64 | int) bool

A UInt64 can use the < operator with another UInt64 or int

__mod__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be modded with another UInt64 or int e.g. UInt64(4) % 2.

This will error on mod by zero

__mul__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be multiplied with another UInt64 or int e.g. 4 + UInt64(2).

This will error on overflow

__ne__(other: algopy.UInt64 | int) bool

A UInt64 can use the != operator with another UInt64 or int

__or__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can bitwise or with another UInt64 or int e.g. UInt64(4) | 2

__pos__() algopy.UInt64

Supports unary + operator. Redundant given the type is unsigned

__pow__(power: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be raised to the power of another UInt64 or int e.g. UInt64(4) ** 2.

This will error on overflow

__radd__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be added with another UInt64 or int e.g. 4 + UInt64(2).

This will error on overflow

__rand__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can bitwise and with another UInt64 or int e.g. 4 & UInt64(2)

__rfloordiv__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be floor divided with another UInt64 or int e.g. 4 // UInt64(2).

This will error on divide by zero

__rlshift__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be left shifted by another UInt64 or int e.g. 4 << UInt64(2)

__rmod__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be modded with another UInt64 or int e.g. 4 % UInt64(2).

This will error on mod by zero

__rmul__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be multiplied with another UInt64 or int e.g. UInt64(4) + 2.

This will error on overflow

__ror__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can bitwise or with another UInt64 or int e.g. 4 | UInt64(2)

__rpow__(power: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be raised to the power of another UInt64 or int e.g. 4 ** UInt64(2).

This will error on overflow

__rrshift__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be right shifted by another UInt64 or int e.g. 4 >> UInt64(2)

__rshift__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be right shifted by another UInt64 or int e.g. UInt64(4) >> 2

__rsub__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be subtracted with another UInt64 or int e.g. 4 - UInt64(2).

This will error on underflow

__rxor__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can bitwise xor with another UInt64 or int e.g. 4 ^ UInt64(2)

__sub__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can be subtracted with another UInt64 or int e.g. UInt(4) - 2.

This will error on underflow

__xor__(other: algopy.UInt64 | int) algopy.UInt64

A UInt64 can bitwise xor with another UInt64 or int e.g. UInt64(4) ^ 2

algopy.ensure_budget(
required_budget: algopy.UInt64 | int,
fee_source: algopy.OpUpFeeSource = ...,
) None

Ensure the available op code budget is greater than or equal to required_budget

algopy.log(
*args: algopy.UInt64 | algopy.Bytes | algopy.BytesBacked | str | bytes | int,
sep: algopy.Bytes | bytes | str = b'',
) None

Concatenates and logs supplied args as a single bytes value.

UInt64 args are converted to bytes and each argument is separated by sep. Literal str values will be encoded as UTF8.

algopy.logicsig(
*,
name: str,
) collections.abc.Callable[[collections.abc.Callable[[], bool | algopy.UInt64]], algopy.LogicSig]

Decorator to indicate a function is a logic signature

algopy.subroutine(
sub: collections.abc.Callable[algopy._P, algopy._R],
/,
) collections.abc.Callable[algopy._P, algopy._R]

Decorator to indicate functions or methods that can be called by a Smart Contract

algopy.uenumerate(
iterable: collections.abc.Iterable[algopy._T],
) collections.abc.Reversible[tuple[algopy.UInt64, algopy._T]]

Yields pairs containing a count (from zero) and a value yielded by the iterable argument.

enumerate is useful for obtaining an indexed list: (0, seq[0]), (1, seq[1]), (2, seq[2]), …

enumerate((a, b, c)) produces (0, a), (1, b), (2, c)

class algopy.urange

Produces a sequence of UInt64 from start (inclusive) to stop (exclusive) by step.

urange(4) produces 0, 1, 2, 3 urange(i, j) produces i, i+1, i+2, …, j-1. urange(i, j, 2) produces i, i+2, i+4, …, i+2n where n is the largest value where i+2n < j

classmethod __subclasshook__(C)