Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
"toolkit:payments": "npm run -w toolkits/payments-and-wallets"
},
"dependencies": {
"@lightprotocol/compressed-token": "^0.22.1-alpha.8",
"@lightprotocol/stateless.js": "^0.22.1-alpha.7",
"@lightprotocol/compressed-token": "^0.23.0-beta.4",
"@lightprotocol/stateless.js": "^0.23.0-beta.4",
"@solana/spl-token": "^0.4.13",
"@solana/web3.js": "1.98.4",
"dotenv": "^16.5.0"
Expand Down
13 changes: 5 additions & 8 deletions typescript-client/actions/create-ata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,17 @@ import { readFileSync } from "fs";

// devnet:
// const RPC_URL = `https://devnet.helius-rpc.com?api-key=${process.env.API_KEY!}`;
// const rpc = createRpc(RPC_URL);
// localnet:
const RPC_URL = undefined;
const rpc = createRpc();

const payer = Keypair.fromSecretKey(
new Uint8Array(
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8"))
)
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8")),
),
);

(async function () {
// devnet:
// const rpc = createRpc(RPC_URL);
// localnet:
const rpc = createRpc();

const { mint } = await createMintInterface(rpc, payer, payer, null, 9);

const owner = Keypair.generate();
Expand Down
24 changes: 14 additions & 10 deletions typescript-client/actions/create-mint.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
import "dotenv/config";
import { Keypair } from "@solana/web3.js";
import { createRpc } from "@lightprotocol/stateless.js";
import { createMintInterface, createTokenMetadata } from "@lightprotocol/compressed-token";
import {
createMintInterface,
createTokenMetadata,
} from "@lightprotocol/compressed-token";
import { homedir } from "os";
import { readFileSync } from "fs";

// devnet:
// const RPC_URL = `https://devnet.helius-rpc.com?api-key=${process.env.API_KEY!}`;
// const rpc = createRpc(RPC_URL);
// localnet:
const RPC_URL = undefined;
const rpc = createRpc();

const payer = Keypair.fromSecretKey(
new Uint8Array(
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8"))
)
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8")),
),
);

(async function () {
// devnet:
// const rpc = createRpc(RPC_URL);
// localnet:
const rpc = createRpc();

const { mint, transactionSignature } = await createMintInterface(
rpc,
payer,
Expand All @@ -30,7 +30,11 @@ const payer = Keypair.fromSecretKey(
undefined,
undefined,
undefined,
createTokenMetadata("Example Token", "EXT", "https://example.com/metadata.json")
createTokenMetadata(
"Example Token",
"EXT",
"https://example.com/metadata.json",
),
);

console.log("Mint:", mint.toBase58());
Expand Down
15 changes: 6 additions & 9 deletions typescript-client/actions/delegate-approve.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,17 @@ import { readFileSync } from "fs";

// devnet:
// const RPC_URL = `https://devnet.helius-rpc.com?api-key=${process.env.API_KEY!}`;
// const rpc = createRpc(RPC_URL);
// localnet:
const RPC_URL = undefined;
const rpc = createRpc();

const payer = Keypair.fromSecretKey(
new Uint8Array(
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8"))
)
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8")),
),
);

(async function () {
// devnet:
// const rpc = createRpc(RPC_URL);
// localnet:
const rpc = createRpc();

// Setup: Get compressed tokens
const { mint } = await createMint(rpc, payer, payer.publicKey, 9);
await mintTo(rpc, payer, mint, payer.publicKey, payer, bn(1000));
Expand All @@ -33,7 +30,7 @@ const payer = Keypair.fromSecretKey(
mint,
bn(500),
payer,
delegate.publicKey
delegate.publicKey,
);

console.log("Tx:", tx);
Expand Down
15 changes: 6 additions & 9 deletions typescript-client/actions/delegate-revoke.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,17 @@ import { readFileSync } from "fs";

// devnet:
// const RPC_URL = `https://devnet.helius-rpc.com?api-key=${process.env.API_KEY!}`;
// const rpc = createRpc(RPC_URL);
// localnet:
const RPC_URL = undefined;
const rpc = createRpc();

const payer = Keypair.fromSecretKey(
new Uint8Array(
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8"))
)
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8")),
),
);

(async function () {
// devnet:
// const rpc = createRpc(RPC_URL);
// localnet:
const rpc = createRpc();

// Setup: Get compressed tokens
const { mint } = await createMint(rpc, payer, payer.publicKey, 9);
await mintTo(rpc, payer, mint, payer.publicKey, payer, bn(1000));
Expand All @@ -36,7 +33,7 @@ const payer = Keypair.fromSecretKey(

const delegatedAccounts = await rpc.getCompressedTokenAccountsByDelegate(
delegate.publicKey,
{ mint }
{ mint },
);
const tx = await revoke(rpc, payer, delegatedAccounts.items, payer);

Expand Down
18 changes: 9 additions & 9 deletions typescript-client/actions/load-ata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,26 +12,26 @@ import { readFileSync } from "fs";

// devnet:
// const RPC_URL = `https://devnet.helius-rpc.com?api-key=${process.env.API_KEY!}`;
// const rpc = createRpc(RPC_URL);
// localnet:
const RPC_URL = undefined;
const rpc = createRpc();

const payer = Keypair.fromSecretKey(
new Uint8Array(
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8"))
)
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8")),
),
);

(async function () {
// devnet:
// const rpc = createRpc(RPC_URL);
// localnet:
const rpc = createRpc();

// Setup: Get compressed tokens (cold storage)
const { mint } = await createMint(rpc, payer, payer.publicKey, 9);
await mintTo(rpc, payer, mint, payer.publicKey, payer, bn(1000));

// Load compressed tokens to hot balance
const lightTokenAta = getAssociatedTokenAddressInterface(mint, payer.publicKey);
const lightTokenAta = getAssociatedTokenAddressInterface(
mint,
payer.publicKey,
);
const tx = await loadAta(rpc, lightTokenAta, payer, mint, payer);

console.log("Tx:", tx);
Expand Down
27 changes: 17 additions & 10 deletions typescript-client/actions/mint-to.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,27 +12,34 @@ import { readFileSync } from "fs";

// devnet:
// const RPC_URL = `https://devnet.helius-rpc.com?api-key=${process.env.API_KEY!}`;
// const rpc = createRpc(RPC_URL);
// localnet:
const RPC_URL = undefined;
const rpc = createRpc();

const payer = Keypair.fromSecretKey(
new Uint8Array(
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8"))
)
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8")),
),
);

(async function () {
// devnet:
// const rpc = createRpc(RPC_URL);
// localnet:
const rpc = createRpc();

const { mint } = await createMintInterface(rpc, payer, payer, null, 9);

const recipient = Keypair.generate();
await createAtaInterface(rpc, payer, mint, recipient.publicKey);

const destination = getAssociatedTokenAddressInterface(mint, recipient.publicKey);
const tx = await mintToInterface(rpc, payer, mint, destination, payer, 1_000_000_000);
const destination = getAssociatedTokenAddressInterface(
mint,
recipient.publicKey,
);
const tx = await mintToInterface(
rpc,
payer,
mint,
destination,
payer,
1_000_000_000,
);

console.log("Tx:", tx);
})();
33 changes: 22 additions & 11 deletions typescript-client/actions/transfer-interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,32 +13,43 @@ import { readFileSync } from "fs";

// devnet:
// const RPC_URL = `https://devnet.helius-rpc.com?api-key=${process.env.API_KEY!}`;
// const rpc = createRpc(RPC_URL);
// localnet:
const RPC_URL = undefined;
const rpc = createRpc();

const payer = Keypair.fromSecretKey(
new Uint8Array(
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8"))
)
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8")),
),
);

(async function () {
// devnet:
// const rpc = createRpc(RPC_URL);
// localnet:
const rpc = createRpc();

const { mint } = await createMintInterface(rpc, payer, payer, null, 9);

const sender = Keypair.generate();
await createAtaInterface(rpc, payer, mint, sender.publicKey);
const senderAta = getAssociatedTokenAddressInterface(mint, sender.publicKey);
const senderAta = getAssociatedTokenAddressInterface(
mint,
sender.publicKey,
);
await mintToInterface(rpc, payer, mint, senderAta, payer, 1_000_000_000);

const recipient = Keypair.generate();
await createAtaInterface(rpc, payer, mint, recipient.publicKey);
const recipientAta = getAssociatedTokenAddressInterface(mint, recipient.publicKey);
const recipientAta = getAssociatedTokenAddressInterface(
mint,
recipient.publicKey,
);

const tx = await transferInterface(rpc, payer, senderAta, mint, recipientAta, sender, 500_000_000);
const tx = await transferInterface(
rpc,
payer,
senderAta,
mint,
recipientAta,
sender,
500_000_000,
);

console.log("Tx:", tx);
})();
15 changes: 6 additions & 9 deletions typescript-client/actions/unwrap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,17 @@ import { readFileSync } from "fs";

// devnet:
// const RPC_URL = `https://devnet.helius-rpc.com?api-key=${process.env.API_KEY!}`;
// const rpc = createRpc(RPC_URL);
// localnet:
const RPC_URL = undefined;
const rpc = createRpc();

const payer = Keypair.fromSecretKey(
new Uint8Array(
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8"))
)
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8")),
),
);

(async function () {
// devnet:
// const rpc = createRpc(RPC_URL);
// localnet:
const rpc = createRpc();

// Setup: Get compressed tokens (cold storage)
const { mint } = await createMint(rpc, payer, payer.publicKey, 9);
await mintTo(rpc, payer, mint, payer.publicKey, payer, bn(1000));
Expand All @@ -32,7 +29,7 @@ const payer = Keypair.fromSecretKey(
rpc,
payer,
mint,
payer.publicKey
payer.publicKey,
);
const tx = await unwrap(rpc, payer, splAta, payer, mint, bn(500));

Expand Down
30 changes: 19 additions & 11 deletions typescript-client/actions/wrap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,36 +15,44 @@ import { readFileSync } from "fs";

// devnet:
// const RPC_URL = `https://devnet.helius-rpc.com?api-key=${process.env.API_KEY!}`;
// const rpc = createRpc(RPC_URL);
// localnet:
const RPC_URL = undefined;
const rpc = createRpc();

const payer = Keypair.fromSecretKey(
new Uint8Array(
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8"))
)
JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8")),
),
);

(async function () {
// devnet:
// const rpc = createRpc(RPC_URL);
// localnet:
const rpc = createRpc();

// Setup: Get SPL tokens (needed to wrap)
const { mint } = await createMint(rpc, payer, payer.publicKey, 9);
const splAta = await createAssociatedTokenAccount(
rpc,
payer,
mint,
payer.publicKey
payer.publicKey,
);
await mintTo(rpc, payer, mint, payer.publicKey, payer, bn(1000));
await decompress(rpc, payer, mint, bn(1000), payer, splAta);

// Wrap SPL tokens to rent-free token ATA
const lightTokenAta = getAssociatedTokenAddressInterface(mint, payer.publicKey);
const lightTokenAta = getAssociatedTokenAddressInterface(
mint,
payer.publicKey,
);
await createAtaInterfaceIdempotent(rpc, payer, mint, payer.publicKey);

const tx = await wrap(rpc, payer, splAta, lightTokenAta, payer, mint, bn(500));
const tx = await wrap(
rpc,
payer,
splAta,
lightTokenAta,
payer,
mint,
bn(500),
);

console.log("Tx:", tx);
})();
Loading
Loading