remove solana folder
This commit is contained in:
166
README.md
Normal file
166
README.md
Normal file
@@ -0,0 +1,166 @@
|
||||
|
||||
# Local scripts for Solana actions
|
||||
|
||||
This directory contains scripts for performing actions on the Solana blockchain.
|
||||
|
||||
|
||||
## Docker
|
||||
|
||||
```bash
|
||||
cd solana
|
||||
|
||||
# Build the image
|
||||
docker build --tag solana:local .
|
||||
|
||||
# Launch the image
|
||||
docker run -ti solana:local /bin/bash
|
||||
```
|
||||
|
||||
## Commands
|
||||
|
||||
### Setup
|
||||
|
||||
```
|
||||
# Vérifier les versions
|
||||
solana --version
|
||||
spl-token --version
|
||||
|
||||
# Configurer devnet
|
||||
solana config set --url https://api.devnet.solana.com
|
||||
|
||||
# Créer un wallet
|
||||
solana-keygen new --no-bip39-passphrase --outfile ~/.config/solana/id.json
|
||||
solana config set --keypair ~/.config/solana/id.json
|
||||
|
||||
# Vérifier adresse et balance
|
||||
solana address
|
||||
solana balance
|
||||
|
||||
# Airdrop SOL sur devnet (2 SOL max par jour)
|
||||
solana airdrop 2
|
||||
|
||||
```
|
||||
|
||||
### Créer le token
|
||||
|
||||
```bash
|
||||
root@d8bdd9efc445:/solana-dev# spl-token create-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb --enable-metadata --decimals 6
|
||||
root@d8bdd9efc445:/solana-dev# spl-token initialize-metadata <TOKEN_ADDRESS> "<Name>" "<Symbol>" "https://gateway.pinata.cloud/ipfs/<PINATA_CID>
|
||||
root@d8bdd9efc445:/solana-dev# spl-token create-account <TOKEN_ADDRESS>
|
||||
root@d8bdd9efc445:/solana-dev# spl-token mint <TOKEN_ADDRESS> 1000000000
|
||||
root@d8bdd9efc445:/solana-dev# spl-token accounts
|
||||
root@d8bdd9efc445:/solana-dev# spl-token authorize <TOKEN_ADDRESS> mint --disable
|
||||
root@d8bdd9efc445:/solana-dev# spl-token accounts
|
||||
|
||||
```
|
||||
|
||||
|
||||
Exemple:
|
||||
```bash
|
||||
|
||||
# Créer ton premier token !
|
||||
root@d8bdd9efc445:/solana-dev# spl-token create-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb --enable-metadata --decimals 6
|
||||
Creating token HnaHN6Xjvb1Kvm9y8VLYDtx2sXQseXxtaRdymBtGcdRM under program TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
|
||||
To initialize metadata inside the mint, please run `spl-token initialize-metadata HnaHN6Xjvb1Kvm9y8VLYDtx2sXQseXxtaRdymBtGcdRM <YOUR_TOKEN_NAME> <YOUR_TOKEN_SYMBOL> <YOUR_TOKEN_URI>`, and sign with the mint authority.
|
||||
|
||||
Address: HnaHN6Xjvb1Kvm9y8VLYDtx2sXQseXxtaRdymBtGcdRM
|
||||
Decimals: 9
|
||||
|
||||
Signature: 2hJ8f1D62Xs784w1yEyyv6QniWKsCUmU7iT2zfCPf2omxS1BJaewubLGrGMyKodmsZVrW2v6ySAoRipzUDfgSkV6
|
||||
|
||||
root@d8bdd9efc445:/solana-dev# spl-token initialize-metadata HnaHN6Xjvb1Kvm9y8VLYDtx2sXQseXxtaRdymBtGcdRM "PSIT" "PSIT" "https://gateway.pinata.cloud/ipfs/bafkreifdhduevz3xi6hkgy7fec42flit73n2mo3itihgbiaccvgfbgiuly"
|
||||
|
||||
Signature: 2QwbjKCg7KVQHRthV3zRoYNCm3m9N1RFBPjWApFjh5wV7HjDysuw6jLL4FDAEZw73wZaQa7uV48hhbFRNu1WhDyN
|
||||
|
||||
root@d8bdd9efc445:/solana-dev# spl-token create-account HnaHN6Xjvb1Kvm9y8VLYDtx2sXQseXxtaRdymBtGcdRM
|
||||
Creating account Bkzb9daQK6urCH8Ff3SoYe1Lk9sECoCr1i85kEEPSkhz
|
||||
|
||||
Signature: vpYs1RFtAZon4q3WeLaCwbjQVTua6SgsLfjp8biJit3EaYEeM2gXzcfW7VQyPb742ffGFnCdwGFhJjdPTietp5Z
|
||||
|
||||
root@d8bdd9efc445:/solana-dev# spl-token mint HnaHN6Xjvb1Kvm9y8VLYDtx2sXQseXxtaRdymBtGcdRM 1000000000
|
||||
Minting 1000000000 tokens
|
||||
Token: HnaHN6Xjvb1Kvm9y8VLYDtx2sXQseXxtaRdymBtGcdRM
|
||||
Recipient: Bkzb9daQK6urCH8Ff3SoYe1Lk9sECoCr1i85kEEPSkhz
|
||||
|
||||
Signature: 2Pz5ed7cAQpEg3CcfxZKCyAbwX7QoN1Ud6PAa9ZrddhtTcbqNUs4CZYWf2d1rkeAcmbtnAnygkaRZWTy99fXPAfV
|
||||
|
||||
root@d8bdd9efc445:/solana-dev# spl-token accounts
|
||||
Token Balance
|
||||
--------------------------------------------------------
|
||||
4mookDy5M6wpzyausGhfw9EeTPpBsp9vwefb76qKBscW 100000000
|
||||
HnaHN6Xjvb1Kvm9y8VLYDtx2sXQseXxtaRdymBtGcdRM 1000000000
|
||||
|
||||
root@d8bdd9efc445:/solana-dev# spl-token authorize HnaHN6Xjvb1Kvm9y8VLYDtx2sXQseXxtaRdymBtGcdRM mint --disable
|
||||
Updating HnaHN6Xjvb1Kvm9y8VLYDtx2sXQseXxtaRdymBtGcdRM
|
||||
Current mint: 7Q9y2AUAJHSzjedDZoK3XMKuGNN6GkFTbNX6J8je4UXi
|
||||
New mint: disabled
|
||||
|
||||
Signature: 5pZL61zAP5k3nhEUzwzd9BbddotyFA6mDBG2yY3fpxK7DzaD7wpPGVcA2kiutUA3F66c9RZgSgwSSui9ZGNhZrWz
|
||||
|
||||
root@d8bdd9efc445:/solana-dev# spl-token accounts
|
||||
Token Balance
|
||||
--------------------------------------------------------
|
||||
4mookDy5M6wpzyausGhfw9EeTPpBsp9vwefb76qKBscW 100000000
|
||||
HnaHN6Xjvb1Kvm9y8VLYDtx2sXQseXxtaRdymBtGcdRM 1000000000
|
||||
|
||||
|
||||
```
|
||||
|
||||
### Voir le token sur la blockchain
|
||||
https://explorer.solana.com/address/HnaHN6Xjvb1Kvm9y8VLYDtx2sXQseXxtaRdymBtGcdRM?cluster=devnet
|
||||
|
||||
### Vanity mint
|
||||
```bash
|
||||
# Cherche une adresse qui commence par "PSIT"
|
||||
# L'option --starts-with prend le format PREFIX:NOMBRE_D_OCCURENCES
|
||||
solana-keygen grind --starts-with PLEXUS:1
|
||||
# Utilise le programme Token-2022 et ton fichier forgé
|
||||
spl-token create-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb --enable-metadata PSIT7xW...json
|
||||
```
|
||||
|
||||
## NFT
|
||||
|
||||
### Créer le parent
|
||||
```bash
|
||||
# 1. Créer le token avec l'extension "Group"
|
||||
# On utilise --enable-group pour qu'il puisse être un parent
|
||||
spl-token create-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
|
||||
--enable-metadata \
|
||||
--enable-group \
|
||||
--decimals 0
|
||||
|
||||
# 2. Initialiser les metadata de la collection
|
||||
spl-token initialize-metadata <ADRESSE_PARENT> "Ma Collection PSIT" "PSIT" "https://ipfs.../collection.json"
|
||||
|
||||
# 3. Initialiser le groupe (indiquer que ce NFT peut avoir 100 membres)
|
||||
# Max-size 100 n'est pas obligatoire mais conseillé
|
||||
spl-token initialize-group <ADRESSE_PARENT> <ADRESSE_PARENT> 100
|
||||
|
||||
# 4. Créer votre exemplaire unique et bloquer la création
|
||||
spl-token create-account <ADRESSE_PARENT>
|
||||
spl-token mint <ADRESSE_PARENT> 1
|
||||
spl-token authorize <ADRESSE_PARENT> mint --disable
|
||||
```
|
||||
|
||||
### Créer les enfants
|
||||
```bash
|
||||
# 1. Créer le token avec l'extension "Group Member"
|
||||
spl-token create-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
|
||||
--enable-metadata \
|
||||
--enable-group-member \
|
||||
--decimals 0
|
||||
|
||||
# 2. Initialiser ses metadata propres
|
||||
spl-token initialize-metadata <ADRESSE_NFT_1> "PSIT #1" "PSIT" "https://ipfs.../1.json"
|
||||
|
||||
# 3. LIER ce NFT au parent
|
||||
# On indique que ce NFT appartient au groupe <ADRESSE_PARENT>
|
||||
spl-token initialize-group-member <ADRESSE_NFT_1> <ADRESSE_PARENT> <ADRESSE_PARENT>
|
||||
|
||||
# 4. Créer l'exemplaire et bloquer
|
||||
spl-token create-account <ADRESSE_NFT_1>
|
||||
spl-token mint <ADRESSE_NFT_1> 1
|
||||
spl-token authorize <ADRESSE_NFT_1> mint --disable
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user