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
37 changes: 37 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,27 @@ jobs:
- name: Lint Client Rust
run: pnpm clients:rust:lint

format_and_lint_interface:
name: Format & Lint Interface
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4

- name: Setup Environment
uses: ./.github/actions/setup
with:
clippy: true
rustfmt: true
cargo-cache-key: cargo-interface-lint
cargo-cache-fallback-key: cargo-interface

- name: Format
run: pnpm interface:format

- name: Lint
run: pnpm interface:lint

format_and_lint_client_rust_legacy:
name: Format & Lint Client Rust Legacy
runs-on: ubuntu-latest
Expand Down Expand Up @@ -171,6 +192,22 @@ jobs:
- name: Lint Proof Tests
run: pnpm confidential-transfer:proof-tests:lint

test_interface:
name: Test Interface
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4

- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-interface-test
cargo-cache-fallback-key: cargo-interface

- name: Test
run: pnpm interface:test

test_confidential_transfer_proofs:
name: Test Confidential Transfer Proofs
runs-on: ubuntu-latest
Expand Down
40 changes: 36 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ members = [
"confidential-transfer/proof-extraction",
"confidential-transfer/proof-generation",
"confidential-transfer/proof-tests",
"interface",
"program",
]

Expand Down
62 changes: 62 additions & 0 deletions interface/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
[package]
name = "spl-token-2022-interface"
version = "1.0.0"
description = "Solana Program Library Token 2022 Interface"
documentation = "https://docs.rs/spl-token-2022-interface"
readme = "README.md"
authors = { workspace = true }
repository = { workspace = true }
homepage = { workspace = true }
license = { workspace = true }
edition = { workspace = true }

[features]
serde = ["dep:serde", "dep:serde_with", "dep:base64", "spl-pod/serde-traits"]

[dependencies]
arrayref = "0.3.9"
bytemuck = { version = "1.23.1", features = ["derive"] }
num-derive = "0.4"
num-traits = "0.2"
num_enum = "0.7.4"
solana-account-info = "2.3.0"
solana-decode-error = "2.2.1"
solana-instruction = "2.2.1"
solana-msg = "2.2.1"
solana-program-error = "2.2.1"
solana-program-option = "2.2.1"
solana-program-pack = "2.2.1"
solana-pubkey = "2.2.1"
solana-sdk-ids = "2.2.1"
solana-zk-sdk = "2.3.4"
spl-token-confidential-transfer-proof-extraction = { version = "0.4.0", path = "../confidential-transfer/proof-extraction" }
spl-token-group-interface = { version = "0.6.0" }
spl-token-metadata-interface = { version = "0.7.0" }
spl-type-length-value = { version = "0.8.0" }
spl-pod = { version = "0.5.1" }
thiserror = "2.0"
serde = { version = "1.0.219", optional = true }
serde_with = { version = "3.14.0", optional = true }
base64 = { version = "0.22.1", optional = true }

[target.'cfg(not(target_os = "solana"))'.dependencies]
spl-token-confidential-transfer-proof-generation = { version = "0.4.0", path = "../confidential-transfer/proof-generation" }

[dev-dependencies]
proptest = "1.7"
solana-pubkey = { version = "2.2.1", features = ["curve25519"] }
spl-token = { version = "8.0", features = ["no-entrypoint"] }
spl-token-2022-interface = { path = ".", features = ["serde"] }
serde_json = "1.0.141"

[lib]
crate-type = ["lib"]

[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

[lints]
workspace = true

[package.metadata.solana]
program-id = "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
14 changes: 14 additions & 0 deletions interface/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Token-2022 Interface

A token program interface on the Solana blockchain, usable for fungible and
non-fungible tokens.

This crate provides an interface that third parties can utilize to create and
use their tokens.

Full documentation is available at [https://www.solana-program.com/docs/token-2022](https://www.solana-program.com/docs/token-2022)

## Audit

The repository [README](https://github.com/solana-labs/solana-program-library#audits)
contains information about program audits.
File renamed without changes.
Loading