とりあえず感覚をつかむ為にdevnetで
ウォレットAとBを作成。テストトークンを作成して送り合ってみる
inu.jsonウォレットを作る
Phantomウォレットをデベロッパー設定からテストモードにしておく
solana-keygen new
上記キーペア作成コマンドを入力
(base) AAAA@DESKTOP-AAAAA:~/rust-like$ solana-keygen new
Generating a new keypair
For added security, enter a BIP39 passphrase
NOTE! This passphrase improves security of the recovery seed phrase NOT the
keypair file itself, which is stored as insecure plain text
BIP39 Passphrase (empty for none):
Wrote new keypair to /home/AAAAAAA/.config/solana/id.json
========================================================================
pubkey: CcnjrouQkmLs1TEQt333333333333333
こんな感じでターミナルに出力される。BIP39 PassphraseはスルーしてOK
Wrote new keypair to /home/AAAAAAA/.config/solana/id.json
上記がキーペアが保存された場所。フォルダを開きid.jsonへ。テストトークンを作成して送受信したい為、今作ったキーペアid.jsonをinu.jsonと名前を変更(以降分かりやすくする為
/home/AAAAAAA/.config/solana/inu.json
inu.jsonを開き数字の列をコピー
Phantomウォレット(テストモード)開く
ウォレットの追加雄
秘密鍵のインポート
コピーした数字の列を入力
ウォレットの名前をinuとする
neko.jsonウォレットを作る
再度キーペア作成
solana-keygen new
再度作ったid.jsonをneko.jsonに変更
/home/AAAAAAA/.config/solana/neko.json
上記に変更。inu.jsonと同じ様にPhantomウォレット(テストモード)に追加する
以上で、ウォレットが2つ出来た。
inu.json( CcnjrouQkmLs1TEQt3TSybKcJW8HJY9brAw8zFB8Vwt4
neko.json( 37HiJNqc7oSZeWxTFSBdAHswHr6xv6YhDypR6eCdjndg
Devnet用のSOLを上記サイトでinu.json&neko.jsonウォレットに貰いにいく(各5sol
solana config set --keypair ${HOME}/.config/solana/inu.json
上記コマンドでinu.jsonをセットする
(今から各コマンドを打つとinu.jsonに紐づいたウォレットに反映される)
テストトークン作成
spl-token create-token
inu.json アカウントで テストトークンを作る
Creating token 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku under program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
Address: 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku
Decimals: 9
Signature: 5m7EjvPYcKN2WhdXsy43QxfZQcxzyi5k2yb89Brp8nUeWxwPfLdGEE2eChNEvmVP1QfWCz69S4nrf1XcGH2Bpt8v
上記で作ったトークンの供給量を表示(コマンドで入力
spl-token supply 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku
0と表示されるはず
新しいトークンにはトークンを保持するアカウントが必要な為、下記コマンドを入力してアカウントを作成する
spl-token create-account 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku
上記コマンドを入力後、下記が出力
Creating account 3TA3yZMH16aQk5TZYQ3nAP3UorD5YUTWBm49jnf6rFZS
Signature: 5Abb9jUXWoEK6gmYijCXTMHkrFrQcku96NHEQDhiCHs5khpyzXgcRT2hVK5D34uVPxxt7RsKNQvJs8W4YQ9BKHzv
inu.jsonのアカウント
CcnjrouQkmLs1TEQt3TSybKcJW8HJY9brAw8zFB8Vwt4
トークンを保持するアカウント(トークンアカウント
3TA3yZMH16aQk5TZYQ3nAP3UorD5YUTWBm49jnf6rFZS
トークンをmintしたアカウント
2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku
spl-token mint 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku 1000
上記コマンドでmintアカウントからトークンアカウントに1000個発行していう命令
spl-token balance 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku
上記アカウントに1000あるよ
Phantomウォレットを確認すると
inu.jsonのウォレットに不明なトークン1000
DevnetのSOLが4.996(トークン発行等で減った
spl-token transfer 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku 50 37HiJNqc7oSZeWxTFSBdAHswHr6xv6YhDypR6eCdjndg
上記コマンドはinu.jsonで作ったmintアドレス2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku
から50トークンを
nekoウォレット
37HiJNqc7oSZeWxTFSBdAHswHr6xv6YhDypR6eCdjndg
へ送信するコマンド
良くある謎のSCAMトークンやエアドロップと同じ様なコマンドです
今度は逆にneko.jsonからinu.jsonに謎トークンを50送ります
まずneko.jsonのウォレットをセットします
solana config set --keypair ${HOME}/.config/solana/neko.json
上記コマンドで以後neko.jsonが使用されます
次のコマンドでneko.jsonからinu.jsonへトークンを送信します
spl-token transfer 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku 50 CcnjrouQkmLs1TEQt3TSybKcJW8HJY9brAw8zFB8Vwt4
Transfer 50 tokens
Sender: J2aV1ycq5YmtAe9i5gMzT5WFemFetva6z7Fg5XdyGREy
Recipient: CcnjrouQkmLs1TEQt3TSybKcJW8HJY9brAw8zFB8Vwt4
Recipient associated token account: 3TA3yZMH16aQk5TZYQ3nAP3UorD5YUTWBm49jnf6rFZS
正しく送信できました。
トークンをコマンドから送信する場合
spl-token transfer <トークンのmintアドレス> <数量> <送りたいアドレス>
この様な形になります
2つのウォレットの作成
テストトークンの作成
テストトークンの送受信が完了