当尝试使用 spl-token mint 铸造令牌并尝试铸造 1,000,000,000,000 个令牌时,它只会铸造 18446744073.709551615 个令牌

When trying to mint tokens using spl-token mint, and trying to mint 1,000,000,000,000 tokens, it only mints 18446744073.709551615 tokens

创建令牌: ~$ spl-token create-token Creating token 4PgB5jPM9a5Js5FT6zPJHD8rcDogcnbSSLS1d5Mny9n1 Signature: bmHzFBvFU2vq7AeLHuQuYsgDEPZRXV9mSDfK7RjPU7CwkyQoPEZLzrsCDaAJWB32bffmKsemjEshhrataAr2tQ8

检查供应: ~$ spl-token supply 4PgB5jPM9a5Js5FT6zPJHD8rcDogcnbSSLS1d5Mny9n1 0

铸币: ~$spl-token mint 4PgB5jPM9a5Js5FT6zPJHD8rcDogcnbSSLS1d5Mny9n1 1000000000000 Minting 1000000000000 tokens Token: 4PgB5jPM9a5Js5FT6zPJHD8rcDogcnbSSLS1d5Mny9n1 Recipient: 85vRuzFU2LA2KQwpKRFF6TAwJVfJevT4GWAYVpGdfZ7U Signature: 3HDX6mRB1WBqpeSyYTwAfbobiBw8XdPa3nDTpbvSvH2cZFFMKfT8wLNV4rSHRRsWAsoDbuXULr5h94xQ8a9ZmmKk

检查硬币供应: ~$ spl-token balance 4PgB5jPM9a5Js5FT6zPJHD8rcDogcnbSSLS1d5Mny9n1 18446744073.709551615

如果我尝试添加硬币来弥补丢失的硬币,我会得到以下信息:

加币出错:

~$ spl-token mint 4PgB5jPM9a5Js5FT6zPJHD8rcDogcnbSSLS1d5Mny9n1 100 Minting 100 tokens Token: 4PgB5jPM9a5Js5FT6zPJHD8rcDogcnbSSLS1d5Mny9n1 Recipient: 4rqoTZ2JTvdDzY5i4X73ZnGQjjPkNRpRfaByZ1anWgBD RPC response error -32002: Transaction simulation failed: Error processing Instruction 0: custom program error: 0xe [5 log messages]

我一直在按照此页面上的说明进行操作:https://spl.solana.com/token。 我在任何地方都找不到这方面的任何信息,更不用说要查看的任何日志文件了。 我很确定我错过了什么,有人吗?

spl-token 程序中的代币供应由 u64: https://github.com/solana-labs/solana-program-library/blob/28d0aa775949869a4390dece7341fbb3daeddb5d/token/program/src/state.rs#L22 给出,这意味着最大可能的代币数量是 18446744073709551615。如果您在令牌中设置 9 位小数,就像您所做的那样,这意味着可能的最大令牌数是 u64::MAX / 1_000_000_000,或 18446744073.709551615.

如果您需要更多数量的硬币,则必须创建一个小数位数更少的新铸币厂。