-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmint-nft.ts
66 lines (48 loc) · 1.97 KB
/
mint-nft.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import {
Commitment,
Connection, Keypair,
} from '@solana/web3.js';
import {
mplTokenMetadata,
createNft,
} from '@metaplex-foundation/mpl-token-metadata';
import {createUmi} from '@metaplex-foundation/umi-bundle-defaults';
import {
createSignerFromKeypair,
keypairIdentity,
percentAmount
} from '@metaplex-foundation/umi'
import * as base58 from 'bs58';
(async () => {
const commitment: Commitment = 'processed';
const connection = new Connection('https://api.testnet.v1.sonic.game', {
commitment,
wsEndpoint: 'wss://api.testnet.v1.sonic.game'
});
let umi = createUmi(connection.rpcEndpoint)
.use(mplTokenMetadata());
let senderUmiKeypair = umi.eddsa.createKeypairFromSecretKey(base58.decode("4DcqYGxBW1WHHwUi7mRnN3uxPbG6oiXRTJ5Fq3nNg74DUs56Ht5JbKmnce7XAcPEt2si5Gyvd2GNLxCHrw1ckXFs"))
let senderSigner = createSignerFromKeypair(umi, senderUmiKeypair);
umi.use(keypairIdentity(senderUmiKeypair));
let mintUmiKeypair = umi.eddsa.createKeypairFromSecretKey(Keypair.generate().secretKey)
let mintSigner = createSignerFromKeypair(umi, mintUmiKeypair);
let tx;
await createNft(umi, {
mint: mintSigner,
name: 'My NFT',
symbol: "MNFT",
authority: senderSigner,
updateAuthority: senderSigner,
payer: senderSigner,
uri: "https://m6zsbnhyclkmaqkw62dyxpxo3qxfgb3niok3dv3sczi7epzazrja.arweave.net/Z7MgtPgS1MBBVvaHi77u3C5TB21DlbHXchZR8j8gzFI",
sellerFeeBasisPoints: percentAmount(5),
isCollection: false,
isMutable: true,
creators: [{address: senderSigner.publicKey, verified: false, share: 100}]
}).setFeePayer(senderSigner)
.setLatestBlockhash(umi).then(s => tx = s.build(umi));
let signedTX = await senderSigner.signTransaction(tx);
signedTX = await mintSigner.signTransaction(signedTX);
let txHash = await umi.rpc.sendTransaction(signedTX);
console.log("Tx Hash: ", base58.encode(txHash));
})();