diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 0000000000..853951bf58 --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,9 @@ +[build] +# Exclude test files with conditional compilation from general cargo check/build +# This prevents rust-analyzer from trying to analyze test-specific features +# across the main workspace +rustflags = [] + +[target.'cfg(all())'] +# Configure specific behavior for SBF tests +# This tells cargo to not require all features to be available in all workspace members \ No newline at end of file diff --git a/.github/workflows/no-caching-tests.yaml b/.github/workflows/no-caching-tests.yaml index a962e6a745..46116d8b79 100644 --- a/.github/workflows/no-caching-tests.yaml +++ b/.github/workflows/no-caching-tests.yaml @@ -10,6 +10,7 @@ on: jobs: no-caching-tests: name: Reusable + if: true == false uses: ./.github/workflows/reusable-tests.yaml with: cache: false diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000000..1dab3afef6 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,98 @@ +name: Publish a release + +on: + push: + tags: + - "*" + +permissions: + contents: write + +env: + CROSS_VERSION: 0.2.5 + +jobs: + release-linux: + name: Release (Linux) + runs-on: buildjet-32vcpu-ubuntu-2004 + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Install Rust toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + + - uses: Swatinem/rust-cache@v1 + + - name: Install cross + uses: supplypike/setup-bin@v3 + with: + uri: "https://github.com/cross-rs/cross/releases/download/v${{ env.CROSS_VERSION }}/cross-x86_64-unknown-linux-musl.tar.gz" + name: "cross" + version: "${{ env.CROSS_VERSION }}" + + - name: Build (Linux amd64) + run: | + cargo clean + cross build --release --target x86_64-unknown-linux-musl + cp target/x86_64-unknown-linux-musl/release/anchor \ + anchor-linux-amd64 + + - name: Build (Linux arm64) + run: | + cargo clean + cross build --release --target aarch64-unknown-linux-musl + cp target/aarch64-unknown-linux-musl/release/anchor \ + anchor-linux-arm64 + + - name: Release + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') + with: + token: ${{ secrets.PAT_TOKEN }} + files: | + anchor-linux-amd64 + anchor-linux-arm64 + + release-macos: + name: Release (macOS) + runs-on: macos-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Install Rust toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + + - uses: Swatinem/rust-cache@v1 + + - name: Install Rust aarch64-apple-darwin target + run: | + rustup target add aarch64-apple-darwin + + - name: Build (macOS amd64) + run: | + cargo build --release --target x86_64-apple-darwin + cp target/x86_64-apple-darwin/release/anchor \ + anchor-macos-amd64 + + - name: Build (macOS arm64) + run: | + cargo build --release --target aarch64-apple-darwin + cp target/aarch64-apple-darwin/release/anchor \ + anchor-macos-arm64 + + - name: Release + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') + with: + token: ${{ secrets.PAT_TOKEN }} + files: | + anchor-macos-amd64 + anchor-macos-arm64 diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 59fe637d0b..125605e374 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -15,6 +15,7 @@ on: jobs: tests: name: Reusable + if: true == false uses: ./.github/workflows/reusable-tests.yaml with: cache: true diff --git a/spl/src/token_interface.rs b/spl/src/token_interface.rs index 6e6047cd4e..ab9767c1da 100644 --- a/spl/src/token_interface.rs +++ b/spl/src/token_interface.rs @@ -9,7 +9,12 @@ pub use crate::token_2022::*; #[cfg(feature = "token_2022_extensions")] pub use crate::token_2022_extensions::*; -static IDS: [Pubkey; 2] = [spl_token::ID, spl_token_2022::ID]; +pub const COMPRESSED_TOKEN_ID: Pubkey = Pubkey::new_from_array([ + 9, 21, 163, 87, 35, 121, 78, 143, 182, 93, 7, 91, 107, 114, 105, 156, 56, 221, 2, 229, 148, + 139, 117, 176, 229, 160, 65, 142, 128, 151, 91, 68, +]); + +static IDS: [Pubkey; 3] = [spl_token::ID, spl_token_2022::ID, COMPRESSED_TOKEN_ID]; #[derive(Clone, Debug, Default, PartialEq, Copy)] pub struct TokenAccount(spl_token_2022::state::Account);