Skip to content

AlgorandClientTransactionSender

class algokit_utils.transactions.transaction_sender.AlgorandClientTransactionSender(new_group: collections.abc.Callable[[], algokit_utils.transactions.transaction_composer.TransactionComposer], asset_manager: algokit_utils.assets.asset_manager.AssetManager, app_manager: algokit_utils.applications.app_manager.AppManager, algod_client: algosdk.v2client.algod.AlgodClient)

Orchestrates sending transactions for AlgorandClient.

Provides methods to send various types of transactions including payments, asset operations, and application calls.

new_group() → algokit_utils.transactions.transaction_composer.TransactionComposer

Create a new transaction group.

  • Returns: A new TransactionComposer instance
  • Example:
    >>> sender = AlgorandClientTransactionSender(new_group, asset_manager, app_manager, algod_client)
    >>> composer = sender.new_group()
    >>> composer(PaymentParams(sender="sender", receiver="receiver", amount=AlgoAmount(algo=1)))
    >>> composer.send()

payment(params: algokit_utils.transactions.transaction_composer.PaymentParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendSingleTransactionResult

Send a payment transaction to transfer Algo between accounts.

  • Parameters:

    • params – Payment transaction parameters
    • send_params – Send parameters
  • Returns: Result of the payment transaction

  • Example:

    >>> result = algorand.send.payment(PaymentParams(
    >>> sender="SENDERADDRESS",
    >>> receiver="RECEIVERADDRESS",
    >>> amount=AlgoAmount(algo=4),
    >>> ))
    >>> # Advanced example
    >>> result = algorand.send.payment(PaymentParams(
    >>> amount=AlgoAmount(algo=4),
    >>> receiver="RECEIVERADDRESS",
    >>> sender="SENDERADDRESS",
    >>> close_remainder_to="CLOSEREMAINDERTOADDRESS",
    >>> lease="lease",
    >>> note="note",
    >>> rekey_to="REKEYTOADDRESS",
    >>> first_valid_round=1000,
    >>> validity_window=10,
    >>> extra_fee=AlgoAmount(micro_algo=1000),
    >>> static_fee=AlgoAmount(micro_algo=1000),
    >>> max_fee=AlgoAmount(micro_algo=3000),
    >>> signer=transactionSigner
    >>> ), send_params=SendParams(
    >>> max_rounds_to_wait_for_confirmation=5,
    >>> suppress_log=True,
    >>> ))

asset_create(params: algokit_utils.transactions.transaction_composer.AssetCreateParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendSingleAssetCreateTransactionResult

Create a new Algorand Standard Asset.

  • Parameters:

    • params – Asset creation parameters
    • send_params – Send parameters
  • Returns: Result containing the new asset ID

  • Example:

    >>> result = algorand.send.asset_create(AssetCreateParams(
    >>> sender="SENDERADDRESS",
    >>> asset_name="ASSETNAME",
    >>> unit_name="UNITNAME",
    >>> total=1000,
    >>> ))
    >>> # Advanced example
    >>> result = algorand.send.asset_create(AssetCreateParams(
    >>> sender="CREATORADDRESS",
    >>> total=100,
    >>> decimals=2,
    >>> asset_name="asset",
    >>> unit_name="unit",
    >>> url="url",
    >>> metadata_hash="metadataHash",
    >>> default_frozen=False,
    >>> manager="MANAGERADDRESS",
    >>> reserve="RESERVEADDRESS",
    >>> freeze="FREEZEADDRESS",
    >>> clawback="CLAWBACKADDRESS",
    >>> lease="lease",
    >>> note="note",
    >>> # You wouldn't normally set this field
    >>> first_valid_round=1000,
    >>> validity_window=10,
    >>> extra_fee=AlgoAmount(micro_algo=1000),
    >>> static_fee=AlgoAmount(micro_algo=1000),
    >>> # Max fee doesn't make sense with extraFee AND staticFee
    >>> # already specified, but here for completeness
    >>> max_fee=AlgoAmount(micro_algo=3000),
    >>> # Signer only needed if you want to provide one,
    >>> # generally you'd register it with AlgorandClient
    >>> # against the sender and not need to pass it in
    >>> signer=transactionSigner
    >>> ), send_params=SendParams(
    >>> max_rounds_to_wait_for_confirmation=5,
    >>> suppress_log=True,
    >>> ))

asset_config(params: algokit_utils.transactions.transaction_composer.AssetConfigParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendSingleTransactionResult

Configure an existing Algorand Standard Asset.

  • Parameters:
    • params – Asset configuration parameters
    • send_params – Send parameters
  • Returns: Result of the configuration transaction
  • Example:
    >>> result = algorand.send.asset_config(AssetConfigParams(
    >>> sender="MANAGERADDRESS",
    >>> asset_id=123456,
    >>> manager="MANAGERADDRESS",
    >>> reserve="RESERVEADDRESS",
    >>> freeze="FREEZEADDRESS",
    >>> clawback="CLAWBACKADDRESS",
    >>> lease="lease",
    >>> note="note",
    >>> # You wouldn't normally set this field
    >>> first_valid_round=1000,
    >>> validity_window=10,
    >>> extra_fee=AlgoAmount(micro_algo=1000),
    >>> static_fee=AlgoAmount(micro_algo=1000),
    >>> # Max fee doesn't make sense with extraFee AND staticFee
    >>> # already specified, but here for completeness
    >>> max_fee=AlgoAmount(micro_algo=3000),
    >>> # Signer only needed if you want to provide one,
    >>> # generally you'd register it with AlgorandClient
    >>> # against the sender and not need to pass it in
    >>> signer=transactionSigner
    >>> ), send_params=SendParams(
    >>> max_rounds_to_wait_for_confirmation=5,
    >>> suppress_log=True,
    >>> ))

asset_freeze(params: algokit_utils.transactions.transaction_composer.AssetFreezeParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendSingleTransactionResult

Freeze or unfreeze an Algorand Standard Asset for an account.

  • Parameters:

    • params – Asset freeze parameters
    • send_params – Send parameters
  • Returns: Result of the freeze transaction

  • Example:

    >>> result = algorand.send.asset_freeze(AssetFreezeParams(
    >>> sender="MANAGERADDRESS",
    >>> asset_id=123456,
    >>> account="ACCOUNTADDRESS",
    >>> frozen=True,
    >>> ))
    >>> # Advanced example
    >>> result = algorand.send.asset_freeze(AssetFreezeParams(
    >>> sender="MANAGERADDRESS",
    >>> asset_id=123456,
    >>> account="ACCOUNTADDRESS",
    >>> frozen=True,
    >>> lease="lease",
    >>> note="note",
    >>> # You wouldn't normally set this field
    >>> first_valid_round=1000,
    >>> validity_window=10,
    >>> extra_fee=AlgoAmount(micro_algo=1000),
    >>> static_fee=AlgoAmount(micro_algo=1000),
    >>> # Max fee doesn't make sense with extraFee AND staticFee
    >>> # already specified, but here for completeness
    >>> max_fee=AlgoAmount(micro_algo=3000),
    >>> # Signer only needed if you want to provide one,
    >>> # generally you'd register it with AlgorandClient
    >>> # against the sender and not need to pass it in
    >>> signer=transactionSigner
    >>> ), send_params=SendParams(
    >>> max_rounds_to_wait_for_confirmation=5,
    >>> suppress_log=True,
    >>> ))

asset_destroy(params: algokit_utils.transactions.transaction_composer.AssetDestroyParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendSingleTransactionResult

Destroys an Algorand Standard Asset.

  • Parameters:

    • params – Asset destruction parameters
    • send_params – Send parameters
  • Returns: Result of the destroy transaction

  • Example:

    >>> result = algorand.send.asset_destroy(AssetDestroyParams(
    >>> sender="MANAGERADDRESS",
    >>> asset_id=123456,
    >>> ))
    >>> # Advanced example
    >>> result = algorand.send.asset_destroy(AssetDestroyParams(
    >>> sender="MANAGERADDRESS",
    >>> asset_id=123456,
    >>> lease="lease",
    >>> note="note",
    >>> # You wouldn't normally set this field
    >>> first_valid_round=1000,
    >>> validity_window=10,
    >>> extra_fee=AlgoAmount(micro_algo=1000),
    >>> static_fee=AlgoAmount(micro_algo=1000),
    >>> # Max fee doesn't make sense with extraFee AND staticFee
    >>> # already specified, but here for completeness
    >>> max_fee=AlgoAmount(micro_algo=3000),
    >>> # Signer only needed if you want to provide one,
    >>> # generally you'd register it with AlgorandClient
    >>> # against the sender and not need to pass it in
    >>> signer=transactionSigner
    >>> ), send_params=SendParams(
    >>> max_rounds_to_wait_for_confirmation=5,
    >>> suppress_log=True,
    >>> ))

asset_transfer(params: algokit_utils.transactions.transaction_composer.AssetTransferParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendSingleTransactionResult

Transfer an Algorand Standard Asset.

  • Parameters:

    • params – Asset transfer parameters
    • send_params – Send parameters
  • Returns: Result of the transfer transaction

  • Example:

    >>> result = algorand.send.asset_transfer(AssetTransferParams(
    >>> sender="HOLDERADDRESS",
    >>> asset_id=123456,
    >>> amount=1,
    >>> receiver="RECEIVERADDRESS",
    >>> ))
    >>> # Advanced example (with clawback)
    >>> result = algorand.send.asset_transfer(AssetTransferParams(
    >>> sender="CLAWBACKADDRESS",
    >>> asset_id=123456,
    >>> amount=1,
    >>> receiver="RECEIVERADDRESS",
    >>> clawback_target="HOLDERADDRESS",
    >>> # This field needs to be used with caution
    >>> close_asset_to="ADDRESSTOCLOSETO",
    >>> lease="lease",
    >>> note="note",
    >>> # You wouldn't normally set this field
    >>> first_valid_round=1000,
    >>> validity_window=10,
    >>> extra_fee=AlgoAmount(micro_algo=1000),
    >>> static_fee=AlgoAmount(micro_algo=1000),
    >>> # Max fee doesn't make sense with extraFee AND staticFee
    >>> # already specified, but here for completeness
    >>> max_fee=AlgoAmount(micro_algo=3000),
    >>> # Signer only needed if you want to provide one,
    >>> # generally you'd register it with AlgorandClient
    >>> # against the sender and not need to pass it in
    >>> signer=transactionSigner
    >>> ), send_params=SendParams(
    >>> max_rounds_to_wait_for_confirmation=5,
    >>> suppress_log=True,
    >>> ))

asset_opt_in(params: algokit_utils.transactions.transaction_composer.AssetOptInParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendSingleTransactionResult

Opt an account into an Algorand Standard Asset.

  • Parameters:

    • params – Asset opt-in parameters
    • send_params – Send parameters
  • Returns: Result of the opt-in transaction

  • Example:

    >>> result = algorand.send.asset_opt_in(AssetOptInParams(
    >>> sender="SENDERADDRESS",
    >>> asset_id=123456,
    >>> ))
    >>> # Advanced example
    >>> result = algorand.send.asset_opt_in(AssetOptInParams(
    >>> sender="SENDERADDRESS",
    >>> asset_id=123456,
    >>> lease="lease",
    >>> note="note",
    >>> # You wouldn't normally set this field
    >>> first_valid_round=1000,
    >>> validity_window=10,
    >>> extra_fee=AlgoAmount(micro_algo=1000),
    >>> static_fee=AlgoAmount(micro_algo=1000),
    >>> # Max fee doesn't make sense with extraFee AND staticFee
    >>> # already specified, but here for completeness
    >>> max_fee=AlgoAmount(micro_algo=3000),
    >>> # Signer only needed if you want to provide one,
    >>> # generally you'd register it with AlgorandClient
    >>> # against the sender and not need to pass it in
    >>> signer=transactionSigner
    >>> ), send_params=SendParams(
    >>> max_rounds_to_wait_for_confirmation=5,
    >>> suppress_log=True,
    >>> ))

asset_opt_out(params: algokit_utils.transactions.transaction_composer.AssetOptOutParams, send_params: algokit_utils.models.transaction.SendParams | None = None, *, ensure_zero_balance: bool = True) → SendSingleTransactionResult

Opt an account out of an Algorand Standard Asset.

  • Parameters:

    • params – Asset opt-out parameters
    • send_params – Send parameters
    • ensure_zero_balance – Check if account has zero balance before opt-out, defaults to True
  • Raises: ValueError – If account has non-zero balance or is not opted in

  • Returns: Result of the opt-out transaction

  • Example:

    >>> result = algorand.send.asset_opt_out(AssetOptOutParams(
    >>> sender="SENDERADDRESS",
    >>> creator="CREATORADDRESS",
    >>> asset_id=123456,
    >>> ensure_zero_balance=True,
    >>> ))
    >>> # Advanced example
    >>> result = algorand.send.asset_opt_out(AssetOptOutParams(
    >>> sender="SENDERADDRESS",
    >>> asset_id=123456,
    >>> creator="CREATORADDRESS",
    >>> ensure_zero_balance=True,
    >>> lease="lease",
    >>> note="note",
    >>> # You wouldn't normally set this field
    >>> first_valid_round=1000,
    >>> validity_window=10,
    >>> extra_fee=AlgoAmount(micro_algo=1000),
    >>> static_fee=AlgoAmount(micro_algo=1000),
    >>> # Max fee doesn't make sense with extraFee AND staticFee
    >>> # already specified, but here for completeness
    >>> max_fee=AlgoAmount(micro_algo=3000),
    >>> # Signer only needed if you want to provide one,
    >>> # generally you'd register it with AlgorandClient
    >>> # against the sender and not need to pass it in
    >>> signer=transactionSigner
    >>> ), send_params=SendParams(
    >>> max_rounds_to_wait_for_confirmation=5,
    >>> suppress_log=True,
    >>> ))

app_create(params: algokit_utils.transactions.transaction_composer.AppCreateParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendAppCreateTransactionResult[algokit_utils.applications.abi.ABIReturn]

Create a new application.

  • Parameters:

    • params – Application creation parameters
    • send_params – Send parameters
  • Returns: Result containing the new application ID and address

  • Example:

    >>> result = algorand.send.app_create(AppCreateParams(
    >>> sender="CREATORADDRESS",
    >>> approval_program="TEALCODE",
    >>> clear_state_program="TEALCODE",
    >>> ))
    >>> # Advanced example
    >>> result = algorand.send.app_create(AppCreateParams(
    >>> sender="CREATORADDRESS",
    >>> approval_program="TEALCODE",
    >>> clear_state_program="TEALCODE",
    >>> ))
    >>> # algorand.send.appCreate(AppCreateParams(
    >>> # sender='CREATORADDRESS',
    >>> # approval_program="TEALCODE",
    >>> # clear_state_program="TEALCODE",
    >>> # schema={
    >>> # "global_ints": 1,
    >>> # "global_byte_slices": 2,
    >>> # "local_ints": 3,
    >>> # "local_byte_slices": 4
    >>> # },
    >>> # extra_program_pages: 1,
    >>> # on_complete: algosdk.transaction.OnComplete.OptInOC,
    >>> # args: [b'some_bytes']
    >>> # account_references: ["ACCOUNT_1"]
    >>> # app_references: [123, 1234]
    >>> # asset_references: [12345]
    >>> # box_references: ["box1", {app_id: 1234, name: "box2"}]
    >>> # lease: 'lease',
    >>> # note: 'note',
    >>> # # You wouldn't normally set this field
    >>> # first_valid_round: 1000,
    >>> # validity_window: 10,
    >>> # extra_fee: AlgoAmount(micro_algo=1000),
    >>> # static_fee: AlgoAmount(micro_algo=1000),
    >>> # # Max fee doesn't make sense with extraFee AND staticFee
    >>> # # already specified, but here for completeness
    >>> # max_fee: AlgoAmount(micro_algo=3000),
    >>> # # Signer only needed if you want to provide one,
    >>> # # generally you'd register it with AlgorandClient
    >>> # # against the sender and not need to pass it in
    >>> # signer: transactionSigner
    >>> #}, send_params=SendParams(
    >>> # max_rounds_to_wait_for_confirmation=5,
    >>> # suppress_log=True,
    >>> #))

app_update(params: algokit_utils.transactions.transaction_composer.AppUpdateParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendAppUpdateTransactionResult[algokit_utils.applications.abi.ABIReturn]

Update an application.

  • Parameters:
    • params – Application update parameters
    • send_params – Send parameters
  • Returns: Result containing the compiled programs
  • Example:
    >>> # Basic example
    >>> algorand.send.app_update(AppUpdateParams(
    >>> sender="CREATORADDRESS",
    >>> approval_program="TEALCODE",
    >>> clear_state_program="TEALCODE",
    >>> ))
    >>> # Advanced example
    >>> algorand.send.app_update(AppUpdateParams(
    >>> sender="CREATORADDRESS",
    >>> approval_program="TEALCODE",
    >>> clear_state_program="TEALCODE",
    >>> on_complete=OnComplete.UpdateApplicationOC,
    >>> args=[b'some_bytes'],
    >>> account_references=["ACCOUNT_1"],
    >>> app_references=[123, 1234],
    >>> asset_references=[12345],
    >>> box_references=[...],
    >>> lease="lease",
    >>> note="note",
    >>> # You wouldn't normally set this field
    >>> first_valid_round=1000,
    >>> validity_window=10,
    >>> extra_fee=AlgoAmount(micro_algo=1000),
    >>> static_fee=AlgoAmount(micro_algo=1000),
    >>> # Max fee doesn't make sense with extraFee AND staticFee
    >>> # already specified, but here for completeness
    >>> max_fee=AlgoAmount(micro_algo=3000),
    >>> # Signer only needed if you want to provide one,
    >>> # generally you'd register it with AlgorandClient
    >>> # against the sender and not need to pass it in
    >>> signer=transactionSigner
    >>> ), send_params=SendParams(
    >>> max_rounds_to_wait_for_confirmation=5,
    >>> suppress_log=True,
    >>> ))

app_delete(params: algokit_utils.transactions.transaction_composer.AppDeleteParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendAppTransactionResult[algokit_utils.applications.abi.ABIReturn]

Delete an application.

  • Parameters:
    • params – Application deletion parameters
    • send_params – Send parameters
  • Returns: Result of the deletion transaction
  • Example:
    >>> # Basic example
    >>> algorand.send.app_delete(AppDeleteParams(
    >>> sender="CREATORADDRESS",
    >>> app_id=123456,
    >>> ))
    >>> # Advanced example
    >>> algorand.send.app_delete(AppDeleteParams(
    >>> sender="CREATORADDRESS",
    >>> on_complete=OnComplete.DeleteApplicationOC,
    >>> args=[b'some_bytes'],
    >>> account_references=["ACCOUNT_1"],
    >>> app_references=[123, 1234],
    >>> asset_references=[12345],
    >>> box_references=[...],
    >>> lease="lease",
    >>> note="note",
    >>> # You wouldn't normally set this field
    >>> first_valid_round=1000,
    >>> validity_window=10,
    >>> extra_fee=AlgoAmount(micro_algo=1000),
    >>> static_fee=AlgoAmount(micro_algo=1000),
    >>> # Max fee doesn't make sense with extraFee AND staticFee
    >>> # already specified, but here for completeness
    >>> max_fee=AlgoAmount(micro_algo=3000),
    >>> # Signer only needed if you want to provide one,
    >>> # generally you'd register it with AlgorandClient
    >>> # against the sender and not need to pass it in
    >>> signer=transactionSigner,
    >>> ), send_params=SendParams(
    >>> max_rounds_to_wait_for_confirmation=5,
    >>> suppress_log=True,
    >>> ))

app_call(params: algokit_utils.transactions.transaction_composer.AppCallParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendAppTransactionResult[algokit_utils.applications.abi.ABIReturn]

Call an application.

  • Parameters:
    • params – Application call parameters
    • send_params – Send parameters
  • Returns: Result containing any ABI return value
  • Example:
    >>> # Basic example
    >>> algorand.send.app_call(AppCallParams(
    >>> sender="CREATORADDRESS",
    >>> app_id=123456,
    >>> ))
    >>> # Advanced example
    >>> algorand.send.app_call(AppCallParams(
    >>> sender="CREATORADDRESS",
    >>> on_complete=OnComplete.OptInOC,
    >>> args=[b'some_bytes'],
    >>> account_references=["ACCOUNT_1"],
    >>> app_references=[123, 1234],
    >>> asset_references=[12345],
    >>> box_references=[...],
    >>> lease="lease",
    >>> note="note",
    >>> # You wouldn't normally set this field
    >>> first_valid_round=1000,
    >>> validity_window=10,
    >>> extra_fee=AlgoAmount(micro_algo=1000),
    >>> static_fee=AlgoAmount(micro_algo=1000),
    >>> # Max fee doesn't make sense with extraFee AND staticFee
    >>> # already specified, but here for completeness
    >>> max_fee=AlgoAmount(micro_algo=3000),
    >>> # Signer only needed if you want to provide one,
    >>> # generally you'd register it with AlgorandClient
    >>> # against the sender and not need to pass it in
    >>> signer=transactionSigner,
    >>> ), send_params=SendParams(
    >>> max_rounds_to_wait_for_confirmation=5,
    >>> suppress_log=True,
    >>> ))

app_create_method_call(params: algokit_utils.transactions.transaction_composer.AppCreateMethodCallParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendAppCreateTransactionResult[algokit_utils.applications.abi.ABIReturn]

Call an application’s create method.

  • Parameters:
    • params – Method call parameters for application creation
    • send_params – Send parameters
  • Returns: Result containing the new application ID and address
  • Example:
    >>> # Note: you may prefer to use `algorand.client` to get an app client for more advanced functionality.
    >>> #
    >>> # @param params The parameters for the app creation transaction
    >>> # Basic example
    >>> method = algorand.abi.Method(
    >>> name='method',
    >>> args=[b'arg1'],
    >>> returns='string'
    >>> )
    >>> result = algorand.send.app_create_method_call({ sender: 'CREATORADDRESS',
    >>> approval_program: 'TEALCODE',
    >>> clear_state_program: 'TEALCODE',
    >>> method: method,
    >>> args: ["arg1_value"] })
    >>> created_app_id = result.app_id
    >>> ...
    >>> # Advanced example
    >>> method = algorand.abi.Method(
    >>> name='method',
    >>> args=[b'arg1'],
    >>> returns='string'
    >>> )
    >>> result = algorand.send.app_create_method_call({
    >>> sender: 'CREATORADDRESS',
    >>> method: method,
    >>> args: ["arg1_value"],
    >>> approval_program: "TEALCODE",
    >>> clear_state_program: "TEALCODE",
    >>> schema: {
    >>> "global_ints": 1,
    >>> "global_byte_slices": 2,
    >>> "local_ints": 3,
    >>> "local_byte_slices": 4
    >>> },
    >>> extra_program_pages: 1,
    >>> on_complete: algosdk.transaction.OnComplete.OptInOC,
    >>> args: [new Uint8Array(1, 2, 3, 4)],
    >>> account_references: ["ACCOUNT_1"],
    >>> app_references: [123, 1234],
    >>> asset_references: [12345],
    >>> box_references: [...],
    >>> lease: 'lease',
    >>> note: 'note',
    >>> # You wouldn't normally set this field
    >>> first_valid_round: 1000,
    >>> validity_window: 10,
    >>> extra_fee: AlgoAmount(micro_algo=1000),
    >>> static_fee: AlgoAmount(micro_algo=1000),
    >>> # Max fee doesn't make sense with extraFee AND staticFee
    >>> # already specified, but here for completeness
    >>> max_fee: AlgoAmount(micro_algo=3000),
    >>> # Signer only needed if you want to provide one,
    >>> # generally you'd register it with AlgorandClient
    >>> # against the sender and not need to pass it in
    >>> signer: transactionSigner,
    >>> }, send_params=SendParams(
    >>> max_rounds_to_wait_for_confirmation=5,
    >>> suppress_log=True,
    >>> ))

app_update_method_call(params: algokit_utils.transactions.transaction_composer.AppUpdateMethodCallParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendAppUpdateTransactionResult[algokit_utils.applications.abi.ABIReturn]

Call an application’s update method.

  • Parameters:

    • params – Method call parameters for application update
    • send_params – Send parameters
  • Returns: Result containing the compiled programs

  • Example:

    Basic example:

    method = algorand.abi.Method( … name=”updateMethod”, … args=[{“type”: “string”, “name”: “arg1”}], … returns=”string” … ) params = AppUpdateMethodCallParams( … sender=”CREATORADDRESS”, … app_id=123, … method=method, … args=[“new_value”], … approval_program=”TEALCODE”, … clear_state_program=”TEALCODE” … ) result = algorand.send.app_update_method_call(params) print(result.compiled_approval, result.compiled_clear)

    Advanced example:

    method = algorand.abi.Method( … name=”updateMethod”, … args=[{“type”: “string”, “name”: “arg1”}, {“type”: “uint64”, “name”: “arg2”}], … returns=”string” … ) params = AppUpdateMethodCallParams( … sender=”CREATORADDRESS”, … app_id=456, … method=method, … args=[“new_value”, 42], … approval_program=”TEALCODE_ADVANCED”, … clear_state_program=”TEALCLEAR_ADVANCED”, … account_references=[“ACCOUNT1”, “ACCOUNT2”], … app_references=[789], … asset_references=[101112] … ) result = algorand.send.app_update_method_call(params) print(result.compiled_approval, result.compiled_clear)

app_delete_method_call(params: algokit_utils.transactions.transaction_composer.AppDeleteMethodCallParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendAppTransactionResult[algokit_utils.applications.abi.ABIReturn]

Call an application’s delete method.

  • Parameters:

    • params – Method call parameters for application deletion
    • send_params – Send parameters
  • Returns: Result of the deletion transaction

  • Example:

    Basic example:

    method = algorand.abi.Method( … name=”deleteMethod”, … args=[], … returns=”void” … ) params = AppDeleteMethodCallParams( … sender=”CREATORADDRESS”, … app_id=123, … method=method … ) result = algorand.send.app_delete_method_call(params) print(result.tx_id)

    Advanced example:

    method = algorand.abi.Method( … name=”deleteMethod”, … args=[{“type”: “uint64”, “name”: “confirmation”}], … returns=”void” … ) params = AppDeleteMethodCallParams( … sender=”CREATORADDRESS”, … app_id=123, … method=method, … args=[1], … account_references=[“ACCOUNT1”], … app_references=[456] … ) result = algorand.send.app_delete_method_call(params) print(result.tx_id)

app_call_method_call(params: algokit_utils.transactions.transaction_composer.AppCallMethodCallParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendAppTransactionResult[algokit_utils.applications.abi.ABIReturn]

Call an application’s call method.

  • Parameters:

    • params – Method call parameters
    • send_params – Send parameters
  • Returns: Result containing any ABI return value

  • Example:

    Basic example:

    method = algorand.abi.Method( … name=”callMethod”, … args=[{“type”: “uint64”, “name”: “arg1”}], … returns=”uint64” … ) params = AppCallMethodCallParams( … sender=”CALLERADDRESS”, … app_id=123, … method=method, … args=[12345] … ) result = algorand.send.app_call_method_call(params) print(result.abi_return)

    Advanced example:

    method = algorand.abi.Method( … name=”callMethod”, … args=[{“type”: “uint64”, “name”: “arg1”}, {“type”: “string”, “name”: “arg2”}], … returns=”uint64” … ) params = AppCallMethodCallParams( … sender=”CALLERADDRESS”, … app_id=123, … method=method, … args=[12345, “extra”], … account_references=[“ACCOUNT1”], … asset_references=[101112], … app_references=[789] … ) result = algorand.send.app_call_method_call(params) print(result.abi_return)

online_key_registration(params: algokit_utils.transactions.transaction_composer.OnlineKeyRegistrationParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendSingleTransactionResult

Register an online key.

  • Parameters:

    • params – Key registration parameters
    • send_params – Send parameters
  • Returns: Result of the registration transaction

  • Example:

    Basic example:

    params = OnlineKeyRegistrationParams( … sender=”ACCOUNTADDRESS”, … vote_key=”VOTEKEY”, … selection_key=”SELECTIONKEY”, … vote_first=1000, … vote_last=2000, … vote_key_dilution=10 … ) result = algorand.send.online_key_registration(params) print(result.tx_id)

    Advanced example:

    params = OnlineKeyRegistrationParams( … sender=”ACCOUNTADDRESS”, … vote_key=”VOTEKEY”, … selection_key=”SELECTIONKEY”, … vote_first=1000, … vote_last=2100, … vote_key_dilution=10, … state_proof_key=b’’ * 64 … ) result = algorand.send.online_key_registration(params) print(result.tx_id)

offline_key_registration(params: algokit_utils.transactions.transaction_composer.OfflineKeyRegistrationParams, send_params: algokit_utils.models.transaction.SendParams | None = None) → SendSingleTransactionResult

Register an offline key.

  • Parameters:

    • params – Key registration parameters
    • send_params – Send parameters
  • Returns: Result of the registration transaction

  • Example:

    Basic example:

    params = OfflineKeyRegistrationParams( … sender=”ACCOUNTADDRESS”, … prevent_account_from_ever_participating_again=True … ) result = algorand.send.offline_key_registration(params) print(result.tx_id)

    Advanced example:

    params = OfflineKeyRegistrationParams( … sender=”ACCOUNTADDRESS”, … prevent_account_from_ever_participating_again=True, … note=b’Offline registration’ … ) result = algorand.send.offline_key_registration(params) print(result.tx_id)