Mint To (Token)
You can mint some token for testing.
Token Program - Mint To Checked
tokenprog.MintToChecked(tokenprog.MintToCheckedParam{
	Mint:     mintPubkey,
	Auth:     alice.PublicKey,
	Signers:  []common.PublicKey{},
	To:       aliceTokenRandomTokenPubkey,
	Amount:   1e8,
	Decimals: 8,
}),Mint is the mint you want to mint
To is the receiver
Auth is the mint owner, need to sign the tx.
Signers we pass empty first, I will take another chapter to discuss it
Amount the number you want to mint. It is the minimum number. If decimals is 8 and you want to mint 1, you will pass 1e8
Decimals the mint decimals
Full Code
package main
import (
	"context"
	"log"
	"github.com/portto/solana-go-sdk/client"
	"github.com/portto/solana-go-sdk/common"
	"github.com/portto/solana-go-sdk/program/tokenprog"
	"github.com/portto/solana-go-sdk/rpc"
	"github.com/portto/solana-go-sdk/types"
)
var feePayer, _ = types.AccountFromBytes([]byte{178, 244, 76, 4, 247, 41, 113, 40, 111, 103, 12, 76, 195, 4, 100, 123, 88, 226, 37, 56, 209, 180, 92, 77, 39, 85, 78, 202, 121, 162, 88, 29, 125, 155, 223, 107, 139, 223, 229, 82, 89, 209, 27, 43, 108, 205, 144, 2, 74, 159, 215, 57, 198, 4, 193, 36, 161, 50, 160, 119, 89, 240, 102, 184})
var alice, _ = types.AccountFromBytes([]byte{196, 114, 86, 165, 59, 177, 63, 87, 43, 10, 176, 101, 225, 42, 129, 158, 167, 43, 81, 214, 254, 28, 196, 158, 159, 64, 55, 123, 48, 211, 78, 166, 127, 96, 107, 250, 152, 133, 208, 224, 73, 251, 113, 151, 128, 139, 86, 80, 101, 70, 138, 50, 141, 153, 218, 110, 56, 39, 122, 181, 120, 55, 86, 185})
var mintPubkey = common.PublicKeyFromString("29oPCpWj6QiXEipwtmXPrDJAR2P29Z6wHKpHRxEsbnSr")
var aliceTokenRandomTokenPubkey = common.PublicKeyFromString("BSqFxVXT9FtFuHDCDgm6aUW1NHMwYGTCiYc9aoSc4atw")
var aliceTokenATAPubkey = common.PublicKeyFromString("9rFqLfKdxKfeFY9GE1EmcoMmoACskhixKw8w1JrWJb32")
func main() {
	c := client.NewClient(rpc.LocalnetRPCEndpoint)
	res, err := c.GetRecentBlockhash(context.Background())
	if err != nil {
		log.Fatalf("get recent block hash error, err: %v\n", err)
	}
	tx, err := types.NewTransaction(types.NewTransactionParam{
		Message: types.NewMessage(types.NewMessageParam{
			FeePayer:        feePayer.PublicKey,
			RecentBlockhash: res.Blockhash,
			Instructions: []types.Instruction{
				tokenprog.MintToChecked(tokenprog.MintToCheckedParam{
					Mint:     mintPubkey,
					Auth:     alice.PublicKey,
					Signers:  []common.PublicKey{},
					To:       aliceTokenRandomTokenPubkey,
					Amount:   1e8,
					Decimals: 8,
				}),
			},
		}),
		Signers: []types.Account{feePayer, alice},
	})
	if err != nil {
		log.Fatalf("generate tx error, err: %v\n", err)
	}
	txhash, err := c.SendTransaction(context.Background(), tx)
	if err != nil {
		log.Fatalf("send raw tx error, err: %v\n", err)
	}
	log.Println("txhash:", txhash)
}
Last updated
Was this helpful?