From a15c4910e186a8228732567d20c2251e47601bfc Mon Sep 17 00:00:00 2001 From: Guillermo Bescos Date: Fri, 15 Mar 2024 14:17:10 +0000 Subject: [PATCH 1/3] chore: release rust sdk for solana receiver --- .../publish-pyth-solana-receiver-state.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/workflows/publish-pyth-solana-receiver-state.yml diff --git a/.github/workflows/publish-pyth-solana-receiver-state.yml b/.github/workflows/publish-pyth-solana-receiver-state.yml new file mode 100644 index 0000000000..58caefcfae --- /dev/null +++ b/.github/workflows/publish-pyth-solana-receiver-state.yml @@ -0,0 +1,18 @@ +name: Publish Pyth SDK for the Solana Receiver to crates.io + +on: + push: + tags: + - pyth-solana-receiver-state-v* +jobs: + publish-pyth-solana-receiver-state: + name: Publish Pyth SDK for the Solana Receiver + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v2 + + - run: cargo publish --token ${CARGO_REGISTRY_TOKEN} + env: + CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} + working-directory: "target_chains/solana/pyth_solana_receiver_state" From 5870a17e7548e109a3d67318deb5c3e203525abf Mon Sep 17 00:00:00 2001 From: Guillermo Bescos Date: Fri, 15 Mar 2024 14:28:32 +0000 Subject: [PATCH 2/3] Go --- .github/workflows/ci-solana-contract.yml | 2 +- .github/workflows/publish-pyth-solana-receiver-state.yml | 4 ++-- target_chains/solana/Cargo.lock | 6 +++--- target_chains/solana/Cargo.toml | 2 +- target_chains/solana/cli/Cargo.toml | 2 +- target_chains/solana/cli/src/main.rs | 4 ++-- .../solana/programs/pyth-solana-receiver/Cargo.toml | 2 +- .../solana/programs/pyth-solana-receiver/src/lib.rs | 4 ++-- .../solana/programs/pyth-solana-receiver/src/sdk.rs | 2 +- .../programs/pyth-solana-receiver/tests/common/mod.rs | 2 +- .../programs/pyth-solana-receiver/tests/test_governance.rs | 2 +- .../tests/test_post_price_update_from_vaa.rs | 2 +- .../pyth-solana-receiver/tests/test_post_updates.rs | 2 +- .../pyth-solana-receiver/tests/test_post_updates_atomic.rs | 2 +- .../Cargo.toml | 4 ++-- .../src/config.rs | 0 .../src/error.rs | 0 .../src/lib.rs | 0 .../src/price_update.rs | 6 +++--- .../sdk/js/pyth_solana_receiver/src/PythSolanaReceiver.ts | 4 ++-- 20 files changed, 26 insertions(+), 26 deletions(-) rename target_chains/solana/{pyth_solana_receiver_state => pyth_solana_receiver_sdk}/Cargo.toml (73%) rename target_chains/solana/{pyth_solana_receiver_state => pyth_solana_receiver_sdk}/src/config.rs (100%) rename target_chains/solana/{pyth_solana_receiver_state => pyth_solana_receiver_sdk}/src/error.rs (100%) rename target_chains/solana/{pyth_solana_receiver_state => pyth_solana_receiver_sdk}/src/lib.rs (100%) rename target_chains/solana/{pyth_solana_receiver_state => pyth_solana_receiver_sdk}/src/price_update.rs (98%) diff --git a/.github/workflows/ci-solana-contract.yml b/.github/workflows/ci-solana-contract.yml index 3b9f7fa29b..6562f62be7 100644 --- a/.github/workflows/ci-solana-contract.yml +++ b/.github/workflows/ci-solana-contract.yml @@ -32,4 +32,4 @@ jobs: - name: Run tests run: cargo-test-sbf - name: Run sdk tests - run: cargo test --package pyth-solana-receiver-state + run: cargo test --package pyth-solana-receiver-sdk diff --git a/.github/workflows/publish-pyth-solana-receiver-state.yml b/.github/workflows/publish-pyth-solana-receiver-state.yml index 58caefcfae..e76f5433b0 100644 --- a/.github/workflows/publish-pyth-solana-receiver-state.yml +++ b/.github/workflows/publish-pyth-solana-receiver-state.yml @@ -3,9 +3,9 @@ name: Publish Pyth SDK for the Solana Receiver to crates.io on: push: tags: - - pyth-solana-receiver-state-v* + - pyth-solana-receiver-sdk-v* jobs: - publish-pyth-solana-receiver-state: + publish-pyth-solana-receiver-sdk: name: Publish Pyth SDK for the Solana Receiver runs-on: ubuntu-latest steps: diff --git a/target_chains/solana/Cargo.lock b/target_chains/solana/Cargo.lock index c7a5b53454..4b71309453 100644 --- a/target_chains/solana/Cargo.lock +++ b/target_chains/solana/Cargo.lock @@ -3033,7 +3033,7 @@ dependencies = [ "program-simulator", "pyth-sdk", "pyth-sdk-solana", - "pyth-solana-receiver-state", + "pyth-solana-receiver-sdk", "pythnet-sdk", "rand 0.8.5", "serde_wormhole", @@ -3057,7 +3057,7 @@ dependencies = [ "clap 3.2.23", "hex", "pyth-solana-receiver", - "pyth-solana-receiver-state", + "pyth-solana-receiver-sdk", "pythnet-sdk", "serde_wormhole", "shellexpand", @@ -3069,7 +3069,7 @@ dependencies = [ ] [[package]] -name = "pyth-solana-receiver-state" +name = "pyth-solana-receiver-sdk" version = "0.1.0" dependencies = [ "anchor-lang", diff --git a/target_chains/solana/Cargo.toml b/target_chains/solana/Cargo.toml index 44da9b94b4..91d3f34285 100644 --- a/target_chains/solana/Cargo.toml +++ b/target_chains/solana/Cargo.toml @@ -3,7 +3,7 @@ members = [ "programs/*", "cli/", "program_simulator/", - "pyth_solana_receiver_state/" + "pyth_solana_receiver_sdk/" ] [profile.release] diff --git a/target_chains/solana/cli/Cargo.toml b/target_chains/solana/cli/Cargo.toml index 305166b0f1..27e5e9cace 100644 --- a/target_chains/solana/cli/Cargo.toml +++ b/target_chains/solana/cli/Cargo.toml @@ -19,4 +19,4 @@ serde_wormhole = { workspace = true } hex = "0.4.3" borsh = "0.9.3" # Old version of borsh needed for wormhole-solana wormhole-core-bridge-solana = {workspace = true} -pyth-solana-receiver-state = {path = "../pyth_solana_receiver_state"} +pyth-solana-receiver-sdk = {path = "../pyth_solana_receiver_sdk"} diff --git a/target_chains/solana/cli/src/main.rs b/target_chains/solana/cli/src/main.rs index 4cd441780c..72bd212fc3 100644 --- a/target_chains/solana/cli/src/main.rs +++ b/target_chains/solana/cli/src/main.rs @@ -24,7 +24,7 @@ use { PostUpdateAtomicParams, PostUpdateParams, }, - pyth_solana_receiver_state::config::DataSource, + pyth_solana_receiver_sdk::config::DataSource, pythnet_sdk::wire::v1::MerklePriceUpdate, serde_wormhole::RawMessage, solana_client::{ @@ -184,7 +184,7 @@ fn main() -> Result<()> { program_id: pyth_solana_receiver::ID, accounts: initialize_pyth_receiver_accounts, data: pyth_solana_receiver::instruction::Initialize { - initial_config: pyth_solana_receiver_state::config::Config { + initial_config: pyth_solana_receiver_sdk::config::Config { governance_authority: payer.pubkey(), target_governance_authority: None, wormhole, diff --git a/target_chains/solana/programs/pyth-solana-receiver/Cargo.toml b/target_chains/solana/programs/pyth-solana-receiver/Cargo.toml index d26243347a..ce646ace0a 100644 --- a/target_chains/solana/programs/pyth-solana-receiver/Cargo.toml +++ b/target_chains/solana/programs/pyth-solana-receiver/Cargo.toml @@ -22,7 +22,7 @@ solana-program = { workspace = true } byteorder = "1.4.3" wormhole-core-bridge-solana = {workspace = true} wormhole-raw-vaas = {version = "0.1.3", features = ["ruint", "on-chain"], default-features = false } -pyth-solana-receiver-state = { path = "../../pyth_solana_receiver_state"} +pyth-solana-receiver-sdk = { path = "../../pyth_solana_receiver_sdk"} [dev-dependencies] pyth-sdk = "0.8.0" diff --git a/target_chains/solana/programs/pyth-solana-receiver/src/lib.rs b/target_chains/solana/programs/pyth-solana-receiver/src/lib.rs index 2432377f6a..e3d20d5214 100644 --- a/target_chains/solana/programs/pyth-solana-receiver/src/lib.rs +++ b/target_chains/solana/programs/pyth-solana-receiver/src/lib.rs @@ -1,7 +1,7 @@ use { crate::error::ReceiverError, anchor_lang::prelude::*, - pyth_solana_receiver_state::{ + pyth_solana_receiver_sdk::{ config::{ Config, DataSource, @@ -47,7 +47,7 @@ use { pub mod error; pub mod sdk; -declare_id!(pyth_solana_receiver_state::ID); +declare_id!(pyth_solana_receiver_sdk::ID); #[program] pub mod pyth_solana_receiver { diff --git a/target_chains/solana/programs/pyth-solana-receiver/src/sdk.rs b/target_chains/solana/programs/pyth-solana-receiver/src/sdk.rs index cf4995bc1c..3a2ca1ed42 100644 --- a/target_chains/solana/programs/pyth-solana-receiver/src/sdk.rs +++ b/target_chains/solana/programs/pyth-solana-receiver/src/sdk.rs @@ -13,7 +13,7 @@ use { system_program, InstructionData, }, - pyth_solana_receiver_state::config::{ + pyth_solana_receiver_sdk::config::{ Config, DataSource, }, diff --git a/target_chains/solana/programs/pyth-solana-receiver/tests/common/mod.rs b/target_chains/solana/programs/pyth-solana-receiver/tests/common/mod.rs index 64e1822daa..c403de293a 100644 --- a/target_chains/solana/programs/pyth-solana-receiver/tests/common/mod.rs +++ b/target_chains/solana/programs/pyth-solana-receiver/tests/common/mod.rs @@ -11,7 +11,7 @@ use { }, ID, }, - pyth_solana_receiver_state::config::{ + pyth_solana_receiver_sdk::config::{ Config, DataSource, }, diff --git a/target_chains/solana/programs/pyth-solana-receiver/tests/test_governance.rs b/target_chains/solana/programs/pyth-solana-receiver/tests/test_governance.rs index 81a9a2cc40..45607b82a9 100644 --- a/target_chains/solana/programs/pyth-solana-receiver/tests/test_governance.rs +++ b/target_chains/solana/programs/pyth-solana-receiver/tests/test_governance.rs @@ -18,7 +18,7 @@ use { }, sdk::get_config_address, }, - pyth_solana_receiver_state::config::{ + pyth_solana_receiver_sdk::config::{ Config, DataSource, }, diff --git a/target_chains/solana/programs/pyth-solana-receiver/tests/test_post_price_update_from_vaa.rs b/target_chains/solana/programs/pyth-solana-receiver/tests/test_post_price_update_from_vaa.rs index cb8c2839a5..462e3ef366 100644 --- a/target_chains/solana/programs/pyth-solana-receiver/tests/test_post_price_update_from_vaa.rs +++ b/target_chains/solana/programs/pyth-solana-receiver/tests/test_post_price_update_from_vaa.rs @@ -21,7 +21,7 @@ use { DEFAULT_TREASURY_ID, }, }, - pyth_solana_receiver_state::{ + pyth_solana_receiver_sdk::{ config::DataSource, price_update::{ PriceUpdateV1, diff --git a/target_chains/solana/programs/pyth-solana-receiver/tests/test_post_updates.rs b/target_chains/solana/programs/pyth-solana-receiver/tests/test_post_updates.rs index 1c868becec..04186c434f 100644 --- a/target_chains/solana/programs/pyth-solana-receiver/tests/test_post_updates.rs +++ b/target_chains/solana/programs/pyth-solana-receiver/tests/test_post_updates.rs @@ -19,7 +19,7 @@ use { DEFAULT_TREASURY_ID, }, }, - pyth_solana_receiver_state::price_update::{ + pyth_solana_receiver_sdk::price_update::{ PriceUpdateV1, VerificationLevel, }, diff --git a/target_chains/solana/programs/pyth-solana-receiver/tests/test_post_updates_atomic.rs b/target_chains/solana/programs/pyth-solana-receiver/tests/test_post_updates_atomic.rs index 009cce5312..39122d23af 100644 --- a/target_chains/solana/programs/pyth-solana-receiver/tests/test_post_updates_atomic.rs +++ b/target_chains/solana/programs/pyth-solana-receiver/tests/test_post_updates_atomic.rs @@ -19,7 +19,7 @@ use { SECONDARY_TREASURY_ID, }, }, - pyth_solana_receiver_state::price_update::{ + pyth_solana_receiver_sdk::price_update::{ PriceUpdateV1, VerificationLevel, }, diff --git a/target_chains/solana/pyth_solana_receiver_state/Cargo.toml b/target_chains/solana/pyth_solana_receiver_sdk/Cargo.toml similarity index 73% rename from target_chains/solana/pyth_solana_receiver_state/Cargo.toml rename to target_chains/solana/pyth_solana_receiver_sdk/Cargo.toml index f8396c3fa4..c3e846068d 100644 --- a/target_chains/solana/pyth_solana_receiver_state/Cargo.toml +++ b/target_chains/solana/pyth_solana_receiver_sdk/Cargo.toml @@ -1,11 +1,11 @@ [package] -name = "pyth-solana-receiver-state" +name = "pyth-solana-receiver-sdk" version = "0.1.0" edition = "2021" [lib] crate-type = ["lib"] -name = "pyth_solana_receiver_state" +name = "pyth_solana_receiver_sdk" [dependencies] diff --git a/target_chains/solana/pyth_solana_receiver_state/src/config.rs b/target_chains/solana/pyth_solana_receiver_sdk/src/config.rs similarity index 100% rename from target_chains/solana/pyth_solana_receiver_state/src/config.rs rename to target_chains/solana/pyth_solana_receiver_sdk/src/config.rs diff --git a/target_chains/solana/pyth_solana_receiver_state/src/error.rs b/target_chains/solana/pyth_solana_receiver_sdk/src/error.rs similarity index 100% rename from target_chains/solana/pyth_solana_receiver_state/src/error.rs rename to target_chains/solana/pyth_solana_receiver_sdk/src/error.rs diff --git a/target_chains/solana/pyth_solana_receiver_state/src/lib.rs b/target_chains/solana/pyth_solana_receiver_sdk/src/lib.rs similarity index 100% rename from target_chains/solana/pyth_solana_receiver_state/src/lib.rs rename to target_chains/solana/pyth_solana_receiver_sdk/src/lib.rs diff --git a/target_chains/solana/pyth_solana_receiver_state/src/price_update.rs b/target_chains/solana/pyth_solana_receiver_sdk/src/price_update.rs similarity index 98% rename from target_chains/solana/pyth_solana_receiver_state/src/price_update.rs rename to target_chains/solana/pyth_solana_receiver_sdk/src/price_update.rs index 4ed377b8bc..ae5ca6c144 100644 --- a/target_chains/solana/pyth_solana_receiver_state/src/price_update.rs +++ b/target_chains/solana/pyth_solana_receiver_sdk/src/price_update.rs @@ -108,7 +108,7 @@ impl PriceUpdateV1 { /// /// # Example /// ``` - /// use pyth_solana_receiver_state::price_update::{get_feed_id_from_hex, VerificationLevel, PriceUpdateV1}; + /// use pyth_solana_receiver_sdk::price_update::{get_feed_id_from_hex, VerificationLevel, PriceUpdateV1}; /// use anchor_lang::prelude::*; /// /// const MAXIMUM_AGE : u64 = 30; @@ -152,7 +152,7 @@ impl PriceUpdateV1 { /// /// # Example /// ``` - /// use pyth_solana_receiver_state::price_update::{get_feed_id_from_hex, PriceUpdateV1}; + /// use pyth_solana_receiver_sdk::price_update::{get_feed_id_from_hex, PriceUpdateV1}; /// use anchor_lang::prelude::*; /// /// const MAXIMUM_AGE : u64 = 30; @@ -193,7 +193,7 @@ impl PriceUpdateV1 { /// # Example /// /// ``` -/// use pyth_solana_receiver_state::price_update::get_feed_id_from_hex; +/// use pyth_solana_receiver_sdk::price_update::get_feed_id_from_hex; /// let feed_id = get_feed_id_from_hex("0xef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d").unwrap(); /// ``` pub fn get_feed_id_from_hex(input: &str) -> std::result::Result { diff --git a/target_chains/solana/sdk/js/pyth_solana_receiver/src/PythSolanaReceiver.ts b/target_chains/solana/sdk/js/pyth_solana_receiver/src/PythSolanaReceiver.ts index 23ca2a5125..7b368b4331 100644 --- a/target_chains/solana/sdk/js/pyth_solana_receiver/src/PythSolanaReceiver.ts +++ b/target_chains/solana/sdk/js/pyth_solana_receiver/src/PythSolanaReceiver.ts @@ -116,7 +116,7 @@ export class PythTransactionBuilder extends TransactionBuilder { * @param priceUpdateDataArray the output of the `@pythnetwork/price-service-client`'s `PriceServiceConnection.getLatestVaas`. This is an array of verifiable price updates. * * Partially verified price updates are price updates where not all the guardian signatures have been verified. By default this methods checks `DEFAULT_REDUCED_GUARDIAN_SET_SIZE` signatures when posting the VAA. - * If you are a on-chain program developer, make sure you understand the risks of consuming partially verified price updates here: {@link https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/solana/pyth_solana_receiver_state/src/price_update.rs}. + * If you are a on-chain program developer, make sure you understand the risks of consuming partially verified price updates here: {@link https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/solana/pyth_solana_receiver_sdk/src/price_update.rs}. * * @example * ```typescript @@ -282,7 +282,7 @@ export class PythSolanaReceiver { * Build a series of helper instructions that post price updates to the Pyth Solana Receiver program and another series to close the price update accounts. * * This function uses partially verified price updates. Partially verified price updates are price updates where not all the guardian signatures have been verified. By default this methods checks `DEFAULT_REDUCED_GUARDIAN_SET_SIZE` signatures when posting the VAA. - * If you are a on-chain program developer, make sure you understand the risks of consuming partially verified price updates here: {@link https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/solana/pyth_solana_receiver_state/src/price_update.rs}. + * If you are a on-chain program developer, make sure you understand the risks of consuming partially verified price updates here: {@link https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/solana/pyth_solana_receiver_sdk/src/price_update.rs}. * * @param priceUpdateDataArray the output of the `@pythnetwork/price-service-client`'s `PriceServiceConnection.getLatestVaas`. This is an array of verifiable price updates. * @returns `postInstructions`: the instructions to post the price updates, these should be called before consuming the price updates From cea10725e5b23b6c8e8fd91d7a8947d141ee327d Mon Sep 17 00:00:00 2001 From: Guillermo Bescos Date: Fri, 15 Mar 2024 14:36:00 +0000 Subject: [PATCH 3/3] Publish pythnet sdk --- .../publish-pyth-solana-receiver-state.yml | 2 +- .github/workflows/publish-pythnet-sdk.yml | 18 ++++++++++++++++++ .../solana/pyth_solana_receiver_sdk/Cargo.toml | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/publish-pythnet-sdk.yml diff --git a/.github/workflows/publish-pyth-solana-receiver-state.yml b/.github/workflows/publish-pyth-solana-receiver-state.yml index e76f5433b0..971f50806a 100644 --- a/.github/workflows/publish-pyth-solana-receiver-state.yml +++ b/.github/workflows/publish-pyth-solana-receiver-state.yml @@ -15,4 +15,4 @@ jobs: - run: cargo publish --token ${CARGO_REGISTRY_TOKEN} env: CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} - working-directory: "target_chains/solana/pyth_solana_receiver_state" + working-directory: "target_chains/solana/pyth_solana_receiver_sdk" diff --git a/.github/workflows/publish-pythnet-sdk.yml b/.github/workflows/publish-pythnet-sdk.yml new file mode 100644 index 0000000000..4106375e7a --- /dev/null +++ b/.github/workflows/publish-pythnet-sdk.yml @@ -0,0 +1,18 @@ +name: Publish Pythnet SDK to crates.io + +on: + push: + tags: + - pythnet-sdk-v* +jobs: + publish-pythnet-sdk: + name: Publish Pythnet SDK + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v2 + + - run: cargo publish --token ${CARGO_REGISTRY_TOKEN} + env: + CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} + working-directory: "pythnet/pythnet_sdk" diff --git a/target_chains/solana/pyth_solana_receiver_sdk/Cargo.toml b/target_chains/solana/pyth_solana_receiver_sdk/Cargo.toml index c3e846068d..7c9a7e6964 100644 --- a/target_chains/solana/pyth_solana_receiver_sdk/Cargo.toml +++ b/target_chains/solana/pyth_solana_receiver_sdk/Cargo.toml @@ -11,5 +11,5 @@ name = "pyth_solana_receiver_sdk" [dependencies] anchor-lang = ">=0.28.0" hex = "*" -pythnet-sdk = { path = "../../../pythnet/pythnet_sdk"} +pythnet-sdk = { path = "../../../pythnet/pythnet_sdk", version = "2.0.0"} solana-program = "*"