Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
169 changes: 169 additions & 0 deletions main.py
Original file line number Diff line number Diff line change
@@ -1 +1,170 @@
from algokit_utils.beta.algorand_client import (
AlgorandClient,
AssetCreateParams,
AssetOptInParams,
AssetTransferParams,
PayParams
)

algorand = AlgorandClient.default_local_net()

dispenser = algorand.account.dispenser()
print("Dispenser Address: ", dispenser.address)

creator = algorand.account.random()
print("Creator Address: ", creator.address)

print(algorand.account.get_information(creator.address))

algorand.send.payment(
PayParams(
sender=dispenser.address,
receiver=creator.address,
amount=10_000_000
)
)

print(algorand.account.get_information(creator.address))

sent_txn = algorand.send.asset_create(
AssetCreateParams(
sender=creator.address,
total=333,
asset_name="BUILDH3R",
unit_name="H3R",
)
)

asset_id = sent_txn["confirmation"]["asset-index"]
print(asset_id)

receiver_account = algorand.account.random()
print(receiver_account.address)

algorand.send.payment(
PayParams(
sender=dispenser.address,
receiver=receiver_account.address,
amount=10_000_000
)
)

algorand.send.asset_opt_in(
AssetOptInParams(
sender=receiver_account.address,
asset_id=asset_id
)
)

algorand.send.asset_transfer(
AssetTransferParams(
sender=creator.address,
receiver=receiver_account.address,
asset_id=asset_id,
amount=111
)
)

print(algorand.account.get_information(receiver_account.address))

print("\n")

# Task Submission

# 1. Create new accounts
account1 = algorand.account.random()
print(account1.address)
account2 = algorand.account.random()
print(account2.address)
account3 = algorand.account.random()
print(account3.address)


algorand.send.payment(
PayParams(
sender=dispenser.address,
receiver=account1.address,
amount=10_000_000
)
)
print(algorand.account.get_information(account1.address))

algorand.send.payment(
PayParams(
sender=dispenser.address,
receiver=account2.address,
amount=10_000_000
)
)
print(algorand.account.get_information(account2.address))

algorand.send.payment(
PayParams(
sender=dispenser.address,
receiver=account3.address,
amount=10_000_000
)
)
print(algorand.account.get_information(account3.address))

# 2. Create a new asset

sent_second_txn = algorand.send.asset_create(
AssetCreateParams(
sender=creator.address,
asset_name="BUILDHER",
unit_name="HER",
total=333
)
)

second_asset_id = sent_second_txn["confirmation"]["asset-index"]
print("Created asset Id: ", second_asset_id)



# 3. Opt-in to the asset and transfer to created accounts with inner transactions

algorand.new_group().add_asset_opt_in(
AssetOptInParams(
sender=account1.address,
asset_id=second_asset_id
)
).add_asset_transfer(
AssetTransferParams(
sender=creator.address,
receiver=account1.address,
asset_id=second_asset_id,
amount=100
)
).add_asset_opt_in(
AssetOptInParams(
sender=account2.address,
asset_id=second_asset_id
)
).add_asset_transfer(
AssetTransferParams(
sender=creator.address,
receiver=account2.address,
asset_id=second_asset_id,
amount=100
)
).add_asset_opt_in(
AssetOptInParams(
sender=account3.address,
asset_id=second_asset_id
)
).add_asset_transfer(
AssetTransferParams(
sender=creator.address,
receiver=account3.address,
asset_id=second_asset_id,
amount=100
)
).execute()

# 5. Check the balance of accounts

print(algorand.account.get_information(account1.address))
print(algorand.account.get_information(account2.address))
print(algorand.account.get_information(account3.address))
106 changes: 106 additions & 0 deletions mainx.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
from algokit_utils.beta.algorand_client import (
AlgorandClient,
AssetCreateParams,
AssetOptInParams,
AssetTransferParams,
PayParams
)

algorand = AlgorandClient.default_local_net()

# Task Submission 2

# Create new account
creator = algorand.account.random()

print("Account Address: ", creator.address)

# Create dispenser address
dispenser = algorand.account.dispenser()

algorand.send.payment(
PayParams(
sender=dispenser.address,
receiver=creator.address,
amount=10_000_000
)
)

print(algorand.account.get_information(creator.address))

# Create asset

sent_txn = algorand.send.asset_create(
AssetCreateParams(
sender=creator.address,
total=1_000,
asset_name="Buildh3r",
unit_name="Bh3r",
manager=creator.address,
clawback=creator.address,
freeze=creator.address,
reserve=creator.address
)
)

asset_identity = sent_txn['confirmation']['asset-index']
print("Asset ID: ", asset_identity)

receiver_addr = algorand.account.random()

print("Receiver Address: ", receiver_addr.address)

algorand.send.payment(
PayParams(
sender=dispenser.address,
receiver=receiver_addr.address,
amount=10_000_000
)
)

algorand.account.get_information(receiver_addr.address)

group_txn = algorand.new_group()

group_txn.add_asset_opt_in(
AssetOptInParams(
sender=receiver_addr.address,
asset_id=asset_identity
)
)

group_txn.add_asset_transfer(
AssetTransferParams(
sender=creator.address,
receiver=receiver_addr.address,
asset_id=asset_identity,
amount=10
)
)


group_txn.execute()

print("Receiver Account state: ", algorand.account.get_information(receiver_addr.address))

print("Creator Account Asset: ", algorand.account.get_information(creator.address)['assets'][0]['amount'])
print("Receiver Account Asset: ", algorand.account.get_information(receiver_addr.address)['assets'][0]['amount'])
print("\n")

group_txn1 = algorand.new_group()

group_txn1.add_asset_transfer(
AssetTransferParams(
sender=creator.address,
amount=5,
receiver=creator.address,
asset_id=asset_identity,
clawback_target=receiver_addr.address
)
)

group_txn1.execute()

print("Creator Account Asset: ", algorand.account.get_information(creator.address)['assets'][0]['amount'])
print("Receiver Account Asset: ", algorand.account.get_information(receiver_addr.address)['assets'][0]['amount'])
print("\n")
14 changes: 14 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[tool.poetry]
name = "codespace-algorand"
version = "0.1.0"
description = ""
authors = ["D3stinn3 <paynedestinne@gmail.com>"]
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.12"


[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"