可以使用以下代码来解决问题:
from brownie import CandyMachine
def snapshot_mint_accounts():
candy_machine = CandyMachine.deploy(...)
minted_count = candy_machine.mintedCount()
minted_snapshots = {}
# 获取所有快照
for i in range(minted_count):
minted_snapshot = candy_machine.getSnapshotAtIndex(i)
minted_snapshots[minted_snapshot["mint_id"]] = minted_snapshot
# 按照 mint_id 排序快照
sorted_snapshots = []
for mint_id in sorted(minted_snapshots.keys()):
sorted_snapshots.append(minted_snapshots[mint_id])
# 获取每个账户的薄荷余额
mint_balances = {}
for snapshot in sorted_snapshots:
for account, amount in snapshot["balances"].items():
if account in mint_balances:
mint_balances[account] += amount
else:
mint_balances[account] = amount
# 返回账户列表和对应薄荷余额
accounts = list(mint_balances.keys())
balances = list(mint_balances.values())
return accounts, balances
该函数返回一个元组,包含按正确顺序排列的所有账户和对应的薄荷余额。使用此函数需要确保已经部署了 CandyMachine 合约,并且已经至少进行了一次薄荷铸造。
下一篇:按正确顺序的计数列表