Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

token 2022: make IncorrectMintAuthority a TokenError #5596

68 changes: 68 additions & 0 deletions .github/workflows/pull-request-token-group.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Token-Group Pull Request

on:
pull_request:
paths:
- 'token-group/**'
- 'token/program-2022/**'
- 'ci/*-version.sh'
- '.github/workflows/pull-request-token-group.yml'
push:
branches: [master]
paths:
- 'token-group/**'
- 'token/program-2022/**'
- 'ci/*-version.sh'
- '.github/workflows/pull-request-token-group.yml'

jobs:
cargo-test-sbf:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Set env vars
run: |
source ci/rust-version.sh
echo "RUST_STABLE=$rust_stable" >> $GITHUB_ENV
source ci/solana-version.sh
echo "SOLANA_VERSION=$solana_version" >> $GITHUB_ENV

- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.RUST_STABLE }}
override: true
profile: minimal

- uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE}}

- uses: actions/cache@v2
with:
path: |
~/.cargo/bin/rustfilt
key: cargo-sbf-bins-${{ runner.os }}

- uses: actions/cache@v2
with:
path: ~/.cache/solana
key: solana-${{ env.SOLANA_VERSION }}

- name: Install dependencies
run: |
./ci/install-build-deps.sh
./ci/install-program-deps.sh
echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH

- name: Test token-group with "serde" activated
run: |
cargo test \
--manifest-path=token-group/interface/Cargo.toml \
-- --nocapture

- name: Build and test example
run: ./ci/cargo-test-sbf.sh token-group/example
28 changes: 28 additions & 0 deletions Cargo.lock

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

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ members = [
"stake-pool/cli",
"stake-pool/program",
"stateless-asks/program",
"token-group/example",
"token-group/interface",
"token-lending/cli",
"token-lending/program",
"token-metadata/example",
Expand Down
32 changes: 32 additions & 0 deletions token-group/example/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
[package]
name = "spl-token-group-example"
version = "0.1.0"
description = "Solana Program Library Token Group Example"
authors = ["Solana Labs Maintainers <[email protected]>"]
repository = "https://github.com/solana-labs/solana-program-library"
license = "Apache-2.0"
edition = "2021"

[features]
no-entrypoint = []
test-sbf = []

[dependencies]
solana-program = "1.16.16"
spl-pod = { version = "0.1.0", path = "../../libraries/pod" }
spl-token-2022 = { version = "0.9.0", path = "../../token/program-2022" }
spl-token-group-interface = { version = "0.1.0", path = "../interface" }
spl-token-metadata-interface = { version = "0.2", path = "../../token-metadata/interface" }
spl-type-length-value = { version = "0.3.0", path = "../../libraries/type-length-value" }

[dev-dependencies]
solana-program-test = "1.16.16"
solana-sdk = "1.16.16"
spl-discriminator = { version = "0.1.0", path = "../../libraries/discriminator" }
spl-token-client = { version = "0.7", path = "../../token/client" }

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

[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
23 changes: 23 additions & 0 deletions token-group/example/src/entrypoint.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
//! Program entrypoint

use {
crate::processor,
solana_program::{
account_info::AccountInfo, entrypoint, entrypoint::ProgramResult,
program_error::PrintProgramError, pubkey::Pubkey,
},
spl_token_group_interface::error::TokenGroupError,
};

entrypoint!(process_instruction);
fn process_instruction(
program_id: &Pubkey,
accounts: &[AccountInfo],
instruction_data: &[u8],
) -> ProgramResult {
if let Err(error) = processor::process(program_id, accounts, instruction_data) {
error.print::<TokenGroupError>();
return Err(error);
}
Ok(())
}
10 changes: 10 additions & 0 deletions token-group/example/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
//! Crate defining an example program for creating SPL token collections
//! using the SPL Token Group interface.

#![deny(missing_docs)]
#![cfg_attr(not(test), forbid(unsafe_code))]

pub mod processor;

#[cfg(not(feature = "no-entrypoint"))]
mod entrypoint;
Loading
Loading