有两个用户
用户A和用户B
在索拉纳上创建的令牌被称为";TokenX";。
UserA有一些SOL
UserA空投获得100个TokenX。
用户B没有SOL
UserB没有TokenX。
用户A和用户B拥有[Solana SPL代币钱包]。
UserA试图给UserB 50 TokenX
但是,UserB是非关联,无法接收TokenX
当然,UserB不能将TokenX添加到钱包中。
用户A和用户B非常困惑,因为他们不知道为什么。
这是不可避免的吗
有解决方案吗?
使用以太坊代币,即使在上述情况下,我也可以毫无问题地进行转账。
如果我的理解有什么错误,请指出。
在Solana中,每个钱包在一个代币中可以有多个账户,但在以太坊中是不可能的,Solana中的账户就像一个文件,代币就像一个文件夹,如果任何钱包想有任何空间存储数据,它应该在代币的文件夹中租一个文件。该文件是属于该钱包的关联账户
我认为non-associated
的意思是用户B没有TokenX令牌帐户。也就是说,用户B没有索拉纳所说的令牌X的associated token account
(也称为ATA(。
在您的场景中,UserX试图向UserB发送一些TokenX,UserB没有TokenX ATA,您收到一个错误,说UserB没有TokenX ATA。
-
UserA钱包
- UserA TokenX关联代币账户
-
用户B钱包
- (没有关联的令牌帐户(
如果我的理解有任何错误,请指出。
当然-每个用户通常只有一个钱包代币账户(称为"代币账户"而非"代币钱包"(是在用户钱包内创建的。
UserA肯定可以发送UserB代币X,UserA将支付少量Sol在UserB的钱包中创建TokenX代币账户如果您是程序员,请参阅web3.js中的getOrCreateAssociatedTokenAccount()
。
-
UserA钱包
- UserA TokenX关联代币账户
-
用户B钱包
- UserB TokenX关联代币账户
在用户B拥有TokenX的令牌帐户后,用户a可以向他们发送一些TokenX令牌。