120 lines
3.6 KiB
Plaintext
120 lines
3.6 KiB
Plaintext
// Example 9: Money - Accounts, Assets, and Transactions
|
|
|
|
print("=== Money Example ===\n");
|
|
|
|
// Get a context to work with
|
|
print("1. Getting context...");
|
|
let ctx = get_context(["alice", "bob", "charlie"]);
|
|
print(" ✓ Context created: " + ctx.context_id());
|
|
|
|
// Create an asset (e.g., a token)
|
|
print("\n2. Creating a digital asset...");
|
|
|
|
let tft_asset = new_asset()
|
|
.address("TFT_ASSET_001")
|
|
.asset_type("utility_token")
|
|
.issuer(1)
|
|
.supply(1000000.0);
|
|
|
|
print(" ✓ Created TFT asset");
|
|
print(" Address: " + tft_asset.get_address());
|
|
print(" Type: " + tft_asset.get_asset_type());
|
|
print(" Supply: " + tft_asset.get_supply());
|
|
|
|
// Save the asset
|
|
print("\n3. Saving asset to context...");
|
|
let asset_id = ctx.save(tft_asset);
|
|
print(" ✓ Saved asset with ID: " + asset_id);
|
|
|
|
// Create accounts for users
|
|
print("\n4. Creating user accounts...");
|
|
|
|
let alice_account = new_account()
|
|
.owner_id(100)
|
|
.address("ALICE_TFT_ACCOUNT")
|
|
.balance(10000.0)
|
|
.currency("TFT")
|
|
.assetid(1);
|
|
|
|
print(" ✓ Created Alice's account");
|
|
print(" Owner ID: " + alice_account.get_owner_id());
|
|
print(" Address: " + alice_account.get_address());
|
|
print(" Balance: " + alice_account.get_balance() + " " + alice_account.get_currency());
|
|
|
|
let bob_account = new_account()
|
|
.owner_id(101)
|
|
.address("BOB_TFT_ACCOUNT")
|
|
.balance(5000.0)
|
|
.currency("TFT")
|
|
.assetid(1);
|
|
|
|
print(" ✓ Created Bob's account");
|
|
print(" Owner ID: " + bob_account.get_owner_id());
|
|
print(" Address: " + bob_account.get_address());
|
|
print(" Balance: " + bob_account.get_balance() + " " + bob_account.get_currency());
|
|
|
|
// Save accounts
|
|
print("\n5. Saving accounts to context...");
|
|
let alice_account_id = ctx.save(alice_account);
|
|
print(" ✓ Saved Alice's account with ID: " + alice_account_id);
|
|
|
|
let bob_account_id = ctx.save(bob_account);
|
|
print(" ✓ Saved Bob's account with ID: " + bob_account_id);
|
|
|
|
// Create a transaction
|
|
print("\n6. Creating a transaction...");
|
|
|
|
let transaction = new_transaction()
|
|
.source(100)
|
|
.destination(101)
|
|
.amount(500.0)
|
|
.assetid(1);
|
|
|
|
print(" ✓ Created transaction");
|
|
print(" From: " + transaction.get_source());
|
|
print(" To: " + transaction.get_destination());
|
|
print(" Amount: " + transaction.get_amount());
|
|
print(" Asset ID: " + transaction.get_assetid());
|
|
|
|
// Save transaction
|
|
print("\n7. Saving transaction to context...");
|
|
let tx_id = ctx.save(transaction);
|
|
print(" ✓ Saved transaction with ID: " + tx_id);
|
|
|
|
// Create a multi-currency account
|
|
print("\n8. Creating multi-currency account...");
|
|
|
|
let charlie_usd_account = new_account()
|
|
.owner_id(102)
|
|
.address("CHARLIE_USD_ACCOUNT")
|
|
.balance(25000.0)
|
|
.currency("USD")
|
|
.assetid(2);
|
|
|
|
print(" ✓ Created Charlie's USD account");
|
|
print(" Balance: " + charlie_usd_account.get_balance() + " " + charlie_usd_account.get_currency());
|
|
|
|
let charlie_id = ctx.save(charlie_usd_account);
|
|
print(" ✓ Saved Charlie's account with ID: " + charlie_id);
|
|
|
|
// List all accounts
|
|
print("\n9. Listing all accounts in context...");
|
|
let account_ids = ctx.list("accounts");
|
|
print(" ✓ Found " + account_ids.len() + " accounts");
|
|
|
|
// List all assets
|
|
print("\n10. Listing all assets in context...");
|
|
let asset_ids = ctx.list("assets");
|
|
print(" ✓ Found " + asset_ids.len() + " assets");
|
|
|
|
// List all transactions
|
|
print("\n11. Listing all transactions in context...");
|
|
let tx_ids = ctx.list("transactions");
|
|
print(" ✓ Found " + tx_ids.len() + " transactions");
|
|
|
|
print("\n=== Money Example Complete ===");
|
|
print("Summary:");
|
|
print(" - Created 1 asset (TFT)");
|
|
print(" - Created 3 accounts (Alice TFT, Bob TFT, Charlie USD)");
|
|
print(" - Created 1 transaction (Alice → Bob: 500 TFT)");
|