Solana[part20]_ETF的购买

Solana[part20]_ETF的购买
SoniaChenSolana[part20]_ETF的购买
购买 ETF
基本思路
以 ETF No.1 为例,ETF No.1 包含 jitoSOL 和 mSOL,权重分别为 20%、80%。 「 etf里面不是token账户吗 拿来的sol 」
当前价格
- 1 JitoSOL = 1.16 SOL
- 1 mSOL = 1.25 SOL
用户需求与成本计算
用户当前持有 SOL,计划购买 ETF No.1 100 份,需花费:100×20%×1.16+100×80%×1.25=123.2 SOL
方案一:前端 swap
- 【用户】 通过 ray 或 okx 等平台,将 123.2 SOL 换出 80 mSOL 和 20 JitoSOL。
- 【用户】 执行【Transfer】操作,将 JitoSOL 20 份和 mSOL 80 份转入【合约】。
- 【合约】 执行【Mint】操作,向【用户】发行 100 份 ETF No.1。
方案二:合约 swap
- 【用户】 执行【Transfer】操作,将 123.2 SOL 转入【合约】。
- 【合约】 通过 ray 或 okx 等平台,将 123.2 SOL 换出 80 mSOL 和 20 JitoSOL。
- 【合约】 执行【Mint】操作,向【用户】发行 100 份 ETF No.1。
(注:操作中的【Transfer】【Mint】为链上交互动作,需结合具体合约逻辑执行。)
前置准备:
➜ anchor git:(main) ✗ spl-token create-token
Creating token HCux2X4pDQe79mwhAwcfjBPYXf5ocU6VN9HSjxzuJVzk under program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
Address: HCux2X4pDQe79mwhAwcfjBPYXf5ocU6VN9HSjxzuJVzk
Decimals: 9
Signature: qkrfqj8QKGHWiCSr3DjooVd9EB2FHvSPMfgk95f3R4n2G7AkdoSN1ufoFj6Suw9rYKzxcDJa441uokk5i5xosfC
➜ anchor git:(main) ✗ spl-token create-token
Creating token D5izrwQEikX5FGhzkgG4HgBNWXXaayNy4UF1X1YNVJFW under program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
Address: D5izrwQEikX5FGhzkgG4HgBNWXXaayNy4UF1X1YNVJFW
Decimals: 9
Signature: aR8akG7j4A15h9Qs4MnUMbMtNA965g5rDSj53oaCyvfXNQsQHYDSVQ6Mw5En8EcMLwfX3AHWNjCWpGciHJQZTbb
➜ anchor git:(main) ✗ spl-token create-account D5izrwQEikX5FGhzkgG4HgBNWXXaayNy4UF1X1YNVJFW
Creating account FKFZdRon44c7UG3sWDhkfdRhsbnjnPdERFHT4eVwZbkM
Signature: 5xoKsk1VmbSYzsVivUv3vQqEjpURMBqPzDDbLDHZ1DsWqJjdqoJbcUAUBAFR5VdGcjrh5ik3mdJo85SRiHgotK8k
➜ anchor git:(main) ✗ spl-token create-account HCux2X4pDQe79mwhAwcfjBPYXf5ocU6VN9HSjxzuJVzk
Creating account For4aUqGLAVwvJCJ7W7xp9oNXAtQQqTdyA5kityMxhkB
Signature: 3o2UV8S756A6vtL4bKgpWQRf8oS5mmQx5RuG8drarjFpnEFwucVyAZoapcRrBVVryukmu8Mxuf7EyrnLJyVy3Rpp
➜ anchor git:(main) ✗ spl-token mint HCux2X4pDQe79mwhAwcfjBPYXf5ocU6VN9HSjxzuJVzk 100
Minting 100 tokens
Token: HCux2X4pDQe79mwhAwcfjBPYXf5ocU6VN9HSjxzuJVzk
Recipient: For4aUqGLAVwvJCJ7W7xp9oNXAtQQqTdyA5kityMxhkB
Signature: 5mijdTfBDZvD51zKfhw31JNaxNvZYesCKoHbDD48zCcMkwN1oMqZcjYamjpM4MCAD1fvbsu1BK5sKoHX4Ghiehfo
➜ anchor git:(main) ✗ spl-token mint D5izrwQEikX5FGhzkgG4HgBNWXXaayNy4UF1X1YNVJFW 100
Minting 100 tokens
Token: D5izrwQEikX5FGhzkgG4HgBNWXXaayNy4UF1X1YNVJFW
Recipient: FKFZdRon44c7UG3sWDhkfdRhsbnjnPdERFHT4eVwZbkM
Signature: 5ZMfewBZQfrVC7jcE62FtKNKckcDk4WfwiLhqQAmukgGYBpNwnhoirTNHT31oFoaYVje29fhp9ege4KATAiKPt2n
➜ anchor git:(main) ✗ spl-token accounts
Token Balance
-----------------------------------------------------
D5izrwQEikX5FGhzkgG4HgBNWXXaayNy4UF1X1YNVJFW 100
HCux2X4pDQe79mwhAwcfjBPYXf5ocU6VN9HSjxzuJVzk 100
运行成功:
➜ anchor git:(main) ✗ anchor run example
6RQFEKBGuqJAasPDLZEK2Uk3pLMEEo3xfSgz5AvjU65H
4Zcee6VcEoATiTjwMHp9LPsvYLW2tmYmExQFhZ6TkQGYGganfDJGKXSuicAdFrWMZJjWomgunEQ3keGHNEyvfhLN
➜ anchor git:(main) ✗ spl-token accounts
Token Balance
-----------------------------------------------------
6RQFEKBGuqJAasPDLZEK2Uk3pLMEEo3xfSgz5AvjU65H 200
D5izrwQEikX5FGhzkgG4HgBNWXXaayNy4UF1X1YNVJFW 90
HCux2X4pDQe79mwhAwcfjBPYXf5ocU6VN9HSjxzuJVzk 10
但是却是两百份
定位问题发现是mint逻辑放在了循环里面,购买了两次







