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
75 changes: 3 additions & 72 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,34 +7,20 @@
AssetFreezeParams,

)

# Client to connect to localnet
algorand = AlgorandClient.default_local_net()

# Import dispenser from KMD
dispenser = algorand.account.dispenser()
print("Dispenser Address: ", dispenser.address)

# Create a wallet for the creator of the token
creator = algorand.account.random()
print("Creator Address: ",creator.address)

# Get account info about creator
print(algorand.account.get_information(creator.address))

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

# Check out the creator account changes after funding
print(algorand.account.get_information(creator.address))

# Create Algorand Standard Asset
sent_txn = algorand.send.asset_create(
AssetCreateParams(
sender=creator.address,
Expand All @@ -46,48 +32,31 @@
freeze=creator.address
)
)

# Extracting the confirmation and asset index of the asset creation transaction to get asset ID
asset_id= sent_txn["confirmation"]["asset-index"]
print("Asset ID: ", asset_id)

# Create receiver account
receiver_acct = algorand.account.random()
print("Receiver Account: ", receiver_acct.address)

# Fund receiver account
algorand.send.payment(
PayParams(
sender=dispenser.address,
receiver=receiver_acct.address,
amount=10_000_000
)
)

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

# Atomic transfer segment - optin txn / payment txn / asset transfer txn

# Create a new transaction group
group_tx = algorand.new_group()

# Add an asset opt-in transaction to the group
group_tx.add_asset_opt_in(
AssetOptInParams(
sender=receiver_acct.address,
asset_id=asset_id # The ID of the asset to opt in to
asset_id=asset_id
)
)

# Add a payment transaction to the group
group_tx.add_payment(
PayParams(
sender=receiver_acct.address,
receiver=creator.address,
amount=1_000_000
))

# Add an asset transfer transaction to the group
group_tx.add_asset_transfer(
AssetTransferParams(
sender=creator.address,
Expand All @@ -96,24 +65,10 @@
amount=10
)
)

# Execute the transaction group
group_tx.execute()

# Print the entire information from the Receiver Account
print(algorand.account.get_information(receiver_acct.address))

# Print the amount of the asset the receiver account holds after the transactions
print("Receiver Account Asset Balance:",algorand.account.get_information(receiver_acct.address)['assets'][0]['amount'])

# Print the remaining balance of the creator account after the transactions
print("Creator Account Balance:", algorand.account.get_information(creator.address)['amount'])

#-------------------------------------------------------
# Additional Information (Freeze & Clawback)

# Freeze

algorand.send.asset_freeze(
AssetFreezeParams(
sender=creator.address,
Expand All @@ -123,44 +78,22 @@
)
)

# Test freeze error
""" algorand.send.asset_transfer(
AssetTransferParams(
sender=receiver_acct.address,
receiver=creator.address,
asset_id=asset_id,
amount=2
)
)
"""

# UnFreeze

algorand.send.asset_freeze(
AssetFreezeParams(
sender=creator.address,
asset_id=asset_id,
account=receiver_acct.address,
frozen= False
)
)

# Send asset

algorand.send.asset_transfer(
)algorand.send.asset_transfer(
AssetTransferParams(
sender=receiver_acct.address,
receiver=creator.address,
asset_id=asset_id,
amount=2
)
)


print(algorand.account.get_information(receiver_acct.address)['assets'][0]['amount'])

# Clawback

algorand.send.asset_transfer(
AssetTransferParams(
sender= creator.address,
Expand All @@ -170,6 +103,4 @@
clawback_target= receiver_acct.address
)
)

print(algorand.account.get_information(receiver_acct.address)['assets'][0]['amount'])

print(algorand.account.get_information(receiver_acct.address)['assets'][0]['amount'])
Empty file added nimra.py
Empty file.