import json import account import os import time import datetime # Plugin Data info = { "name": "Multi Wallet Functions", "description": "Access and manage multiple wallets at once", "version": "1.0", "author": "Nathan.Woodburn/" } # Functions functions = { "balance": { "name": "Wallet Balances", "type": "default", "description": "List balances of all wallets", "params": {}, "returns": { "result": { "name": "Result", "type": "list" } } }, "domains": { "name": "Domains", "type": "default", "description": "List number of domains in each wallet", "params": {}, "returns": { "result": { "name": "Result", "type": "list" } } }, "expiring": { "name": "Expiring Domains", "type": "default", "description": "List domains that are expiring and their wallet", "params": { "days": { "name": "Days until expiry (default 30)", "type": "number" } }, "returns": { "result": { "name": "Result", "type": "text" } } }, "export": { "name": "Export Domains", "type": "default", "description": "Export domains to a file", "params": { }, "returns": { "result": { "name": "result.csv", "type": "file" } } }, "dash": { "name": "Dashboard widget", "type": "dashboard", "description": "List total balance of all wallets on your dashboard", "params": {}, "returns": { "result": { "name": "Total Holdings", "type": "text" } } }, "enable": { "name": "Enable Dashboard widget", "type": "default", "description": "Enable the dashboard widget", "params": {}, "returns": { "result": { "name": "Result", "type": "text" } } }, "disable": { "name": "Disable Dashboard widget", "type": "default", "description": "Disable the dashboard widget", "params": {}, "returns": { "result": { "name": "Result", "type": "text" } } } } if not os.path.exists("user_data/multiwallet.json"): with open("user_data/multiwallet.json", "w") as f: json.dump({ "enabled": False, "lastUpdate": 0 }, f) def balance(params, authentication): wallets = account.listWallets() balances = [] total = 0 available = 0 for wallet in wallets: info = account.getBalance(wallet) balances.append(f"{wallet}: Available: {info['available']:,.2f} HNS, Total: {info['total']:,.2f} HNS") total += info['total'] available += info['available'] balances.append(f"Total: Available: {available:,.2f} HNS, Total: {total:,.2f} HNS") return {"result": balances} def expiring(params, authentication): days = params['days'] if days == None or days == '': days = 30 else: days = int(days) wallets = account.listWallets() expiring = '' for wallet in wallets: walletExpiring = [] domains = account.getDomains(wallet) for domain in domains: if 'stats' in domain and 'daysUntilExpire' in domain['stats']: if domain['stats']['daysUntilExpire'] <= days: walletExpiring.append({"domain": domain['name'], "wallet": wallet, "days": domain['stats']['daysUntilExpire']}) if len(walletExpiring) > 0: expiring += f"
Domain | Days Until Expiration |
---|---|
{domain['domain']} | {domain['days']} |