这是因为在Anchor中输入了无效的账号标识符(Account Discriminator),即“#”号后面的数字。要解决这个问题,需要检查输入的账号标识符是否正确。以下是一个示例代码:
from stellar_sdk import Server, Keypair
# Anchor用户名和账号标识符
username = "example"
discriminator = "1234"
# 检查输入的账号标识符是否为4位数字
if not discriminator.isdigit() or len(discriminator) != 4:
print("Invalid account discriminator!")
else:
# 创建Keypair
seed = "SC4FPMGMBQKSEYU5KROJPLOMIHNORERWIUKOARZFGL4VEQPUCCWJN2SK"
keypair = Keypair.from_secret(seed)
# 实例化Server
server = Server("https://horizon-testnet.stellar.org")
# 构造收款账户
destination = Keypair.random()
# 构造TransactionBuilder
transaction = (
TransactionBuilder(
source_account=server.load_account(keypair.public_key),
network_passphrase=Network.TESTNET_NETWORK_PASSPHRASE,
base_fee=100,
)
.append_payment_op(destination.public_key, "10.0", "XLM")
.build()
)
# 签名Transaction
transaction.sign(keypair)
# 提交Transaction
response = server.submit_transaction(transaction)
print(response)
在这个示例中,如果输入的账号标识符不是4位数字或包含非数字字符,则会输出“Invalid account discriminator!”的错误信息。如果输入正确,则会执行一系列操作,并输出Transaction提交的结果。