From fcde6e24954048eb12bc63f91bfd534ae07fb79f Mon Sep 17 00:00:00 2001 From: Erwan Or Date: Wed, 25 Dec 2024 17:33:28 -0500 Subject: [PATCH 1/2] refactor: move crates into `penumbra-sdk` namespace (#4975) This moves our workspace into a `penumbra-sdk` namespace ahead of publishing `v0.82.0-alpha.0` on crates.io. We're using the `penumbra-sdk` prefix for all crate names because it's unique. (The `penumbra`) crate name is already taken on crates.io and belongs to an unrelated project. In addition to a renaming, several other changes are made for crates.io compatibility: * fills out crate metadata fields to meet spec * breaks out app-tests to separate crate --- Cargo.lock | 1178 ++++++++++------- Cargo.toml | 73 +- crates/bench/Cargo.toml | 28 +- crates/bench/benches/convert.rs | 8 +- crates/bench/benches/delegator_vote.rs | 14 +- crates/bench/benches/nullifier_derivation.rs | 14 +- crates/bench/benches/output.rs | 8 +- crates/bench/benches/spend.rs | 14 +- crates/bench/benches/swap.rs | 12 +- crates/bench/benches/swap_claim.rs | 16 +- crates/bin/pcli/Cargo.toml | 68 +- crates/bin/pcli/src/command/init.rs | 20 +- crates/bin/pcli/src/command/migrate.rs | 12 +- crates/bin/pcli/src/command/query.rs | 2 +- crates/bin/pcli/src/command/query/auction.rs | 30 +- crates/bin/pcli/src/command/query/chain.rs | 6 +- .../pcli/src/command/query/community_pool.rs | 8 +- crates/bin/pcli/src/command/query/dex.rs | 12 +- .../bin/pcli/src/command/query/governance.rs | 23 +- .../pcli/src/command/query/shielded_pool.rs | 10 +- crates/bin/pcli/src/command/query/tx.rs | 4 +- .../bin/pcli/src/command/query/validator.rs | 8 +- crates/bin/pcli/src/command/threshold.rs | 4 +- crates/bin/pcli/src/command/tx.rs | 30 +- .../bin/pcli/src/command/tx/auction/dutch.rs | 16 +- .../src/command/tx/auction/dutch/debug.rs | 2 +- .../pcli/src/command/tx/auction/dutch/gda.rs | 4 +- .../pcli/src/command/tx/liquidity_position.rs | 4 +- crates/bin/pcli/src/command/tx/proposal.rs | 8 +- crates/bin/pcli/src/command/tx/replicate.rs | 4 +- .../pcli/src/command/tx/replicate/linear.rs | 16 +- .../bin/pcli/src/command/tx/replicate/xyk.rs | 12 +- crates/bin/pcli/src/command/utils.rs | 4 +- crates/bin/pcli/src/command/validator.rs | 14 +- crates/bin/pcli/src/command/view/address.rs | 2 +- crates/bin/pcli/src/command/view/auction.rs | 16 +- crates/bin/pcli/src/command/view/balance.rs | 8 +- crates/bin/pcli/src/command/view/lps.rs | 6 +- .../pcli/src/command/view/noble_address.rs | 2 +- crates/bin/pcli/src/command/view/staked.rs | 10 +- .../src/command/view/transaction_hashes.rs | 6 +- crates/bin/pcli/src/command/view/tx.rs | 6 +- crates/bin/pcli/src/command/view/wallet_id.rs | 2 +- crates/bin/pcli/src/config.rs | 10 +- .../bin/pcli/src/dex_utils/replicate/debug.rs | 6 +- .../bin/pcli/src/dex_utils/replicate/xyk.rs | 6 +- crates/bin/pcli/src/lib.rs | 4 +- crates/bin/pcli/src/network.rs | 12 +- crates/bin/pcli/src/opt.rs | 16 +- crates/bin/pcli/src/terminal.rs | 34 +- crates/bin/pcli/src/transaction_view_ext.rs | 80 +- crates/bin/pcli/tests/debug.rs | 2 +- crates/bin/pcli/tests/network_integration.rs | 14 +- crates/bin/pcli/tests/proof.rs | 34 +- crates/bin/pcli/tests/testnet.rs | 2 +- crates/bin/pclientd/Cargo.toml | 28 +- crates/bin/pclientd/src/lib.rs | 14 +- .../bin/pclientd/tests/network_integration.rs | 29 +- crates/bin/pclientd/tests/testnet.rs | 6 +- crates/bin/pd/Cargo.toml | 46 +- crates/bin/pd/src/cli.rs | 4 +- crates/bin/pd/src/lib.rs | 2 +- crates/bin/pd/src/main.rs | 41 +- crates/bin/pd/src/metrics.rs | 2 +- crates/bin/pd/src/migrate.rs | 6 +- crates/bin/pd/src/migrate/mainnet1.rs | 16 +- crates/bin/pd/src/migrate/mainnet2.rs | 12 +- crates/bin/pd/src/migrate/reset_halt_bit.rs | 2 +- crates/bin/pd/src/migrate/simple.rs | 6 +- crates/bin/pd/src/migrate/testnet72.rs | 18 +- crates/bin/pd/src/migrate/testnet74.rs | 14 +- crates/bin/pd/src/migrate/testnet76.rs | 26 +- crates/bin/pd/src/migrate/testnet77.rs | 10 +- crates/bin/pd/src/migrate/testnet78.rs | 50 +- crates/bin/pd/src/network/config.rs | 6 +- crates/bin/pd/src/network/generate.rs | 54 +- crates/bin/pd/tests/network_integration.rs | 4 +- crates/bin/pindexer/Cargo.toml | 29 +- crates/bin/pindexer/src/block.rs | 2 +- crates/bin/pindexer/src/dex_ex/mod.rs | 28 +- crates/bin/pindexer/src/governance.rs | 8 +- crates/bin/pindexer/src/ibc/mod.rs | 6 +- crates/bin/pindexer/src/indexer_ext.rs | 4 +- crates/bin/pindexer/src/insights/mod.rs | 18 +- crates/bin/pindexer/src/parsing.rs | 2 +- .../bin/pindexer/src/stake/delegation_txs.rs | 6 +- .../bin/pindexer/src/stake/missed_blocks.rs | 4 +- crates/bin/pindexer/src/stake/slashings.rs | 4 +- .../pindexer/src/stake/undelegation_txs.rs | 6 +- .../bin/pindexer/src/stake/validator_set.rs | 10 +- crates/bin/pindexer/src/supply.rs | 18 +- crates/bin/pmonitor/Cargo.toml | 25 +- crates/bin/pmonitor/src/config.rs | 4 +- crates/bin/pmonitor/src/genesis.rs | 14 +- crates/bin/pmonitor/src/main.rs | 22 +- crates/bin/pmonitor/tests/common/mod.rs | 2 +- .../bin/pmonitor/tests/common/pcli_helpers.rs | 2 +- crates/cnidarium-component/Cargo.toml | 4 + .../cnidarium-component/src/action_handler.rs | 2 +- crates/cnidarium-component/src/lib.rs | 4 +- crates/core/app-tests/Cargo.toml | 139 ++ .../tests/app_blocktimes_increment.rs | 4 +- ..._can_define_and_delegate_to_a_validator.rs | 56 +- .../app_can_deposit_into_community_pool.rs | 20 +- .../app_can_disable_community_pool_spends.rs | 49 +- .../app_can_propose_community_pool_spends.rs | 46 +- .../app_can_spend_notes_and_detect_outputs.rs | 16 +- ...p_can_sweep_a_collection_of_small_notes.rs | 28 +- .../app_can_undelegate_from_a_validator.rs | 54 +- .../tests/app_check_dex_vcb.rs | 12 +- ...ator_definitions_with_invalid_auth_sigs.rs | 16 +- .../app_reproduce_testnet_75_vcb_close.rs | 18 +- ...me_for_genesis_validator_missing_blocks.rs | 6 +- ...me_for_genesis_validator_signing_blocks.rs | 6 +- ..._uptime_for_validators_only_once_active.rs | 38 +- .../tests/common/ibc_tests/mod.rs | 14 +- .../tests/common/ibc_tests/node.rs | 23 +- .../tests/common/ibc_tests/relayer.rs | 24 +- .../{app => app-tests}/tests/common/mod.rs | 6 +- .../tests/common/temp_storage_ext.rs | 2 +- .../tests/common/test_node_builder_ext.rs | 18 +- .../tests/common/test_node_ext.rs | 8 +- .../tests/common/validator_read_ext.rs | 4 +- .../tests/ics23_transfer.rs | 6 +- .../tests/mock_consensus_block_proving.rs | 24 +- ...onsensus_can_define_a_genesis_validator.rs | 8 +- ...sus_can_send_a_sequence_of_empty_blocks.rs | 6 +- crates/core/{app => app-tests}/tests/spend.rs | 26 +- .../tests/swap_and_swap_claim.rs | 20 +- .../view_server_can_be_served_on_localhost.rs | 22 +- crates/core/app/Cargo.toml | 97 +- crates/core/app/src/action_handler/actions.rs | 6 +- .../app/src/action_handler/actions/submit.rs | 26 +- .../app/src/action_handler/transaction.rs | 20 +- .../action_handler/transaction/stateful.rs | 10 +- .../action_handler/transaction/stateless.rs | 4 +- crates/core/app/src/app/mod.rs | 66 +- crates/core/app/src/app_version/component.rs | 2 +- crates/core/app/src/community_pool_ext.rs | 12 +- crates/core/app/src/genesis.rs | 32 +- crates/core/app/src/lib.rs | 2 +- crates/core/app/src/metrics.rs | 12 +- crates/core/app/src/params.rs | 28 +- crates/core/app/src/params/change.rs | 24 +- crates/core/app/src/penumbra_host_chain.rs | 6 +- crates/core/app/src/rpc.rs | 22 +- crates/core/app/src/rpc/query.rs | 2 +- crates/core/app/src/server.rs | 6 +- crates/core/app/src/server/info.rs | 10 +- crates/core/asset/Cargo.toml | 10 +- crates/core/asset/src/asset.rs | 51 +- crates/core/asset/src/asset/denom.rs | 2 +- crates/core/asset/src/asset/denom_metadata.rs | 4 +- crates/core/asset/src/asset/id.rs | 6 +- crates/core/asset/src/balance.rs | 6 +- crates/core/asset/src/balance/commitment.rs | 4 +- crates/core/asset/src/equivalent_value.rs | 4 +- crates/core/asset/src/estimated_price.rs | 2 +- crates/core/asset/src/value.rs | 16 +- crates/core/component/auction/Cargo.toml | 38 +- .../component/auction/src/auction/dutch.rs | 8 +- .../auction/src/auction/dutch/actions/end.rs | 6 +- .../auction/src/auction/dutch/actions/plan.rs | 4 +- .../src/auction/dutch/actions/schedule.rs | 6 +- .../auction/src/auction/dutch/actions/view.rs | 4 +- .../src/auction/dutch/actions/withdraw.rs | 6 +- .../core/component/auction/src/auction/id.rs | 2 +- .../core/component/auction/src/auction/nft.rs | 4 +- .../src/component/action_handler/dutch/end.rs | 2 +- .../action_handler/dutch/schedule.rs | 4 +- .../auction/src/component/auction.rs | 10 +- .../auction/src/component/auction_store.rs | 8 +- .../auction/src/component/dutch_auction.rs | 20 +- .../component/auction/src/component/rpc.rs | 6 +- crates/core/component/auction/src/event.rs | 6 +- crates/core/component/auction/src/genesis.rs | 2 +- crates/core/component/auction/src/params.rs | 4 +- .../core/component/auction/src/state_key.rs | 2 +- .../core/component/community-pool/Cargo.toml | 24 +- .../src/action/community_pool_deposit.rs | 6 +- .../src/action/community_pool_output.rs | 8 +- .../src/action/community_pool_spend.rs | 6 +- .../action_handler/community_pool_output.rs | 4 +- .../community-pool/src/component/state_key.rs | 2 +- .../community-pool/src/component/view.rs | 6 +- .../component/community-pool/src/genesis.rs | 4 +- .../component/community-pool/src/params.rs | 4 +- .../core/component/compact-block/Cargo.toml | 34 +- .../compact-block/src/compact_block.rs | 12 +- .../compact-block/src/component/manager.rs | 18 +- .../compact-block/src/component/rpc.rs | 4 +- .../compact-block/src/component/view.rs | 6 +- .../compact-block/src/state_payload.rs | 8 +- crates/core/component/dex/Cargo.toml | 38 +- .../dex/src/batch_swap_output_data.rs | 12 +- crates/core/component/dex/src/candlestick.rs | 2 +- .../action_handler/position/close.rs | 1 + .../dex/src/component/action_handler/swap.rs | 6 +- .../component/action_handler/swap_claim.rs | 10 +- .../core/component/dex/src/component/arb.rs | 6 +- .../component/dex/src/component/chandelier.rs | 12 +- .../src/component/circuit_breaker/value.rs | 18 +- .../core/component/dex/src/component/dex.rs | 12 +- .../core/component/dex/src/component/flow.rs | 2 +- .../dex/src/component/position_manager.rs | 6 +- .../position_manager/base_liquidity_index.rs | 4 +- .../src/component/position_manager/counter.rs | 2 +- .../component/position_manager/price_index.rs | 2 +- .../dex/src/component/router/fill_route.rs | 4 +- .../dex/src/component/router/params.rs | 4 +- .../dex/src/component/router/path.rs | 4 +- .../dex/src/component/router/path_cache.rs | 2 +- .../dex/src/component/router/path_search.rs | 4 +- .../src/component/router/route_and_fill.rs | 6 +- .../dex/src/component/router/tests.rs | 4 +- .../core/component/dex/src/component/rpc.rs | 12 +- .../dex/src/component/swap_manager.rs | 8 +- .../core/component/dex/src/component/tests.rs | 34 +- crates/core/component/dex/src/event.rs | 10 +- crates/core/component/dex/src/genesis.rs | 2 +- crates/core/component/dex/src/lp/action.rs | 6 +- crates/core/component/dex/src/lp/nft.rs | 6 +- crates/core/component/dex/src/lp/order.rs | 4 +- crates/core/component/dex/src/lp/plan.rs | 4 +- crates/core/component/dex/src/lp/position.rs | 8 +- crates/core/component/dex/src/lp/reserves.rs | 6 +- .../component/dex/src/lp/trading_function.rs | 8 +- crates/core/component/dex/src/params.rs | 6 +- crates/core/component/dex/src/state_key.rs | 12 +- crates/core/component/dex/src/swap/action.rs | 8 +- .../core/component/dex/src/swap/ciphertext.rs | 4 +- crates/core/component/dex/src/swap/payload.rs | 6 +- .../core/component/dex/src/swap/plaintext.rs | 20 +- crates/core/component/dex/src/swap/plan.rs | 8 +- crates/core/component/dex/src/swap/proof.rs | 24 +- crates/core/component/dex/src/swap/view.rs | 8 +- .../component/dex/src/swap_claim/action.rs | 14 +- .../core/component/dex/src/swap_claim/plan.rs | 12 +- .../component/dex/src/swap_claim/proof.rs | 26 +- .../core/component/dex/src/swap_claim/view.rs | 6 +- .../core/component/dex/src/swap_execution.rs | 6 +- crates/core/component/dex/src/trading_pair.rs | 4 +- .../dex/tests/integration/harness.rs | 12 +- .../core/component/distributions/Cargo.toml | 18 +- .../component/distributions/src/component.rs | 4 +- .../distributions/src/component/view.rs | 4 +- .../component/distributions/src/genesis.rs | 2 +- .../component/distributions/src/params.rs | 4 +- crates/core/component/fee/Cargo.toml | 16 +- crates/core/component/fee/src/component.rs | 6 +- .../component/fee/src/component/fee_pay.rs | 8 +- .../core/component/fee/src/component/rpc.rs | 4 +- .../core/component/fee/src/component/view.rs | 6 +- crates/core/component/fee/src/event.rs | 2 +- crates/core/component/fee/src/fee.rs | 6 +- crates/core/component/fee/src/gas.rs | 6 +- crates/core/component/fee/src/genesis.rs | 2 +- crates/core/component/fee/src/params.rs | 4 +- crates/core/component/funding/Cargo.toml | 34 +- .../core/component/funding/src/component.rs | 18 +- .../component/funding/src/component/view.rs | 2 +- crates/core/component/funding/src/event.rs | 4 +- crates/core/component/funding/src/genesis.rs | 2 +- crates/core/component/funding/src/params.rs | 4 +- crates/core/component/governance/Cargo.toml | 40 +- .../src/action_handler/delegator_vote.rs | 6 +- .../src/action_handler/deposit_claim.rs | 4 +- .../src/action_handler/validator_vote.rs | 2 +- .../governance/src/action_handler/withdraw.rs | 4 +- .../core/component/governance/src/change.rs | 4 +- .../component/governance/src/component.rs | 4 +- .../component/governance/src/component/rpc.rs | 20 +- .../governance/src/component/view.rs | 28 +- .../governance/src/delegator_vote/action.rs | 12 +- .../governance/src/delegator_vote/plan.rs | 16 +- .../governance/src/delegator_vote/proof.rs | 24 +- .../governance/src/delegator_vote/view.rs | 4 +- crates/core/component/governance/src/event.rs | 4 +- .../core/component/governance/src/genesis.rs | 2 +- .../core/component/governance/src/params.rs | 6 +- .../core/component/governance/src/proposal.rs | 2 +- .../src/proposal_deposit_claim/action.rs | 8 +- .../component/governance/src/proposal_nft.rs | 2 +- .../governance/src/proposal_state.rs | 2 +- .../governance/src/proposal_submit/action.rs | 8 +- .../src/proposal_withdraw/action.rs | 8 +- .../component/governance/src/state_key.rs | 4 +- crates/core/component/governance/src/tally.rs | 2 +- .../governance/src/validator_vote/action.rs | 6 +- crates/core/component/governance/src/vote.rs | 2 +- .../governance/src/voting_receipt_token.rs | 2 +- crates/core/component/ibc/Cargo.toml | 20 +- .../component/ibc/src/component/channel.rs | 2 +- .../component/ibc/src/component/client.rs | 10 +- .../ibc/src/component/client_counter.rs | 2 +- .../component/ibc/src/component/connection.rs | 2 +- .../ibc/src/component/connection_counter.rs | 2 +- .../ibc/src/component/ibc_component.rs | 2 +- .../ibc/src/component/ics02_validation.rs | 2 +- .../msg_handler/connection_open_ack.rs | 10 +- .../msg_handler/connection_open_try.rs | 10 +- .../component/ibc/src/component/state_key.rs | 2 +- .../core/component/ibc/src/component/view.rs | 2 +- crates/core/component/ibc/src/genesis.rs | 2 +- crates/core/component/ibc/src/ibc_action.rs | 6 +- crates/core/component/ibc/src/ibc_token.rs | 2 +- crates/core/component/ibc/src/params.rs | 4 +- crates/core/component/sct/Cargo.toml | 16 +- .../core/component/sct/src/component/clock.rs | 2 +- .../core/component/sct/src/component/rpc.rs | 4 +- .../core/component/sct/src/component/sct.rs | 2 +- .../core/component/sct/src/component/tree.rs | 4 +- crates/core/component/sct/src/epoch.rs | 4 +- crates/core/component/sct/src/event.rs | 4 +- crates/core/component/sct/src/genesis.rs | 2 +- .../component/sct/src/nullification_info.rs | 2 +- crates/core/component/sct/src/nullifier.rs | 10 +- crates/core/component/sct/src/params.rs | 4 +- crates/core/component/sct/src/source.rs | 2 +- crates/core/component/sct/src/state_key.rs | 4 +- .../core/component/shielded-pool/Cargo.toml | 34 +- .../component/shielded-pool/src/backref.rs | 14 +- .../action_handler/ics20_withdrawal.rs | 2 +- .../src/component/action_handler/output.rs | 6 +- .../src/component/action_handler/spend.rs | 8 +- .../shielded-pool/src/component/assets.rs | 4 +- .../shielded-pool/src/component/fmd.rs | 4 +- .../ics20_withdrawal_with_handler.rs | 2 +- .../src/component/note_manager.rs | 10 +- .../shielded-pool/src/component/rpc.rs | 4 +- .../src/component/rpc/bank_query.rs | 8 +- .../src/component/rpc/transfer_query.rs | 4 +- .../src/component/shielded_pool.rs | 6 +- .../shielded-pool/src/component/transfer.rs | 14 +- .../component/shielded-pool/src/convert.rs | 6 +- .../core/component/shielded-pool/src/event.rs | 8 +- .../core/component/shielded-pool/src/fmd.rs | 2 +- .../component/shielded-pool/src/genesis.rs | 10 +- .../shielded-pool/src/genesis/allocation.rs | 8 +- .../shielded-pool/src/ics20_withdrawal.rs | 12 +- .../core/component/shielded-pool/src/note.rs | 12 +- .../component/shielded-pool/src/note/r1cs.rs | 6 +- .../shielded-pool/src/note_payload.rs | 6 +- .../shielded-pool/src/nullifier_derivation.rs | 20 +- .../shielded-pool/src/output/action.rs | 8 +- .../shielded-pool/src/output/plan.rs | 16 +- .../shielded-pool/src/output/proof.rs | 18 +- .../shielded-pool/src/output/view.rs | 4 +- .../component/shielded-pool/src/params.rs | 4 +- .../core/component/shielded-pool/src/rseed.rs | 2 +- .../shielded-pool/src/spend/action.rs | 8 +- .../component/shielded-pool/src/spend/plan.rs | 12 +- .../shielded-pool/src/spend/proof.rs | 30 +- .../component/shielded-pool/src/spend/view.rs | 2 +- .../component/shielded-pool/src/state_key.rs | 2 +- crates/core/component/stake/Cargo.toml | 40 +- crates/core/component/stake/src/changes.rs | 2 +- .../src/component/action_handler/delegate.rs | 6 +- .../component/action_handler/undelegate.rs | 6 +- .../action_handler/undelegate_claim.rs | 4 +- .../action_handler/validator_definition.rs | 2 +- .../stake/src/component/epoch_handler.rs | 8 +- .../core/component/stake/src/component/rpc.rs | 2 +- .../component/stake/src/component/stake.rs | 8 +- .../validator_handler/uptime_tracker.rs | 4 +- .../validator_handler/validator_manager.rs | 10 +- .../validator_handler/validator_store.rs | 6 +- .../stake/src/current_consensus_keys.rs | 2 +- crates/core/component/stake/src/delegate.rs | 8 +- .../component/stake/src/delegation_token.rs | 2 +- crates/core/component/stake/src/event.rs | 4 +- .../component/stake/src/funding_stream.rs | 6 +- crates/core/component/stake/src/genesis.rs | 2 +- .../component/stake/src/governance_key.rs | 2 +- .../core/component/stake/src/identity_key.rs | 2 +- crates/core/component/stake/src/lib.rs | 2 +- crates/core/component/stake/src/params.rs | 6 +- crates/core/component/stake/src/penalty.rs | 6 +- crates/core/component/stake/src/rate.rs | 10 +- .../component/stake/src/unbonding_token.rs | 2 +- crates/core/component/stake/src/undelegate.rs | 10 +- .../stake/src/undelegate_claim/action.rs | 6 +- .../stake/src/undelegate_claim/plan.rs | 8 +- .../stake/src/undelegate_claim/proof.rs | 16 +- crates/core/component/stake/src/uptime.rs | 2 +- crates/core/component/stake/src/validator.rs | 4 +- .../component/stake/src/validator/bonding.rs | 2 +- .../stake/src/validator/definition.rs | 4 +- .../component/stake/src/validator/info.rs | 2 +- .../component/stake/src/validator/state.rs | 2 +- .../component/stake/src/validator/status.rs | 4 +- crates/core/keys/Cargo.toml | 14 +- crates/core/keys/src/address.rs | 4 +- crates/core/keys/src/address/view.rs | 2 +- crates/core/keys/src/keys/diversifier.rs | 2 +- crates/core/keys/src/keys/fvk.rs | 2 +- crates/core/keys/src/keys/spend.rs | 6 +- crates/core/keys/src/keys/wallet_id.rs | 4 +- crates/core/keys/src/symmetric.rs | 6 +- crates/core/keys/tests/test_wallet_id.rs | 4 +- crates/core/num/Cargo.toml | 8 +- crates/core/num/src/amount.rs | 4 +- crates/core/transaction/Cargo.toml | 52 +- crates/core/transaction/src/action.rs | 50 +- crates/core/transaction/src/action_list.rs | 10 +- crates/core/transaction/src/auth_data.rs | 4 +- crates/core/transaction/src/detection_data.rs | 6 +- crates/core/transaction/src/gas.rs | 18 +- crates/core/transaction/src/is_action.rs | 16 +- crates/core/transaction/src/lib.rs | 2 +- crates/core/transaction/src/memo.rs | 14 +- crates/core/transaction/src/parameters.rs | 8 +- crates/core/transaction/src/plan.rs | 36 +- crates/core/transaction/src/plan/action.rs | 36 +- crates/core/transaction/src/plan/auth.rs | 2 +- crates/core/transaction/src/plan/build.rs | 8 +- crates/core/transaction/src/plan/clue.rs | 4 +- .../transaction/src/plan/detection_data.rs | 2 +- crates/core/transaction/src/plan/memo.rs | 4 +- crates/core/transaction/src/plan/spend.rs | 4 +- crates/core/transaction/src/transaction.rs | 28 +- crates/core/transaction/src/view.rs | 68 +- .../core/transaction/src/view/action_view.rs | 26 +- .../src/view/transaction_perspective.rs | 14 +- crates/core/transaction/src/witness_data.rs | 6 +- ...nerate_transaction_signing_test_vectors.rs | 46 +- crates/core/txhash/Cargo.toml | 10 +- crates/core/txhash/src/context.rs | 2 +- crates/core/txhash/src/effect_hash.rs | 2 +- crates/core/txhash/src/transaction_id.rs | 2 +- crates/crypto/decaf377-fmd/Cargo.toml | 4 + crates/crypto/decaf377-frost/Cargo.toml | 6 +- crates/crypto/decaf377-frost/src/keys/dkg.rs | 6 +- crates/crypto/decaf377-frost/src/lib.rs | 6 +- crates/crypto/decaf377-ka/Cargo.toml | 4 + crates/crypto/eddy/Cargo.toml | 6 +- crates/crypto/proof-params/Cargo.toml | 11 +- crates/crypto/proof-setup/Cargo.toml | 25 +- crates/crypto/proof-setup/benches/all.rs | 2 +- crates/crypto/proof-setup/src/all.rs | 10 +- crates/crypto/tct/Cargo.toml | 8 +- crates/crypto/tct/src/block.rs | 2 +- crates/crypto/tct/src/commitment.rs | 2 +- crates/crypto/tct/src/epoch.rs | 2 +- crates/crypto/tct/src/internal/path.rs | 2 +- crates/crypto/tct/src/internal/proof.rs | 2 +- crates/crypto/tct/src/proof.rs | 4 +- crates/crypto/tct/src/tree.rs | 2 +- crates/custody/Cargo.toml | 20 +- crates/custody/src/client.rs | 4 +- crates/custody/src/encrypted.rs | 2 +- crates/custody/src/null_kms.rs | 2 +- crates/custody/src/policy.rs | 10 +- crates/custody/src/pre_auth.rs | 2 +- crates/custody/src/request.rs | 8 +- crates/custody/src/soft_kms.rs | 6 +- crates/custody/src/soft_kms/config.rs | 4 +- crates/custody/src/terminal.rs | 8 +- crates/custody/src/threshold.rs | 8 +- crates/custody/src/threshold/config.rs | 2 +- crates/custody/src/threshold/dkg.rs | 2 +- crates/custody/src/threshold/sign.rs | 10 +- crates/misc/measure/Cargo.toml | 12 +- crates/misc/measure/src/main.rs | 8 +- crates/misc/tct-visualize/Cargo.toml | 9 +- .../tct-visualize/src/bin/tct-live-edit.rs | 4 +- .../tct-visualize/src/bin/tct-visualize.rs | 4 +- crates/misc/tct-visualize/src/live.rs | 2 +- crates/misc/tct-visualize/src/live/control.rs | 2 +- crates/misc/tct-visualize/src/live/query.rs | 2 +- crates/misc/tct-visualize/src/live/view.rs | 2 +- crates/misc/tct-visualize/src/render.rs | 2 +- crates/proto/Cargo.toml | 8 +- crates/proto/src/lib.rs | 2 +- .../proto/src/protobuf/tendermint_compat.rs | 28 +- crates/test/mock-client/Cargo.toml | 23 +- crates/test/mock-client/src/lib.rs | 31 +- crates/test/mock-consensus/Cargo.toml | 7 +- crates/test/mock-tendermint-proxy/Cargo.toml | 11 +- .../test/mock-tendermint-proxy/src/proxy.rs | 12 +- crates/test/mock-tendermint-proxy/src/stub.rs | 2 +- crates/test/tct-property-test/Cargo.toml | 8 +- crates/test/tct-property-test/src/lib.rs | 2 +- .../test/tct-property-test/tests/serialize.rs | 2 +- .../tct-property-test/tests/simulate/mod.rs | 2 +- crates/test/tct-property-test/tests/spec.rs | 2 +- .../test/tct-property-test/tests/witness.rs | 2 +- crates/test/tracing-subscriber/Cargo.toml | 9 +- crates/test/tracing-subscriber/src/lib.rs | 2 +- crates/util/auto-https/Cargo.toml | 4 +- crates/util/cometindex/Cargo.toml | 2 +- crates/util/tendermint-proxy/Cargo.toml | 11 +- .../tendermint-proxy/src/tendermint_proxy.rs | 4 +- crates/util/tower-trace/Cargo.toml | 6 +- crates/view/Cargo.toml | 42 +- crates/view/src/client.rs | 28 +- crates/view/src/lib.rs | 2 +- crates/view/src/note_record.rs | 12 +- crates/view/src/planner.rs | 34 +- crates/view/src/service.rs | 36 +- crates/view/src/status.rs | 2 +- crates/view/src/storage.rs | 30 +- crates/view/src/storage/sct.rs | 12 +- crates/view/src/swap_record.rs | 8 +- crates/view/src/sync.rs | 14 +- crates/view/src/transaction_info.rs | 2 +- crates/view/src/worker.rs | 40 +- crates/wallet/Cargo.toml | 34 +- crates/wallet/src/build.rs | 8 +- crates/wallet/src/plan.rs | 12 +- deployments/scripts/check-wasm-compat.sh | 34 +- deployments/scripts/rust-docs | 52 +- flake.nix | 1 + tools/parameter-setup/Cargo.toml | 19 +- tools/parameter-setup/src/main.rs | 10 +- tools/proto-compiler/Cargo.toml | 9 +- tools/summonerd/Cargo.toml | 16 +- tools/summonerd/src/main.rs | 16 +- tools/summonerd/src/participant.rs | 6 +- tools/summonerd/src/penumbra_knower.rs | 8 +- tools/summonerd/src/phase.rs | 6 +- tools/summonerd/src/queue.rs | 4 +- tools/summonerd/src/server.rs | 4 +- tools/summonerd/src/storage.rs | 8 +- tools/summonerd/src/web.rs | 2 +- 525 files changed, 3780 insertions(+), 3264 deletions(-) create mode 100644 crates/core/app-tests/Cargo.toml rename crates/core/{app => app-tests}/tests/app_blocktimes_increment.rs (98%) rename crates/core/{app => app-tests}/tests/app_can_define_and_delegate_to_a_validator.rs (92%) rename crates/core/{app => app-tests}/tests/app_can_deposit_into_community_pool.rs (91%) rename crates/core/{app => app-tests}/tests/app_can_disable_community_pool_spends.rs (90%) rename crates/core/{app => app-tests}/tests/app_can_propose_community_pool_spends.rs (91%) rename crates/core/{app => app-tests}/tests/app_can_spend_notes_and_detect_outputs.rs (93%) rename crates/core/{app => app-tests}/tests/app_can_sweep_a_collection_of_small_notes.rs (89%) rename crates/core/{app => app-tests}/tests/app_can_undelegate_from_a_validator.rs (90%) rename crates/core/{app => app-tests}/tests/app_check_dex_vcb.rs (92%) rename crates/core/{app => app-tests}/tests/app_rejects_validator_definitions_with_invalid_auth_sigs.rs (93%) rename crates/core/{app => app-tests}/tests/app_reproduce_testnet_75_vcb_close.rs (95%) rename crates/core/{app => app-tests}/tests/app_tracks_uptime_for_genesis_validator_missing_blocks.rs (94%) rename crates/core/{app => app-tests}/tests/app_tracks_uptime_for_genesis_validator_signing_blocks.rs (93%) rename crates/core/{app => app-tests}/tests/app_tracks_uptime_for_validators_only_once_active.rs (94%) rename crates/core/{app => app-tests}/tests/common/ibc_tests/mod.rs (94%) rename crates/core/{app => app-tests}/tests/common/ibc_tests/node.rs (94%) rename crates/core/{app => app-tests}/tests/common/ibc_tests/relayer.rs (99%) rename crates/core/{app => app-tests}/tests/common/mod.rs (79%) rename crates/core/{app => app-tests}/tests/common/temp_storage_ext.rs (94%) rename crates/core/{app => app-tests}/tests/common/test_node_builder_ext.rs (89%) rename crates/core/{app => app-tests}/tests/common/test_node_ext.rs (80%) rename crates/core/{app => app-tests}/tests/common/validator_read_ext.rs (96%) rename crates/core/{app => app-tests}/tests/ics23_transfer.rs (98%) rename crates/core/{app => app-tests}/tests/mock_consensus_block_proving.rs (94%) rename crates/core/{app => app-tests}/tests/mock_consensus_can_define_a_genesis_validator.rs (90%) rename crates/core/{app => app-tests}/tests/mock_consensus_can_send_a_sequence_of_empty_blocks.rs (92%) rename crates/core/{app => app-tests}/tests/spend.rs (95%) rename crates/core/{app => app-tests}/tests/swap_and_swap_claim.rs (96%) rename crates/core/{app => app-tests}/tests/view_server_can_be_served_on_localhost.rs (93%) diff --git a/Cargo.lock b/Cargo.lock index 514a77a19a..6cf18dc7e0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1303,14 +1303,14 @@ dependencies = [ "parking_lot", "pbjson", "pin-project", - "prost", + "prost 0.13.4", "regex", "rocksdb", "serde", "sha2 0.10.8", "smallvec", "tempfile", - "tendermint", + "tendermint 0.40.1", "tokio", "tokio-stream", "tonic", @@ -1319,13 +1319,13 @@ dependencies = [ [[package]] name = "cnidarium-component" -version = "0.81.3" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "async-trait", "cnidarium", "hex", - "tendermint", + "tendermint 0.40.1", ] [[package]] @@ -1357,7 +1357,7 @@ dependencies = [ [[package]] name = "cometindex" -version = "0.81.3" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "async-trait", @@ -1367,7 +1367,7 @@ dependencies = [ "serde_json", "sqlx", "tap", - "tendermint", + "tendermint 0.40.1", "tokio", "tracing", "tracing-subscriber 0.3.18", @@ -1454,9 +1454,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "462e1f6a8e005acc8835d32d60cbd7973ed65ea2a8d8473830e675f050956427" dependencies = [ "informalsystems-pbjson", - "prost", + "prost 0.13.4", "serde", - "tendermint-proto", + "tendermint-proto 0.40.1", "tonic", ] @@ -1731,7 +1731,7 @@ dependencies = [ [[package]] name = "decaf377-fmd" -version = "0.81.3" +version = "0.82.0-alpha.3" dependencies = [ "ark-ff", "ark-serialize", @@ -1746,7 +1746,7 @@ dependencies = [ [[package]] name = "decaf377-frost" -version = "0.81.3" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -1755,13 +1755,13 @@ dependencies = [ "decaf377-rdsa", "frost-core", "frost-rerandomized", - "penumbra-proto", + "penumbra-sdk-proto", "rand_core", ] [[package]] name = "decaf377-ka" -version = "0.81.3" +version = "0.82.0-alpha.3" dependencies = [ "ark-ff", "decaf377", @@ -2980,10 +2980,10 @@ dependencies = [ "flex-error", "ics23", "informalsystems-pbjson", - "prost", + "prost 0.13.4", "serde", "subtle-encoding", - "tendermint-proto", + "tendermint-proto 0.40.1", "tonic", ] @@ -3025,15 +3025,15 @@ dependencies = [ "ics23", "num-traits", "proc-macro2 0.1.10", - "prost", + "prost 0.13.4", "safe-regex", "serde", "serde_derive", "serde_json", "sha2 0.10.8", "subtle-encoding", - "tendermint", - "tendermint-proto", + "tendermint 0.40.1", + "tendermint-proto 0.40.1", "time", "tracing", ] @@ -3054,14 +3054,14 @@ dependencies = [ "ibc-types-timestamp", "ics23", "num-traits", - "prost", + "prost 0.13.4", "serde", "serde_derive", "serde_json", "sha2 0.10.8", "subtle-encoding", - "tendermint", - "tendermint-proto", + "tendermint 0.40.1", + "tendermint-proto 0.40.1", "time", ] @@ -3085,16 +3085,16 @@ dependencies = [ "ics23", "num-traits", "primitive-types", - "prost", + "prost 0.13.4", "safe-regex", "serde", "serde_derive", "serde_json", "sha2 0.10.8", "subtle-encoding", - "tendermint", + "tendermint 0.40.1", "tendermint-light-client-verifier", - "tendermint-proto", + "tendermint-proto 0.40.1", "time", "tracing", "uint", @@ -3118,15 +3118,15 @@ dependencies = [ "ibc-types-timestamp", "ics23", "num-traits", - "prost", + "prost 0.13.4", "safe-regex", "serde", "serde_derive", "serde_json", "sha2 0.10.8", "subtle-encoding", - "tendermint", - "tendermint-proto", + "tendermint 0.40.1", + "tendermint-proto 0.40.1", "time", ] @@ -3138,7 +3138,7 @@ checksum = "c2c543a23a77a5d814e0aeffd5a918964468a8b213f664897bc3f8c50cc7d5c1" dependencies = [ "anyhow", "bytes", - "prost", + "prost 0.13.4", ] [[package]] @@ -3174,16 +3174,16 @@ dependencies = [ "ics23", "num-traits", "primitive-types", - "prost", + "prost 0.13.4", "safe-regex", "serde", "serde_derive", "serde_json", "sha2 0.10.8", "subtle-encoding", - "tendermint", + "tendermint 0.40.1", "tendermint-light-client-verifier", - "tendermint-proto", + "tendermint-proto 0.40.1", "time", "tracing", "uint", @@ -3202,13 +3202,13 @@ dependencies = [ "ibc-types-core-client", "ibc-types-core-connection", "num-traits", - "prost", + "prost 0.13.4", "serde", "serde_derive", "serde_json", "subtle-encoding", - "tendermint", - "tendermint-proto", + "tendermint 0.40.1", + "tendermint-proto 0.40.1", "time", ] @@ -3221,13 +3221,13 @@ dependencies = [ "bytes", "displaydoc", "num-traits", - "prost", + "prost 0.13.4", "serde", "serde_derive", "serde_json", "subtle-encoding", - "tendermint", - "tendermint-proto", + "tendermint 0.40.1", + "tendermint-proto 0.40.1", "time", ] @@ -3266,7 +3266,7 @@ dependencies = [ "bytes", "hex", "informalsystems-pbjson", - "prost", + "prost 0.13.4", "ripemd", "serde", "sha2 0.10.8", @@ -3583,7 +3583,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e310b3a6b5907f99202fcdb4960ff45b93735d7c7d96b760fcff8db2dc0e103d" dependencies = [ "cfg-if", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -4330,8 +4330,8 @@ checksum = "6eea3058763d6e656105d1403cb04e0a41b7bbac6362d413e7c33be0c32279c9" dependencies = [ "heck 0.5.0", "itertools 0.13.0", - "prost", - "prost-types", + "prost 0.13.4", + "prost-types 0.13.4", ] [[package]] @@ -4344,7 +4344,7 @@ dependencies = [ "chrono", "pbjson", "pbjson-build", - "prost", + "prost 0.13.4", "prost-build", "serde", ] @@ -4373,7 +4373,7 @@ dependencies = [ [[package]] name = "pcli" -version = "0.81.3" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -4405,27 +4405,27 @@ dependencies = [ "ndarray", "once_cell", "pbjson-types", - "penumbra-app", - "penumbra-asset", - "penumbra-auction", - "penumbra-community-pool", - "penumbra-compact-block", - "penumbra-custody", - "penumbra-dex", - "penumbra-fee", - "penumbra-governance", - "penumbra-ibc", - "penumbra-keys", - "penumbra-num", - "penumbra-proof-params", - "penumbra-proto", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-stake", - "penumbra-tct", - "penumbra-transaction", - "penumbra-view", - "penumbra-wallet", + "penumbra-sdk-app", + "penumbra-sdk-asset", + "penumbra-sdk-auction", + "penumbra-sdk-community-pool", + "penumbra-sdk-compact-block", + "penumbra-sdk-custody", + "penumbra-sdk-dex", + "penumbra-sdk-fee", + "penumbra-sdk-governance", + "penumbra-sdk-ibc", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proof-params", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-stake", + "penumbra-sdk-tct", + "penumbra-sdk-transaction", + "penumbra-sdk-view", + "penumbra-sdk-wallet", "pin-project", "predicates 2.1.5", "rand", @@ -4440,7 +4440,7 @@ dependencies = [ "sha2 0.10.8", "simple-base64", "tempfile", - "tendermint", + "tendermint 0.40.1", "termion", "time", "tokio", @@ -4456,7 +4456,7 @@ dependencies = [ [[package]] name = "pclientd" -version = "0.81.3" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "assert_cmd", @@ -4476,16 +4476,16 @@ dependencies = [ "ibc-types", "metrics 0.24.1", "parking_lot", - "penumbra-app", - "penumbra-asset", - "penumbra-custody", - "penumbra-keys", - "penumbra-proof-params", - "penumbra-proto", - "penumbra-tct", - "penumbra-transaction", - "penumbra-view", - "prost", + "penumbra-sdk-app", + "penumbra-sdk-asset", + "penumbra-sdk-custody", + "penumbra-sdk-keys", + "penumbra-sdk-proof-params", + "penumbra-sdk-proto", + "penumbra-sdk-tct", + "penumbra-sdk-transaction", + "penumbra-sdk-view", + "prost 0.13.4", "rand", "rand_core", "rustls 0.23.21", @@ -4494,7 +4494,7 @@ dependencies = [ "serde_with", "sha2 0.10.8", "tempfile", - "tendermint", + "tendermint 0.40.1", "tokio", "tokio-stream", "toml 0.7.8", @@ -4509,7 +4509,7 @@ dependencies = [ [[package]] name = "pd" -version = "0.81.3" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -4547,33 +4547,33 @@ dependencies = [ "mime_guess", "once_cell", "pbjson-types", - "penumbra-app", - "penumbra-asset", - "penumbra-auction", - "penumbra-auto-https", - "penumbra-compact-block", - "penumbra-custody", - "penumbra-dex", - "penumbra-fee", - "penumbra-governance", - "penumbra-ibc", - "penumbra-keys", - "penumbra-num", - "penumbra-proof-params", - "penumbra-proto", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-stake", - "penumbra-tct", - "penumbra-tendermint-proxy", - "penumbra-tower-trace", - "penumbra-transaction", + "penumbra-sdk-app", + "penumbra-sdk-asset", + "penumbra-sdk-auction", + "penumbra-sdk-auto-https", + "penumbra-sdk-compact-block", + "penumbra-sdk-custody", + "penumbra-sdk-dex", + "penumbra-sdk-fee", + "penumbra-sdk-governance", + "penumbra-sdk-ibc", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proof-params", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-stake", + "penumbra-sdk-tct", + "penumbra-sdk-tendermint-proxy", + "penumbra-sdk-tower-trace", + "penumbra-sdk-transaction", "pin-project", "pin-project-lite", "predicates 2.1.5", - "prost", + "prost 0.13.4", "prost-reflect", - "prost-types", + "prost-types 0.13.4", "rand", "rand_chacha", "rand_core", @@ -4587,10 +4587,10 @@ dependencies = [ "sha2 0.10.8", "tar", "tempfile", - "tendermint", + "tendermint 0.40.1", "tendermint-config", "tendermint-light-client-verifier", - "tendermint-proto", + "tendermint-proto 0.40.1", "tendermint-rpc", "tokio", "tokio-stream", @@ -4600,7 +4600,7 @@ dependencies = [ "tonic-reflection", "tonic-web", "tower 0.4.13", - "tower-abci", + "tower-abci 0.18.0", "tower-actor", "tower-http 0.6.2", "tower-service", @@ -4663,8 +4663,95 @@ dependencies = [ ] [[package]] -name = "penumbra-app" -version = "0.81.3" +name = "penumbra-sdk-app" +version = "0.82.0-alpha.3" +dependencies = [ + "anyhow", + "ark-ff", + "async-trait", + "axum-server", + "base64 0.21.7", + "bech32", + "bincode", + "bitvec", + "blake2b_simd 1.0.2", + "camino", + "cfg-if", + "cnidarium", + "cnidarium-component", + "decaf377", + "decaf377-fmd", + "decaf377-rdsa", + "ed25519-consensus", + "futures", + "hex", + "ibc-proto", + "ibc-types", + "ics23", + "im", + "jmt", + "metrics 0.24.1", + "once_cell", + "parking_lot", + "penumbra-sdk-asset", + "penumbra-sdk-auction", + "penumbra-sdk-community-pool", + "penumbra-sdk-compact-block", + "penumbra-sdk-dex", + "penumbra-sdk-distributions", + "penumbra-sdk-fee", + "penumbra-sdk-funding", + "penumbra-sdk-governance", + "penumbra-sdk-ibc", + "penumbra-sdk-keys", + "penumbra-sdk-mock-client", + "penumbra-sdk-mock-consensus", + "penumbra-sdk-mock-tendermint-proxy", + "penumbra-sdk-num", + "penumbra-sdk-proof-params", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-stake", + "penumbra-sdk-tct", + "penumbra-sdk-test-subscriber", + "penumbra-sdk-tower-trace", + "penumbra-sdk-transaction", + "penumbra-sdk-txhash", + "prost 0.13.4", + "rand", + "rand_chacha", + "rand_core", + "regex", + "serde", + "serde_json", + "serde_unit_struct", + "serde_with", + "sha2 0.10.8", + "tap", + "tempfile", + "tendermint 0.40.1", + "tendermint-config", + "tendermint-light-client-verifier", + "tendermint-proto 0.40.1", + "tokio", + "tokio-util 0.7.11", + "tonic", + "tonic-reflection", + "tonic-web", + "tower 0.4.13", + "tower-abci 0.18.0", + "tower-actor", + "tower-http 0.6.2", + "tower-service", + "tracing", + "tracing-subscriber 0.3.18", + "url", +] + +[[package]] +name = "penumbra-sdk-app-tests" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -4693,34 +4780,35 @@ dependencies = [ "metrics 0.24.1", "once_cell", "parking_lot", - "penumbra-asset", - "penumbra-auction", - "penumbra-community-pool", - "penumbra-compact-block", - "penumbra-dex", - "penumbra-distributions", - "penumbra-fee", - "penumbra-funding", - "penumbra-governance", - "penumbra-ibc", - "penumbra-keys", - "penumbra-mock-client", - "penumbra-mock-consensus", - "penumbra-mock-tendermint-proxy", - "penumbra-num", - "penumbra-proof-params", - "penumbra-proto", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-stake", - "penumbra-tct", - "penumbra-test-subscriber", - "penumbra-tower-trace", - "penumbra-transaction", - "penumbra-txhash", - "penumbra-view", - "penumbra-wallet", - "prost", + "penumbra-sdk-app", + "penumbra-sdk-asset", + "penumbra-sdk-auction", + "penumbra-sdk-community-pool", + "penumbra-sdk-compact-block", + "penumbra-sdk-dex", + "penumbra-sdk-distributions", + "penumbra-sdk-fee", + "penumbra-sdk-funding", + "penumbra-sdk-governance", + "penumbra-sdk-ibc", + "penumbra-sdk-keys", + "penumbra-sdk-mock-client", + "penumbra-sdk-mock-consensus", + "penumbra-sdk-mock-tendermint-proxy", + "penumbra-sdk-num", + "penumbra-sdk-proof-params", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-stake", + "penumbra-sdk-tct", + "penumbra-sdk-test-subscriber", + "penumbra-sdk-tower-trace", + "penumbra-sdk-transaction", + "penumbra-sdk-txhash", + "penumbra-sdk-view", + "penumbra-sdk-wallet", + "prost 0.13.4", "rand", "rand_chacha", "rand_core", @@ -4732,17 +4820,17 @@ dependencies = [ "sha2 0.10.8", "tap", "tempfile", - "tendermint", + "tendermint 0.40.1", "tendermint-config", "tendermint-light-client-verifier", - "tendermint-proto", + "tendermint-proto 0.40.1", "tokio", "tokio-util 0.7.11", "tonic", "tonic-reflection", "tonic-web", "tower 0.4.13", - "tower-abci", + "tower-abci 0.11.1", "tower-actor", "tower-http 0.6.2", "tower-service", @@ -4752,8 +4840,8 @@ dependencies = [ ] [[package]] -name = "penumbra-asset" -version = "0.81.3" +name = "penumbra-sdk-asset" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -4776,8 +4864,8 @@ dependencies = [ "num-bigint", "once_cell", "pbjson-types", - "penumbra-num", - "penumbra-proto", + "penumbra-sdk-num", + "penumbra-sdk-proto", "poseidon377", "proptest", "rand", @@ -4792,8 +4880,8 @@ dependencies = [ ] [[package]] -name = "penumbra-auction" -version = "0.81.3" +name = "penumbra-sdk-auction" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -4819,19 +4907,19 @@ dependencies = [ "metrics 0.24.1", "once_cell", "pbjson-types", - "penumbra-asset", - "penumbra-dex", - "penumbra-keys", - "penumbra-num", - "penumbra-proof-params", - "penumbra-proto", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-tct", - "penumbra-txhash", + "penumbra-sdk-asset", + "penumbra-sdk-dex", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proof-params", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-tct", + "penumbra-sdk-txhash", "proptest", - "prost", - "prost-types", + "prost 0.13.4", + "prost-types 0.13.4", "rand_chacha", "rand_core", "regex", @@ -4839,7 +4927,7 @@ dependencies = [ "serde_with", "sha2 0.10.8", "tap", - "tendermint", + "tendermint 0.40.1", "tokio", "tonic", "tracing", @@ -4847,8 +4935,8 @@ dependencies = [ ] [[package]] -name = "penumbra-auto-https" -version = "0.81.3" +name = "penumbra-sdk-auto-https" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "axum-server", @@ -4859,8 +4947,8 @@ dependencies = [ ] [[package]] -name = "penumbra-bench" -version = "0.81.3" +name = "penumbra-sdk-bench" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-bls12-377", @@ -4881,17 +4969,17 @@ dependencies = [ "hex", "num-bigint", "once_cell", - "penumbra-asset", - "penumbra-dex", - "penumbra-fee", - "penumbra-governance", - "penumbra-keys", - "penumbra-num", - "penumbra-proof-params", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-stake", - "penumbra-tct", + "penumbra-sdk-asset", + "penumbra-sdk-dex", + "penumbra-sdk-fee", + "penumbra-sdk-governance", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proof-params", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-stake", + "penumbra-sdk-tct", "rand", "rand_core", "regex", @@ -4903,8 +4991,8 @@ dependencies = [ ] [[package]] -name = "penumbra-community-pool" -version = "0.81.3" +name = "penumbra-sdk-community-pool" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -4918,25 +5006,25 @@ dependencies = [ "metrics 0.24.1", "once_cell", "pbjson-types", - "penumbra-asset", - "penumbra-keys", - "penumbra-num", - "penumbra-proto", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-txhash", - "prost", + "penumbra-sdk-asset", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-txhash", + "prost 0.13.4", "serde", "sha2 0.10.8", - "tendermint", + "tendermint 0.40.1", "tendermint-light-client-verifier", "tokio", "tracing", ] [[package]] -name = "penumbra-compact-block" -version = "0.81.3" +name = "penumbra-sdk-compact-block" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -4949,20 +5037,20 @@ dependencies = [ "futures", "im", "metrics 0.24.1", - "penumbra-dex", - "penumbra-fee", - "penumbra-governance", - "penumbra-ibc", - "penumbra-proof-params", - "penumbra-proto", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-stake", - "penumbra-tct", + "penumbra-sdk-dex", + "penumbra-sdk-fee", + "penumbra-sdk-governance", + "penumbra-sdk-ibc", + "penumbra-sdk-proof-params", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-stake", + "penumbra-sdk-tct", "rand", "rand_core", "serde", - "tendermint", + "tendermint 0.40.1", "tokio", "tokio-stream", "tonic", @@ -4970,8 +5058,8 @@ dependencies = [ ] [[package]] -name = "penumbra-custody" -version = "0.81.3" +name = "penumbra-sdk-custody" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "argon2", @@ -4988,13 +5076,13 @@ dependencies = [ "ed25519-consensus", "futures", "hex", - "penumbra-governance", - "penumbra-keys", - "penumbra-proto", - "penumbra-stake", - "penumbra-transaction", - "penumbra-txhash", - "prost", + "penumbra-sdk-governance", + "penumbra-sdk-keys", + "penumbra-sdk-proto", + "penumbra-sdk-stake", + "penumbra-sdk-transaction", + "penumbra-sdk-txhash", + "prost 0.13.4", "rand_core", "serde", "serde_json", @@ -5006,8 +5094,8 @@ dependencies = [ ] [[package]] -name = "penumbra-dex" -version = "0.81.3" +name = "penumbra-sdk-dex" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -5036,19 +5124,19 @@ dependencies = [ "once_cell", "parking_lot", "pbjson-types", - "penumbra-asset", - "penumbra-fee", - "penumbra-keys", - "penumbra-num", - "penumbra-proof-params", - "penumbra-proto", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-tct", - "penumbra-txhash", + "penumbra-sdk-asset", + "penumbra-sdk-fee", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proof-params", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-tct", + "penumbra-sdk-txhash", "poseidon377", "proptest", - "prost", + "prost 0.13.4", "rand", "rand_chacha", "rand_core", @@ -5057,7 +5145,7 @@ dependencies = [ "serde_json", "sha2 0.10.8", "tap", - "tendermint", + "tendermint 0.40.1", "tendermint-light-client-verifier", "thiserror 1.0.61", "tokio", @@ -5068,26 +5156,26 @@ dependencies = [ ] [[package]] -name = "penumbra-distributions" -version = "0.81.3" +name = "penumbra-sdk-distributions" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "async-trait", "cnidarium", "cnidarium-component", "getrandom", - "penumbra-asset", - "penumbra-num", - "penumbra-proto", - "penumbra-sct", + "penumbra-sdk-asset", + "penumbra-sdk-num", + "penumbra-sdk-proto", + "penumbra-sdk-sct", "serde", - "tendermint", + "tendermint 0.40.1", "tracing", ] [[package]] -name = "penumbra-eddy" -version = "0.81.3" +name = "penumbra-sdk-eddy" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -5104,8 +5192,8 @@ dependencies = [ ] [[package]] -name = "penumbra-fee" -version = "0.81.3" +name = "penumbra-sdk-fee" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -5119,20 +5207,20 @@ dependencies = [ "getrandom", "im", "metrics 0.24.1", - "penumbra-asset", - "penumbra-num", - "penumbra-proto", + "penumbra-sdk-asset", + "penumbra-sdk-num", + "penumbra-sdk-proto", "rand", "rand_core", "serde", - "tendermint", + "tendermint 0.40.1", "tonic", "tracing", ] [[package]] -name = "penumbra-funding" -version = "0.81.3" +name = "penumbra-sdk-funding" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "async-trait", @@ -5140,22 +5228,22 @@ dependencies = [ "cnidarium-component", "futures", "metrics 0.24.1", - "penumbra-asset", - "penumbra-community-pool", - "penumbra-distributions", - "penumbra-num", - "penumbra-proto", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-stake", + "penumbra-sdk-asset", + "penumbra-sdk-community-pool", + "penumbra-sdk-distributions", + "penumbra-sdk-num", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-stake", "serde", - "tendermint", + "tendermint 0.40.1", "tracing", ] [[package]] -name = "penumbra-governance" -version = "0.81.3" +name = "penumbra-sdk-governance" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -5179,18 +5267,18 @@ dependencies = [ "metrics 0.24.1", "once_cell", "pbjson-types", - "penumbra-asset", - "penumbra-distributions", - "penumbra-ibc", - "penumbra-keys", - "penumbra-num", - "penumbra-proof-params", - "penumbra-proto", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-stake", - "penumbra-tct", - "penumbra-txhash", + "penumbra-sdk-asset", + "penumbra-sdk-distributions", + "penumbra-sdk-ibc", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proof-params", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-stake", + "penumbra-sdk-tct", + "penumbra-sdk-txhash", "proptest", "proptest-derive", "rand", @@ -5200,7 +5288,7 @@ dependencies = [ "serde", "serde_json", "tap", - "tendermint", + "tendermint 0.40.1", "thiserror 1.0.61", "tokio", "tonic", @@ -5208,8 +5296,8 @@ dependencies = [ ] [[package]] -name = "penumbra-ibc" -version = "0.81.3" +name = "penumbra-sdk-ibc" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -5226,16 +5314,16 @@ dependencies = [ "num-traits", "once_cell", "pbjson-types", - "penumbra-asset", - "penumbra-num", - "penumbra-proto", - "penumbra-sct", - "penumbra-txhash", - "prost", + "penumbra-sdk-asset", + "penumbra-sdk-num", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-txhash", + "prost 0.13.4", "serde", "serde_json", "sha2 0.10.8", - "tendermint", + "tendermint 0.40.1", "tendermint-light-client-verifier", "time", "tokio", @@ -5245,8 +5333,8 @@ dependencies = [ ] [[package]] -name = "penumbra-keys" -version = "0.81.3" +name = "penumbra-sdk-keys" +version = "0.82.0-alpha.3" dependencies = [ "aes", "anyhow", @@ -5276,9 +5364,9 @@ dependencies = [ "num-traits", "once_cell", "pbkdf2 0.12.2", - "penumbra-asset", - "penumbra-proto", - "penumbra-tct", + "penumbra-sdk-asset", + "penumbra-sdk-proto", + "penumbra-sdk-tct", "poseidon377", "proptest", "rand", @@ -5292,17 +5380,17 @@ dependencies = [ ] [[package]] -name = "penumbra-measure" -version = "0.81.3" +name = "penumbra-sdk-measure" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "assert_cmd", "bytesize", "clap", "indicatif", - "penumbra-compact-block", - "penumbra-proto", - "penumbra-view", + "penumbra-sdk-compact-block", + "penumbra-sdk-proto", + "penumbra-sdk-view", "predicates 2.1.5", "rustls 0.23.21", "serde_json", @@ -5314,60 +5402,60 @@ dependencies = [ ] [[package]] -name = "penumbra-mock-client" -version = "0.81.3" +name = "penumbra-sdk-mock-client" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "cnidarium", - "penumbra-asset", - "penumbra-compact-block", - "penumbra-dex", - "penumbra-keys", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-tct", - "penumbra-transaction", + "penumbra-sdk-asset", + "penumbra-sdk-compact-block", + "penumbra-sdk-dex", + "penumbra-sdk-keys", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-tct", + "penumbra-sdk-transaction", "rand_core", ] [[package]] -name = "penumbra-mock-consensus" -version = "0.81.3" +name = "penumbra-sdk-mock-consensus" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "bytes", "ed25519-consensus", "hex", - "prost", + "prost 0.13.4", "rand_core", "serde", "serde_json", "sha2 0.10.8", "tap", - "tendermint", - "tendermint-proto", + "tendermint 0.40.1", + "tendermint-proto 0.40.1", "tower 0.4.13", "tracing", ] [[package]] -name = "penumbra-mock-tendermint-proxy" -version = "0.81.3" +name = "penumbra-sdk-mock-tendermint-proxy" +version = "0.82.0-alpha.3" dependencies = [ "hex", "pbjson-types", - "penumbra-mock-consensus", - "penumbra-proto", + "penumbra-sdk-mock-consensus", + "penumbra-sdk-proto", "tap", - "tendermint", - "tendermint-proto", + "tendermint 0.40.1", + "tendermint-proto 0.40.1", "tonic", "tracing", ] [[package]] -name = "penumbra-num" -version = "0.81.3" +name = "penumbra-sdk-num" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -5390,7 +5478,7 @@ dependencies = [ "ibig", "num-bigint", "once_cell", - "penumbra-proto", + "penumbra-sdk-proto", "proptest", "rand", "rand_core", @@ -5403,25 +5491,25 @@ dependencies = [ ] [[package]] -name = "penumbra-parameter-setup" -version = "0.81.3" +name = "penumbra-sdk-parameter-setup" +version = "0.82.0-alpha.3" dependencies = [ "ark-groth16", "ark-serialize", "decaf377", - "penumbra-community-pool", - "penumbra-dex", - "penumbra-governance", - "penumbra-proof-params", - "penumbra-proof-setup", - "penumbra-shielded-pool", - "penumbra-stake", + "penumbra-sdk-community-pool", + "penumbra-sdk-dex", + "penumbra-sdk-governance", + "penumbra-sdk-proof-params", + "penumbra-sdk-proof-setup", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-stake", "rand_core", ] [[package]] -name = "penumbra-proof-params" -version = "0.81.3" +name = "penumbra-sdk-proof-params" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ec", @@ -5448,8 +5536,8 @@ dependencies = [ ] [[package]] -name = "penumbra-proof-setup" -version = "0.81.3" +name = "penumbra-sdk-proof-setup" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ec", @@ -5463,20 +5551,20 @@ dependencies = [ "blake2b_simd 1.0.2", "criterion", "decaf377", - "penumbra-dex", - "penumbra-governance", - "penumbra-proof-params", - "penumbra-proto", - "penumbra-shielded-pool", - "penumbra-stake", + "penumbra-sdk-dex", + "penumbra-sdk-governance", + "penumbra-sdk-proof-params", + "penumbra-sdk-proto", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-stake", "rand_chacha", "rand_core", "rayon", ] [[package]] -name = "penumbra-proto" -version = "0.81.3" +name = "penumbra-sdk-proto" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "async-trait", @@ -5496,12 +5584,12 @@ dependencies = [ "pbjson", "pbjson-types", "pin-project", - "prost", + "prost 0.13.4", "serde", "serde_json", "subtle-encoding", - "tendermint", - "tendermint-proto", + "tendermint 0.40.1", + "tendermint-proto 0.40.1", "tendermint-rpc", "thiserror 1.0.61", "tonic", @@ -5510,8 +5598,8 @@ dependencies = [ ] [[package]] -name = "penumbra-sct" -version = "0.81.3" +name = "penumbra-sdk-sct" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -5533,21 +5621,21 @@ dependencies = [ "metrics 0.24.1", "once_cell", "pbjson-types", - "penumbra-keys", - "penumbra-proto", - "penumbra-tct", + "penumbra-sdk-keys", + "penumbra-sdk-proto", + "penumbra-sdk-tct", "poseidon377", "rand", "rand_core", "serde", - "tendermint", + "tendermint 0.40.1", "tonic", "tracing", ] [[package]] -name = "penumbra-shielded-pool" -version = "0.81.3" +name = "penumbra-sdk-shielded-pool" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -5575,33 +5663,33 @@ dependencies = [ "im", "metrics 0.24.1", "once_cell", - "penumbra-asset", - "penumbra-ibc", - "penumbra-keys", - "penumbra-num", - "penumbra-proof-params", - "penumbra-proto", - "penumbra-sct", - "penumbra-tct", - "penumbra-txhash", + "penumbra-sdk-asset", + "penumbra-sdk-ibc", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proof-params", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-tct", + "penumbra-sdk-txhash", "poseidon377", "proptest", - "prost", + "prost 0.13.4", "rand", "rand_core", "regex", "serde", "serde_json", "tap", - "tendermint", + "tendermint 0.40.1", "thiserror 1.0.61", "tonic", "tracing", ] [[package]] -name = "penumbra-stake" -version = "0.81.3" +name = "penumbra-sdk-stake" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -5626,16 +5714,16 @@ dependencies = [ "im", "metrics 0.24.1", "once_cell", - "penumbra-asset", - "penumbra-distributions", - "penumbra-keys", - "penumbra-num", - "penumbra-proof-params", - "penumbra-proto", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-tct", - "penumbra-txhash", + "penumbra-sdk-asset", + "penumbra-sdk-distributions", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proof-params", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-tct", + "penumbra-sdk-txhash", "proptest", "rand_chacha", "rand_core", @@ -5645,7 +5733,7 @@ dependencies = [ "serde_with", "sha2 0.10.8", "tap", - "tendermint", + "tendermint 0.40.1", "tokio", "tonic", "tracing", @@ -5653,8 +5741,8 @@ dependencies = [ ] [[package]] -name = "penumbra-tct" -version = "0.81.3" +name = "penumbra-sdk-tct" +version = "0.82.0-alpha.3" dependencies = [ "ark-ed-on-bls12-377", "ark-ff", @@ -5672,7 +5760,7 @@ dependencies = [ "im", "once_cell", "parking_lot", - "penumbra-proto", + "penumbra-sdk-proto", "poseidon377", "proptest", "proptest-derive", @@ -5685,20 +5773,20 @@ dependencies = [ ] [[package]] -name = "penumbra-tct-property-test" -version = "0.81.3" +name = "penumbra-sdk-tct-property-test" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "futures", - "penumbra-tct", + "penumbra-sdk-tct", "proptest", "proptest-derive", "tokio", ] [[package]] -name = "penumbra-tct-visualize" -version = "0.81.3" +name = "penumbra-sdk-tct-visualize" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "axum", @@ -5711,8 +5799,8 @@ dependencies = [ "hex", "include-flate", "parking_lot", - "penumbra-tct", - "prost", + "penumbra-sdk-tct", + "prost 0.13.4", "rand", "rand_chacha", "rand_distr", @@ -5728,8 +5816,8 @@ dependencies = [ ] [[package]] -name = "penumbra-tendermint-proxy" -version = "0.81.3" +name = "penumbra-sdk-tendermint-proxy" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "chrono", @@ -5738,16 +5826,16 @@ dependencies = [ "http 1.2.0", "metrics 0.24.1", "pbjson-types", - "penumbra-proto", - "penumbra-transaction", + "penumbra-sdk-proto", + "penumbra-sdk-transaction", "pin-project", "pin-project-lite", "sha2 0.10.8", "tap", - "tendermint", + "tendermint 0.40.1", "tendermint-config", "tendermint-light-client-verifier", - "tendermint-proto", + "tendermint-proto 0.40.1", "tendermint-rpc", "tokio", "tokio-stream", @@ -5760,16 +5848,16 @@ dependencies = [ ] [[package]] -name = "penumbra-test-subscriber" -version = "0.81.3" +name = "penumbra-sdk-test-subscriber" +version = "0.82.0-alpha.3" dependencies = [ "tracing", "tracing-subscriber 0.3.18", ] [[package]] -name = "penumbra-tower-trace" -version = "0.81.3" +name = "penumbra-sdk-tower-trace" +version = "0.82.0-alpha.3" dependencies = [ "futures", "hex", @@ -5777,8 +5865,8 @@ dependencies = [ "pin-project", "pin-project-lite", "sha2 0.10.8", - "tendermint", - "tendermint-proto", + "tendermint 0.40.1", + "tendermint-proto 0.40.1", "tokio", "tokio-stream", "tokio-util 0.7.11", @@ -5789,8 +5877,8 @@ dependencies = [ ] [[package]] -name = "penumbra-transaction" -version = "0.81.3" +name = "penumbra-sdk-transaction" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-ff", @@ -5812,22 +5900,22 @@ dependencies = [ "num-bigint", "once_cell", "pbjson-types", - "penumbra-asset", - "penumbra-auction", - "penumbra-community-pool", - "penumbra-dex", - "penumbra-fee", - "penumbra-governance", - "penumbra-ibc", - "penumbra-keys", - "penumbra-num", - "penumbra-proof-params", - "penumbra-proto", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-stake", - "penumbra-tct", - "penumbra-txhash", + "penumbra-sdk-asset", + "penumbra-sdk-auction", + "penumbra-sdk-community-pool", + "penumbra-sdk-dex", + "penumbra-sdk-fee", + "penumbra-sdk-governance", + "penumbra-sdk-ibc", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proof-params", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-stake", + "penumbra-sdk-tct", + "penumbra-sdk-txhash", "poseidon377", "proptest", "proptest-derive", @@ -5837,28 +5925,28 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.8", - "tendermint", + "tendermint 0.40.1", "thiserror 1.0.61", "tokio", "tracing", ] [[package]] -name = "penumbra-txhash" -version = "0.81.3" +name = "penumbra-sdk-txhash" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "blake2b_simd 1.0.2", "getrandom", "hex", - "penumbra-proto", - "penumbra-tct", + "penumbra-sdk-proto", + "penumbra-sdk-tct", "serde", ] [[package]] -name = "penumbra-view" -version = "0.81.3" +name = "penumbra-sdk-view" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-std", @@ -5878,26 +5966,26 @@ dependencies = [ "once_cell", "parking_lot", "pbjson-types", - "penumbra-app", - "penumbra-asset", - "penumbra-auction", - "penumbra-community-pool", - "penumbra-compact-block", - "penumbra-dex", - "penumbra-distributions", - "penumbra-fee", - "penumbra-funding", - "penumbra-governance", - "penumbra-ibc", - "penumbra-keys", - "penumbra-num", - "penumbra-proto", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-stake", - "penumbra-tct", - "penumbra-transaction", - "prost", + "penumbra-sdk-app", + "penumbra-sdk-asset", + "penumbra-sdk-auction", + "penumbra-sdk-community-pool", + "penumbra-sdk-compact-block", + "penumbra-sdk-dex", + "penumbra-sdk-distributions", + "penumbra-sdk-fee", + "penumbra-sdk-funding", + "penumbra-sdk-governance", + "penumbra-sdk-ibc", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-stake", + "penumbra-sdk-tct", + "penumbra-sdk-transaction", + "prost 0.13.4", "r2d2", "r2d2_sqlite", "rand", @@ -5906,7 +5994,7 @@ dependencies = [ "serde_json", "sha2 0.10.8", "tap", - "tendermint", + "tendermint 0.40.1", "tokio", "tokio-stream", "tonic", @@ -5916,8 +6004,8 @@ dependencies = [ ] [[package]] -name = "penumbra-wallet" -version = "0.81.3" +name = "penumbra-sdk-wallet" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-std", @@ -5926,20 +6014,20 @@ dependencies = [ "decaf377", "hex", "once_cell", - "penumbra-app", - "penumbra-asset", - "penumbra-custody", - "penumbra-dex", - "penumbra-fee", - "penumbra-governance", - "penumbra-keys", - "penumbra-num", - "penumbra-proto", - "penumbra-sct", - "penumbra-stake", - "penumbra-tct", - "penumbra-transaction", - "penumbra-view", + "penumbra-sdk-app", + "penumbra-sdk-asset", + "penumbra-sdk-custody", + "penumbra-sdk-dex", + "penumbra-sdk-fee", + "penumbra-sdk-governance", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-stake", + "penumbra-sdk-tct", + "penumbra-sdk-transaction", + "penumbra-sdk-view", "pin-project", "proptest", "proptest-derive", @@ -6003,7 +6091,7 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pindexer" -version = "0.81.3" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "chrono", @@ -6011,20 +6099,20 @@ dependencies = [ "cometindex", "ethnum", "num-bigint", - "penumbra-app", - "penumbra-asset", - "penumbra-auction", - "penumbra-dex", - "penumbra-fee", - "penumbra-funding", - "penumbra-governance", - "penumbra-keys", - "penumbra-num", - "penumbra-proto", - "penumbra-sct", - "penumbra-shielded-pool", - "penumbra-stake", - "prost", + "penumbra-sdk-app", + "penumbra-sdk-asset", + "penumbra-sdk-auction", + "penumbra-sdk-dex", + "penumbra-sdk-fee", + "penumbra-sdk-funding", + "penumbra-sdk-governance", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proto", + "penumbra-sdk-sct", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-stake", + "prost 0.13.4", "serde_json", "sqlx", "tokio", @@ -6099,7 +6187,7 @@ dependencies = [ [[package]] name = "pmonitor" -version = "0.81.3" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "assert_cmd", @@ -6111,16 +6199,16 @@ dependencies = [ "indicatif", "once_cell", "pcli", - "penumbra-app", - "penumbra-asset", - "penumbra-compact-block", - "penumbra-keys", - "penumbra-num", - "penumbra-proto", - "penumbra-shielded-pool", - "penumbra-stake", - "penumbra-tct", - "penumbra-view", + "penumbra-sdk-app", + "penumbra-sdk-asset", + "penumbra-sdk-compact-block", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proto", + "penumbra-sdk-shielded-pool", + "penumbra-sdk-stake", + "penumbra-sdk-tct", + "penumbra-sdk-view", "regex", "rustls 0.23.21", "serde", @@ -6433,6 +6521,16 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", +] + [[package]] name = "prost" version = "0.13.4" @@ -6440,7 +6538,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.13.4", ] [[package]] @@ -6450,19 +6548,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0f3e5beed80eb580c68e2c600937ac2c4eedabdfd5ef1e5b7ea4f3fba84497b" dependencies = [ "heck 0.5.0", - "itertools 0.12.1", + "itertools 0.13.0", "log", "multimap", "once_cell", "petgraph", "prettyplease", - "prost", - "prost-types", + "prost 0.13.4", + "prost-types 0.13.4", "regex", "syn 2.0.96", "tempfile", ] +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2 1.0.93", + "quote", + "syn 2.0.96", +] + [[package]] name = "prost-derive" version = "0.13.4" @@ -6470,7 +6581,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" dependencies = [ "anyhow", - "itertools 0.12.1", + "itertools 0.13.0", "proc-macro2 1.0.93", "quote", "syn 2.0.96", @@ -6483,8 +6594,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc9647f03b808b79abca8408b1609be9887ba90453c940d00332a60eeb6f5748" dependencies = [ "once_cell", - "prost", - "prost-types", + "prost 0.13.4", + "prost-types 0.13.4", +] + +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost 0.12.6", ] [[package]] @@ -6493,7 +6613,7 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" dependencies = [ - "prost", + "prost 0.13.4", ] [[package]] @@ -7893,7 +8013,7 @@ checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" [[package]] name = "summonerd" -version = "0.81.3" +version = "0.82.0-alpha.3" dependencies = [ "anyhow", "ark-groth16", @@ -7910,13 +8030,13 @@ dependencies = [ "hex", "http-body 1.0.1", "metrics-tracing-context", - "penumbra-asset", - "penumbra-keys", - "penumbra-num", - "penumbra-proof-params", - "penumbra-proof-setup", - "penumbra-proto", - "penumbra-view", + "penumbra-sdk-asset", + "penumbra-sdk-keys", + "penumbra-sdk-num", + "penumbra-sdk-proof-params", + "penumbra-sdk-proof-setup", + "penumbra-sdk-proto", + "penumbra-sdk-view", "r2d2", "r2d2_sqlite", "rand", @@ -8072,6 +8192,35 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "tendermint" +version = "0.34.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15ab8f0a25d0d2ad49ac615da054d6a76aa6603ff95f7d18bafdd34450a1a04b" +dependencies = [ + "bytes", + "digest 0.10.7", + "ed25519", + "ed25519-consensus", + "flex-error", + "futures", + "num-traits", + "once_cell", + "prost 0.12.6", + "prost-types 0.12.6", + "serde", + "serde_bytes", + "serde_json", + "serde_repr", + "sha2 0.10.8", + "signature", + "subtle", + "subtle-encoding", + "tendermint-proto 0.34.1", + "time", + "zeroize", +] + [[package]] name = "tendermint" version = "0.40.1" @@ -8086,7 +8235,7 @@ dependencies = [ "futures", "num-traits", "once_cell", - "prost", + "prost 0.13.4", "serde", "serde_bytes", "serde_json", @@ -8095,7 +8244,7 @@ dependencies = [ "signature", "subtle", "subtle-encoding", - "tendermint-proto", + "tendermint-proto 0.40.1", "time", "zeroize", ] @@ -8109,7 +8258,7 @@ dependencies = [ "flex-error", "serde", "serde_json", - "tendermint", + "tendermint 0.40.1", "toml 0.8.15", "url", ] @@ -8123,7 +8272,25 @@ dependencies = [ "derive_more", "flex-error", "serde", - "tendermint", + "tendermint 0.40.1", + "time", +] + +[[package]] +name = "tendermint-proto" +version = "0.34.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b797dd3d2beaaee91d2f065e7bdf239dc8d80bba4a183a288bc1279dd5a69a1e" +dependencies = [ + "bytes", + "flex-error", + "num-derive", + "num-traits", + "prost 0.12.6", + "prost-types 0.12.6", + "serde", + "serde_bytes", + "subtle-encoding", "time", ] @@ -8135,7 +8302,7 @@ checksum = "9ae9e1705aa0fa5ecb2c6aa7fb78c2313c4a31158ea5f02048bf318f849352eb" dependencies = [ "bytes", "flex-error", - "prost", + "prost 0.13.4", "serde", "serde_bytes", "subtle-encoding", @@ -8163,9 +8330,9 @@ dependencies = [ "serde_json", "subtle", "subtle-encoding", - "tendermint", + "tendermint 0.40.1", "tendermint-config", - "tendermint-proto", + "tendermint-proto 0.40.1", "thiserror 1.0.61", "time", "tokio", @@ -8517,7 +8684,7 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost", + "prost 0.13.4", "rustls-pemfile 2.2.0", "socket2", "tokio", @@ -8536,8 +8703,8 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "878d81f52e7fcfd80026b7fdb6a9b578b3c3653ba987f87f0dce4b64043cba27" dependencies = [ - "prost", - "prost-types", + "prost 0.13.4", + "prost-types 0.13.4", "tokio", "tokio-stream", "tonic", @@ -8600,6 +8767,25 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower-abci" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d4826f3df3e9a37083d978cae73f020bcdf6143956b7dfc1bd6050b4e16367c" +dependencies = [ + "bytes", + "futures", + "pin-project", + "prost 0.12.6", + "tendermint 0.34.1", + "tendermint-proto 0.34.1", + "tokio", + "tokio-stream", + "tokio-util 0.6.10", + "tower 0.4.13", + "tracing", +] + [[package]] name = "tower-abci" version = "0.18.0" @@ -8609,9 +8795,9 @@ dependencies = [ "bytes", "futures", "pin-project", - "prost", - "tendermint", - "tendermint-proto", + "prost 0.13.4", + "tendermint 0.40.1", + "tendermint-proto 0.40.1", "tokio", "tokio-stream", "tokio-util 0.6.10", diff --git a/Cargo.toml b/Cargo.toml index dd92e7af00..9769a78f96 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,7 @@ members = [ "crates/bin/pmonitor", "crates/cnidarium-component", "crates/core/app", + "crates/core/app-tests", "crates/core/asset", "crates/core/component/community-pool", "crates/core/component/compact-block", @@ -95,7 +96,7 @@ tag-name = "v{{version}}" tag-message = "Penumbra version {{version}}" pre-release-commit-message = "chore: release version {{version}}" # Don't push to crates.io; we're still using git branches for velocity. -publish = false +publish = true # Do commit, tag, and push the version bump, triggering a new release. tag = true # Don't push, since we're still evaluating the new release workflow. @@ -104,7 +105,7 @@ push = false [workspace.package] authors = ["Penumbra Labs x, CustodyConfig::SoftKms(spend_key) => { let password = ActualTerminal::get_confirmed_password().await?; - CustodyConfig::Encrypted(penumbra_custody::encrypted::Config::create( + CustodyConfig::Encrypted(penumbra_sdk_custody::encrypted::Config::create( &password, - penumbra_custody::encrypted::InnerConfig::SoftKms(spend_key), + penumbra_sdk_custody::encrypted::InnerConfig::SoftKms(spend_key), )?) } CustodyConfig::Threshold(c) => { let password = ActualTerminal::get_confirmed_password().await?; - CustodyConfig::Encrypted(penumbra_custody::encrypted::Config::create( + CustodyConfig::Encrypted(penumbra_sdk_custody::encrypted::Config::create( &password, - penumbra_custody::encrypted::InnerConfig::Threshold(c), + penumbra_sdk_custody::encrypted::InnerConfig::Threshold(c), )?) } }; diff --git a/crates/bin/pcli/src/command/migrate.rs b/crates/bin/pcli/src/command/migrate.rs index 4ef7228dd4..efeaa7235e 100644 --- a/crates/bin/pcli/src/command/migrate.rs +++ b/crates/bin/pcli/src/command/migrate.rs @@ -1,11 +1,11 @@ use crate::App; use anyhow::{anyhow, Context, Result}; -use penumbra_asset::{asset, Value, STAKING_TOKEN_ASSET_ID}; -use penumbra_keys::FullViewingKey; -use penumbra_num::Amount; -use penumbra_proto::view::v1::GasPricesRequest; -use penumbra_view::ViewClient; -use penumbra_wallet::plan::Planner; +use penumbra_sdk_asset::{asset, Value, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::view::v1::GasPricesRequest; +use penumbra_sdk_view::ViewClient; +use penumbra_sdk_wallet::plan::Planner; use rand_core::OsRng; use std::{collections::HashMap, io::Write}; use termion::input::TermRead; diff --git a/crates/bin/pcli/src/command/query.rs b/crates/bin/pcli/src/command/query.rs index 7851606792..f2657b3cc6 100644 --- a/crates/bin/pcli/src/command/query.rs +++ b/crates/bin/pcli/src/command/query.rs @@ -141,7 +141,7 @@ impl QueryCmd { // TODO: this is a hack; we should replace all raw state key uses with RPC methods. if let QueryCmd::ShieldedPool(ShieldedPool::CompactBlock { height }) = self { - use penumbra_proto::core::component::compact_block::v1::{ + use penumbra_sdk_proto::core::component::compact_block::v1::{ query_service_client::QueryServiceClient as CompactBlockQueryServiceClient, CompactBlockRequest, }; diff --git a/crates/bin/pcli/src/command/query/auction.rs b/crates/bin/pcli/src/command/query/auction.rs index d75d1536a6..d7c250d699 100644 --- a/crates/bin/pcli/src/command/query/auction.rs +++ b/crates/bin/pcli/src/command/query/auction.rs @@ -3,21 +3,21 @@ use crate::App; use clap::Subcommand; use comfy_table::{presets, Table}; use comfy_table::{Cell, ContentArrangement}; -use penumbra_asset::asset::Cache; -use penumbra_asset::Value; -use penumbra_auction::auction::dutch::DutchAuction; -use penumbra_auction::auction::AuctionId; -use penumbra_dex::lp::position::{self, Position}; -use penumbra_num::fixpoint::U128x128; -use penumbra_num::Amount; -use penumbra_proto::core::component::auction::v1 as pb_auction; -use penumbra_proto::core::component::auction::v1::query_service_client::QueryServiceClient as AuctionQueryServiceClient; -use penumbra_proto::core::component::auction::v1::AuctionStateByIdRequest; -use penumbra_proto::core::component::dex::v1::query_service_client::QueryServiceClient as DexQueryServiceClient; -use penumbra_proto::core::component::dex::v1::LiquidityPositionByIdRequest; -use penumbra_proto::DomainType; -use penumbra_proto::Name; -use penumbra_view::ViewClient; +use penumbra_sdk_asset::asset::Cache; +use penumbra_sdk_asset::Value; +use penumbra_sdk_auction::auction::dutch::DutchAuction; +use penumbra_sdk_auction::auction::AuctionId; +use penumbra_sdk_dex::lp::position::{self, Position}; +use penumbra_sdk_num::fixpoint::U128x128; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::core::component::auction::v1 as pb_auction; +use penumbra_sdk_proto::core::component::auction::v1::query_service_client::QueryServiceClient as AuctionQueryServiceClient; +use penumbra_sdk_proto::core::component::auction::v1::AuctionStateByIdRequest; +use penumbra_sdk_proto::core::component::dex::v1::query_service_client::QueryServiceClient as DexQueryServiceClient; +use penumbra_sdk_proto::core::component::dex::v1::LiquidityPositionByIdRequest; +use penumbra_sdk_proto::DomainType; +use penumbra_sdk_proto::Name; +use penumbra_sdk_view::ViewClient; #[derive(Debug, Subcommand)] pub enum AuctionCmd { diff --git a/crates/bin/pcli/src/command/query/chain.rs b/crates/bin/pcli/src/command/query/chain.rs index 025efa58c5..97fcfb53cd 100644 --- a/crates/bin/pcli/src/command/query/chain.rs +++ b/crates/bin/pcli/src/command/query/chain.rs @@ -1,8 +1,8 @@ use anyhow::{anyhow, Context, Result}; use comfy_table::{presets, Table}; use futures::TryStreamExt; -use penumbra_app::params::AppParameters; -use penumbra_proto::{ +use penumbra_sdk_app::params::AppParameters; +use penumbra_sdk_proto::{ core::{ app::v1::{ query_service_client::QueryServiceClient as AppQueryServiceClient, AppParametersRequest, @@ -24,7 +24,7 @@ use penumbra_proto::{ }, Message, }; -use penumbra_stake::validator; +use penumbra_sdk_stake::validator; use crate::App; diff --git a/crates/bin/pcli/src/command/query/community_pool.rs b/crates/bin/pcli/src/command/query/community_pool.rs index 404e1d7d1c..777165ea94 100644 --- a/crates/bin/pcli/src/command/query/community_pool.rs +++ b/crates/bin/pcli/src/command/query/community_pool.rs @@ -1,12 +1,12 @@ use crate::App; use anyhow::{Context, Result}; use futures::TryStreamExt; -use penumbra_asset::Value; -use penumbra_proto::{ +use penumbra_sdk_asset::Value; +use penumbra_sdk_proto::{ core::component::community_pool::v1::CommunityPoolAssetBalancesRequest, penumbra::core::component::community_pool::v1::query_service_client::QueryServiceClient as CommunityPoolQueryServiceClient, }; -use penumbra_view::ViewClient; +use penumbra_sdk_view::ViewClient; use std::io::{stdout, Write}; #[derive(Debug, clap::Subcommand)] @@ -31,7 +31,7 @@ impl CommunityPoolCmd { if let Ok(asset_id) = asset.parse() { asset_id } else { - penumbra_asset::asset::REGISTRY + penumbra_sdk_asset::asset::REGISTRY .parse_unit(asset.as_str()) .id() } diff --git a/crates/bin/pcli/src/command/query/dex.rs b/crates/bin/pcli/src/command/query/dex.rs index f963980179..98063b596c 100644 --- a/crates/bin/pcli/src/command/query/dex.rs +++ b/crates/bin/pcli/src/command/query/dex.rs @@ -3,12 +3,12 @@ use comfy_table::{presets, Table}; use futures::{Stream, StreamExt, TryStreamExt}; use std::pin::Pin; -use penumbra_asset::{asset, asset::Metadata, Value}; -use penumbra_dex::{ +use penumbra_sdk_asset::{asset, asset::Metadata, Value}; +use penumbra_sdk_dex::{ lp::position::{self, Position}, BatchSwapOutputData, DirectedTradingPair, SwapExecution, TradingPair, }; -use penumbra_proto::core::component::{ +use penumbra_sdk_proto::core::component::{ dex::v1::{ query_service_client::QueryServiceClient as DexQueryServiceClient, simulation_service_client::SimulationServiceClient, ArbExecutionRequest, @@ -20,7 +20,7 @@ use penumbra_proto::core::component::{ AssetMetadataByIdRequest, }, }; -use penumbra_view::ViewClient; +use penumbra_sdk_view::ViewClient; use tonic::transport::Channel; use crate::{ @@ -154,7 +154,7 @@ impl DexCmd { input: Value, output: asset::Id, ) -> Result { - use penumbra_proto::core::component::dex::v1::simulate_trade_request::{ + use penumbra_sdk_proto::core::component::dex::v1::simulate_trade_request::{ routing::Setting, Routing, }; let mut client = SimulationServiceClient::new(app.pd_channel().await?); @@ -248,7 +248,7 @@ impl DexCmd { table.set_header(headers); let price_string = |input: Value, output: Value| -> String { - use penumbra_dex::lp::SellOrder; + use penumbra_sdk_dex::lp::SellOrder; format!( "{}/{}", SellOrder { diff --git a/crates/bin/pcli/src/command/query/governance.rs b/crates/bin/pcli/src/command/query/governance.rs index ec8241f5cf..6fb05a7209 100644 --- a/crates/bin/pcli/src/command/query/governance.rs +++ b/crates/bin/pcli/src/command/query/governance.rs @@ -5,14 +5,14 @@ use std::{ use anyhow::{Context, Result}; use futures::TryStreamExt; -use penumbra_governance::Vote; -use penumbra_proto::core::component::governance::v1::{ +use penumbra_sdk_governance::Vote; +use penumbra_sdk_proto::core::component::governance::v1::{ query_service_client::QueryServiceClient as GovernanceQueryServiceClient, AllTalliedDelegatorVotesForProposalRequest, ProposalDataRequest, ProposalListRequest, ProposalListResponse, ValidatorVotesRequest, ValidatorVotesResponse, VotingPowerAtProposalStartRequest, }; -use penumbra_stake::IdentityKey; +use penumbra_sdk_stake::IdentityKey; use serde::Serialize; use serde_json::json; @@ -169,7 +169,7 @@ impl GovernanceCmd { let mut delegator_tallies: BTreeMap< IdentityKey, - penumbra_governance::Tally, + penumbra_sdk_governance::Tally, > = client .all_tallied_delegator_votes_for_proposal( AllTalliedDelegatorVotesForProposalRequest { @@ -184,14 +184,13 @@ impl GovernanceCmd { .identity_key .expect("identity key must be set for vote response") .try_into()?; - let tally: penumbra_governance::Tally = response + let tally: penumbra_sdk_governance::Tally = response .tally .expect("tally must be set for vote response") .try_into()?; - Ok::<(IdentityKey, penumbra_governance::Tally), anyhow::Error>(( - identity_key, - tally, - )) + Ok::<(IdentityKey, penumbra_sdk_governance::Tally), anyhow::Error>( + (identity_key, tally), + ) }) // TODO: double iterator here is suboptimal but trying to collect // `Result>` was annoying @@ -201,7 +200,7 @@ impl GovernanceCmd { .collect::>>()?; // Combine the two mappings - let mut total = penumbra_governance::Tally::default(); + let mut total = penumbra_sdk_governance::Tally::default(); let mut all_votes_and_power: BTreeMap = BTreeMap::new(); for (identity_key, (vote, power)) in validator_votes_and_power.into_iter() { @@ -222,7 +221,7 @@ impl GovernanceCmd { }; // Subtract delegator total from validator power, then add delegator // tally in to get the total tally for this validator: - let sub_total = penumbra_governance::Tally::from(( + let sub_total = penumbra_sdk_governance::Tally::from(( vote, power - delegator_tally.total(), )) + delegator_tally; @@ -261,7 +260,7 @@ fn json(value: &T) -> Result<()> { Ok(()) } -fn json_tally(tally: &penumbra_governance::Tally) -> serde_json::Value { +fn json_tally(tally: &penumbra_sdk_governance::Tally) -> serde_json::Value { let mut map = serde_json::Map::new(); if tally.yes() > 0 { map.insert("yes".to_string(), tally.yes().into()); diff --git a/crates/bin/pcli/src/command/query/shielded_pool.rs b/crates/bin/pcli/src/command/query/shielded_pool.rs index 68f8f81b2d..6f900778e2 100644 --- a/crates/bin/pcli/src/command/query/shielded_pool.rs +++ b/crates/bin/pcli/src/command/query/shielded_pool.rs @@ -1,8 +1,8 @@ use anyhow::Result; use colored_json::prelude::*; -use penumbra_proto::DomainType; -use penumbra_sct::{CommitmentSource, NullificationInfo, Nullifier}; -use penumbra_tct::StateCommitment; +use penumbra_sdk_proto::DomainType; +use penumbra_sdk_sct::{CommitmentSource, NullificationInfo, Nullifier}; +use penumbra_sdk_tct::StateCommitment; #[derive(Debug, clap::Subcommand)] pub enum ShieldedPool { @@ -29,7 +29,7 @@ pub enum ShieldedPool { impl ShieldedPool { pub fn key(&self) -> String { - use penumbra_sct::state_key as sct_state_key; + use penumbra_sdk_sct::state_key as sct_state_key; match self { ShieldedPool::Anchor { height } => sct_state_key::tree::anchor_by_height(*height), ShieldedPool::CompactBlock { .. } => { @@ -45,7 +45,7 @@ impl ShieldedPool { pub fn display_value(&self, bytes: &[u8]) -> Result<()> { let json = match self { ShieldedPool::Anchor { .. } => { - let anchor = penumbra_tct::Root::decode(bytes)?; + let anchor = penumbra_sdk_tct::Root::decode(bytes)?; serde_json::to_string_pretty(&anchor)? } ShieldedPool::CompactBlock { .. } => { diff --git a/crates/bin/pcli/src/command/query/tx.rs b/crates/bin/pcli/src/command/query/tx.rs index 27d8e353e4..ea0b846d47 100644 --- a/crates/bin/pcli/src/command/query/tx.rs +++ b/crates/bin/pcli/src/command/query/tx.rs @@ -1,7 +1,7 @@ use anyhow::Result; use colored_json::prelude::*; -use penumbra_proto::{util::tendermint_proxy::v1::GetTxRequest, DomainType}; -use penumbra_transaction::Transaction; +use penumbra_sdk_proto::{util::tendermint_proxy::v1::GetTxRequest, DomainType}; +use penumbra_sdk_transaction::Transaction; use crate::App; diff --git a/crates/bin/pcli/src/command/query/validator.rs b/crates/bin/pcli/src/command/query/validator.rs index 4527c0b1c2..099ccff072 100644 --- a/crates/bin/pcli/src/command/query/validator.rs +++ b/crates/bin/pcli/src/command/query/validator.rs @@ -9,9 +9,9 @@ use anyhow::{anyhow, Context, Error, Result}; use colored::Colorize; use comfy_table::{presets, Table}; use futures::TryStreamExt; -use penumbra_app::params::AppParameters; -use penumbra_num::{fixpoint::U128x128, Amount}; -use penumbra_proto::{ +use penumbra_sdk_app::params::AppParameters; +use penumbra_sdk_num::{fixpoint::U128x128, Amount}; +use penumbra_sdk_proto::{ core::{ app::v1::{ query_service_client::QueryServiceClient as AppQueryServiceClient, AppParametersRequest, @@ -24,7 +24,7 @@ use penumbra_proto::{ }, DomainType, }; -use penumbra_stake::{ +use penumbra_sdk_stake::{ rate::RateData, validator::{self, Info, Status, Validator, ValidatorToml}, IdentityKey, Uptime, BPS_SQUARED_SCALING_FACTOR, diff --git a/crates/bin/pcli/src/command/threshold.rs b/crates/bin/pcli/src/command/threshold.rs index 16c725bb5d..b37d9c9b9a 100644 --- a/crates/bin/pcli/src/command/threshold.rs +++ b/crates/bin/pcli/src/command/threshold.rs @@ -1,5 +1,5 @@ use anyhow::Result; -use penumbra_custody::threshold::Terminal; +use penumbra_sdk_custody::threshold::Terminal; use crate::{ config::{CustodyConfig, GovernanceCustodyConfig}, @@ -39,7 +39,7 @@ impl ThresholdCmd { }; match self { ThresholdCmd::Sign => { - penumbra_custody::threshold::follow( + penumbra_sdk_custody::threshold::follow( config.as_ref(), governance_config.as_ref(), &ActualTerminal::default(), diff --git a/crates/bin/pcli/src/command/tx.rs b/crates/bin/pcli/src/command/tx.rs index 65fd9b1a70..48bea55db8 100644 --- a/crates/bin/pcli/src/command/tx.rs +++ b/crates/bin/pcli/src/command/tx.rs @@ -26,13 +26,15 @@ use rand_core::OsRng; use regex::Regex; use liquidity_position::PositionCmd; -use penumbra_asset::{asset, asset::Metadata, Value, STAKING_TOKEN_ASSET_ID}; -use penumbra_dex::{lp::position, swap_claim::SwapClaimPlan}; -use penumbra_fee::FeeTier; -use penumbra_governance::{proposal::ProposalToml, proposal_state::State as ProposalState, Vote}; -use penumbra_keys::{keys::AddressIndex, Address}; -use penumbra_num::Amount; -use penumbra_proto::{ +use penumbra_sdk_asset::{asset, asset::Metadata, Value, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_dex::{lp::position, swap_claim::SwapClaimPlan}; +use penumbra_sdk_fee::FeeTier; +use penumbra_sdk_governance::{ + proposal::ProposalToml, proposal_state::State as ProposalState, Vote, +}; +use penumbra_sdk_keys::{keys::AddressIndex, Address}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{ core::component::{ dex::v1::{ query_service_client::QueryServiceClient as DexQueryServiceClient, @@ -62,12 +64,14 @@ use penumbra_proto::{ view::v1::GasPricesRequest, Message, Name as _, }; -use penumbra_shielded_pool::Ics20Withdrawal; -use penumbra_stake::rate::RateData; -use penumbra_stake::{DelegationToken, IdentityKey, Penalty, UnbondingToken, UndelegateClaimPlan}; -use penumbra_transaction::{gas::swap_claim_gas_cost, Transaction}; -use penumbra_view::{SpendableNoteRecord, ViewClient}; -use penumbra_wallet::plan::{self, Planner}; +use penumbra_sdk_shielded_pool::Ics20Withdrawal; +use penumbra_sdk_stake::rate::RateData; +use penumbra_sdk_stake::{ + DelegationToken, IdentityKey, Penalty, UnbondingToken, UndelegateClaimPlan, +}; +use penumbra_sdk_transaction::{gas::swap_claim_gas_cost, Transaction}; +use penumbra_sdk_view::{SpendableNoteRecord, ViewClient}; +use penumbra_sdk_wallet::plan::{self, Planner}; use proposal::ProposalCmd; use tonic::transport::{Channel, ClientTlsConfig}; use url::Url; diff --git a/crates/bin/pcli/src/command/tx/auction/dutch.rs b/crates/bin/pcli/src/command/tx/auction/dutch.rs index 276d7c90c9..4d2f0bb9af 100644 --- a/crates/bin/pcli/src/command/tx/auction/dutch.rs +++ b/crates/bin/pcli/src/command/tx/auction/dutch.rs @@ -7,13 +7,15 @@ use anyhow::{anyhow, bail, Context}; use clap::Subcommand; use comfy_table::presets; use dialoguer::Confirm; -use penumbra_asset::{asset::Cache, Value}; -use penumbra_auction::auction::{dutch::DutchAuction, dutch::DutchAuctionDescription, AuctionId}; -use penumbra_keys::keys::AddressIndex; -use penumbra_num::Amount; -use penumbra_proto::{view::v1::GasPricesRequest, DomainType}; -use penumbra_view::ViewClient; -use penumbra_wallet::plan::Planner; +use penumbra_sdk_asset::{asset::Cache, Value}; +use penumbra_sdk_auction::auction::{ + dutch::DutchAuction, dutch::DutchAuctionDescription, AuctionId, +}; +use penumbra_sdk_keys::keys::AddressIndex; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{view::v1::GasPricesRequest, DomainType}; +use penumbra_sdk_view::ViewClient; +use penumbra_sdk_wallet::plan::Planner; use rand::RngCore; use rand_core::OsRng; use serde_json; diff --git a/crates/bin/pcli/src/command/tx/auction/dutch/debug.rs b/crates/bin/pcli/src/command/tx/auction/dutch/debug.rs index 6fefc84878..4159e6e5f6 100644 --- a/crates/bin/pcli/src/command/tx/auction/dutch/debug.rs +++ b/crates/bin/pcli/src/command/tx/auction/dutch/debug.rs @@ -1,4 +1,4 @@ -use penumbra_auction::auction::dutch::DutchAuctionDescription; +use penumbra_sdk_auction::auction::dutch::DutchAuctionDescription; use serde::Serialize; #[derive(Debug, Clone, Serialize)] diff --git a/crates/bin/pcli/src/command/tx/auction/dutch/gda.rs b/crates/bin/pcli/src/command/tx/auction/dutch/gda.rs index 4583d208d7..9c5f058067 100644 --- a/crates/bin/pcli/src/command/tx/auction/dutch/gda.rs +++ b/crates/bin/pcli/src/command/tx/auction/dutch/gda.rs @@ -1,6 +1,6 @@ use clap::ArgEnum; -use penumbra_asset::Value; -use penumbra_auction::auction::dutch::DutchAuctionDescription; +use penumbra_sdk_asset::Value; +use penumbra_sdk_auction::auction::dutch::DutchAuctionDescription; use rand::Rng; use rand::RngCore; use rand_core::OsRng; diff --git a/crates/bin/pcli/src/command/tx/liquidity_position.rs b/crates/bin/pcli/src/command/tx/liquidity_position.rs index cf2cbb97ef..ce42e09674 100644 --- a/crates/bin/pcli/src/command/tx/liquidity_position.rs +++ b/crates/bin/pcli/src/command/tx/liquidity_position.rs @@ -1,7 +1,7 @@ use anyhow::Result; -use penumbra_asset::asset; -use penumbra_dex::{ +use penumbra_sdk_asset::asset; +use penumbra_sdk_dex::{ lp::{ position::{self, Position}, BuyOrder, SellOrder, diff --git a/crates/bin/pcli/src/command/tx/proposal.rs b/crates/bin/pcli/src/command/tx/proposal.rs index 0a32d0c67e..179cdeec6b 100644 --- a/crates/bin/pcli/src/command/tx/proposal.rs +++ b/crates/bin/pcli/src/command/tx/proposal.rs @@ -1,9 +1,9 @@ use anyhow::{Context, Result}; -use penumbra_app::params::AppParameters; -use penumbra_governance::{change::ParameterChange, Proposal, ProposalPayload}; -use penumbra_proto::DomainType; -use penumbra_transaction::TransactionPlan; +use penumbra_sdk_app::params::AppParameters; +use penumbra_sdk_governance::{change::ParameterChange, Proposal, ProposalPayload}; +use penumbra_sdk_proto::DomainType; +use penumbra_sdk_transaction::TransactionPlan; use super::FeeTier; diff --git a/crates/bin/pcli/src/command/tx/replicate.rs b/crates/bin/pcli/src/command/tx/replicate.rs index 98669824b2..47c4a476c3 100644 --- a/crates/bin/pcli/src/command/tx/replicate.rs +++ b/crates/bin/pcli/src/command/tx/replicate.rs @@ -4,8 +4,8 @@ pub mod linear; pub mod xyk; use linear::Linear; -use penumbra_dex::DirectedUnitPair; -use penumbra_proto::core::component::dex::v1::{ +use penumbra_sdk_dex::DirectedUnitPair; +use penumbra_sdk_proto::core::component::dex::v1::{ query_service_client::QueryServiceClient as DexQueryServiceClient, SpreadRequest, }; use xyk::ConstantProduct; diff --git a/crates/bin/pcli/src/command/tx/replicate/linear.rs b/crates/bin/pcli/src/command/tx/replicate/linear.rs index 90885954cb..de3dd4a37c 100644 --- a/crates/bin/pcli/src/command/tx/replicate/linear.rs +++ b/crates/bin/pcli/src/command/tx/replicate/linear.rs @@ -2,15 +2,15 @@ use anyhow::Context; use dialoguer::Confirm; use rand_core::{CryptoRngCore, OsRng}; -use penumbra_asset::Value; -use penumbra_dex::{ +use penumbra_sdk_asset::Value; +use penumbra_sdk_dex::{ lp::{position::Position, Reserves}, DirectedUnitPair, }; -use penumbra_keys::keys::AddressIndex; -use penumbra_num::Amount; -use penumbra_proto::view::v1::GasPricesRequest; -use penumbra_view::{Planner, ViewClient}; +use penumbra_sdk_keys::keys::AddressIndex; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::view::v1::GasPricesRequest; +use penumbra_sdk_view::{Planner, ViewClient}; use crate::App; @@ -275,7 +275,7 @@ mod tests { use super::*; #[test] - fn sanity_check_penumbra_gm_example() { + fn sanity_check_penumbra_sdk_gm_example() { let params = Linear { pair: "penumbra:gm".parse().unwrap(), input: "1000gm".parse().unwrap(), @@ -301,7 +301,7 @@ mod tests { dbg!(position); } - let asset_cache = penumbra_asset::asset::Cache::with_known_assets(); + let asset_cache = penumbra_sdk_asset::asset::Cache::with_known_assets(); dbg!(¶ms); println!( diff --git a/crates/bin/pcli/src/command/tx/replicate/xyk.rs b/crates/bin/pcli/src/command/tx/replicate/xyk.rs index 23d0508925..0cc843b479 100644 --- a/crates/bin/pcli/src/command/tx/replicate/xyk.rs +++ b/crates/bin/pcli/src/command/tx/replicate/xyk.rs @@ -5,12 +5,12 @@ use anyhow::{anyhow, Context}; use dialoguer::Confirm; use rand_core::OsRng; -use penumbra_asset::Value; -use penumbra_dex::{lp::position::Position, DirectedUnitPair}; -use penumbra_keys::keys::AddressIndex; -use penumbra_num::{fixpoint::U128x128, Amount}; -use penumbra_proto::view::v1::GasPricesRequest; -use penumbra_view::{Planner, ViewClient}; +use penumbra_sdk_asset::Value; +use penumbra_sdk_dex::{lp::position::Position, DirectedUnitPair}; +use penumbra_sdk_keys::keys::AddressIndex; +use penumbra_sdk_num::{fixpoint::U128x128, Amount}; +use penumbra_sdk_proto::view::v1::GasPricesRequest; +use penumbra_sdk_view::{Planner, ViewClient}; use crate::dex_utils; use crate::dex_utils::replicate::debug; diff --git a/crates/bin/pcli/src/command/utils.rs b/crates/bin/pcli/src/command/utils.rs index cd353c24a1..8ffa75c34c 100644 --- a/crates/bin/pcli/src/command/utils.rs +++ b/crates/bin/pcli/src/command/utils.rs @@ -1,6 +1,6 @@ use comfy_table::{presets, Table}; -use penumbra_asset::{asset, Value}; -use penumbra_dex::lp::position::Position; +use penumbra_sdk_asset::{asset, Value}; +use penumbra_sdk_dex::lp::position::Position; pub(crate) fn render_positions(asset_cache: &asset::Cache, positions: &[Position]) -> String { let mut table = Table::new(); diff --git a/crates/bin/pcli/src/command/validator.rs b/crates/bin/pcli/src/command/validator.rs index fd43d203ce..3e0611d7ae 100644 --- a/crates/bin/pcli/src/command/validator.rs +++ b/crates/bin/pcli/src/command/validator.rs @@ -6,15 +6,15 @@ use std::{ use anyhow::{Context, Result}; use base64::{engine::general_purpose::URL_SAFE, Engine as _}; use decaf377_rdsa::{Signature, SpendAuth}; -use penumbra_view::Planner; +use penumbra_sdk_view::Planner; use rand_core::OsRng; use serde_json::Value; -use penumbra_governance::{ +use penumbra_sdk_governance::{ ValidatorVote, ValidatorVoteBody, ValidatorVoteReason, Vote, MAX_VALIDATOR_VOTE_REASON_LENGTH, }; -use penumbra_proto::{view::v1::GasPricesRequest, DomainType}; -use penumbra_stake::{ +use penumbra_sdk_proto::{view::v1::GasPricesRequest, DomainType}; +use penumbra_sdk_stake::{ validator, validator::{Validator, ValidatorToml}, FundingStream, FundingStreams, IdentityKey, @@ -22,7 +22,7 @@ use penumbra_stake::{ use crate::App; -use penumbra_fee::FeeTier; +use penumbra_sdk_fee::FeeTier; #[derive(Debug, clap::Subcommand)] pub enum ValidatorCmd { @@ -262,7 +262,7 @@ impl ValidatorCmd { std::io::stdin().read_to_string(&mut buf)?; signature = buf; } - as penumbra_proto::DomainType>::decode( + as penumbra_sdk_proto::DomainType>::decode( &URL_SAFE .decode(signature) .context("unable to decode signature as base64")?[..], @@ -385,7 +385,7 @@ impl ValidatorCmd { std::io::stdin().read_to_string(&mut buf)?; signature = buf; } - as penumbra_proto::DomainType>::decode( + as penumbra_sdk_proto::DomainType>::decode( &URL_SAFE .decode(signature) .context("unable to decode signature as base64")?[..], diff --git a/crates/bin/pcli/src/command/view/address.rs b/crates/bin/pcli/src/command/view/address.rs index 2c724ed870..da11b35ba2 100644 --- a/crates/bin/pcli/src/command/view/address.rs +++ b/crates/bin/pcli/src/command/view/address.rs @@ -3,7 +3,7 @@ use base64::Engine; use rand_core::OsRng; use std::str::FromStr; -use penumbra_keys::{keys::AddressIndex, Address, FullViewingKey}; +use penumbra_sdk_keys::{keys::AddressIndex, Address, FullViewingKey}; #[derive(Debug, clap::Parser)] pub struct AddressCmd { diff --git a/crates/bin/pcli/src/command/view/auction.rs b/crates/bin/pcli/src/command/view/auction.rs index 087a62de0b..a6f6007b4b 100644 --- a/crates/bin/pcli/src/command/view/auction.rs +++ b/crates/bin/pcli/src/command/view/auction.rs @@ -1,9 +1,9 @@ use anyhow::Result; use comfy_table::{presets, Cell, ContentArrangement, Table}; -use penumbra_auction::auction::dutch::DutchAuction; -use penumbra_keys::FullViewingKey; -use penumbra_proto::{core::component::auction::v1 as pb_auction, DomainType, Name}; -use penumbra_view::ViewClient; +use penumbra_sdk_auction::auction::dutch::DutchAuction; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_proto::{core::component::auction::v1 as pb_auction, DomainType, Name}; +use penumbra_sdk_view::ViewClient; use crate::command::query::auction::render_dutch_auction; @@ -28,11 +28,11 @@ impl AuctionCmd { _fvk: &FullViewingKey, ) -> Result<()> { let auctions: Vec<( - penumbra_auction::auction::AuctionId, - penumbra_view::SpendableNoteRecord, + penumbra_sdk_auction::auction::AuctionId, + penumbra_sdk_view::SpendableNoteRecord, u64, Option, - Vec, + Vec, )> = view_client .auctions(None, self.include_inactive, self.query_latest_state) .await?; @@ -57,7 +57,7 @@ impl AuctionCmd { } else { let position_ids: Vec = positions .into_iter() - .map(|lp: penumbra_dex::lp::position::Position| format!("{}", lp.id())) + .map(|lp: penumbra_sdk_dex::lp::position::Position| format!("{}", lp.id())) .collect(); let mut auction_table = Table::new(); diff --git a/crates/bin/pcli/src/command/view/balance.rs b/crates/bin/pcli/src/command/view/balance.rs index b8946fe1ef..97d498a3da 100644 --- a/crates/bin/pcli/src/command/view/balance.rs +++ b/crates/bin/pcli/src/command/view/balance.rs @@ -1,9 +1,9 @@ use anyhow::Result; use comfy_table::{presets, Table}; -use penumbra_keys::AddressView; -use penumbra_sct::CommitmentSource; -use penumbra_view::ViewClient; +use penumbra_sdk_keys::AddressView; +use penumbra_sdk_sct::CommitmentSource; +use penumbra_sdk_view::ViewClient; #[derive(Debug, clap::Args)] pub struct BalanceCmd { @@ -119,7 +119,7 @@ fn format_source(source: &CommitmentSource) -> String { } } -fn format_return_address(return_address: &Option) -> String { +fn format_return_address(return_address: &Option) -> String { match return_address { None => "Unknown".to_owned(), Some(AddressView::Opaque { address }) => address.display_short_form(), diff --git a/crates/bin/pcli/src/command/view/lps.rs b/crates/bin/pcli/src/command/view/lps.rs index 0fae70c640..c41a98f34b 100644 --- a/crates/bin/pcli/src/command/view/lps.rs +++ b/crates/bin/pcli/src/command/view/lps.rs @@ -1,11 +1,11 @@ use anyhow::{anyhow, Result}; use futures::stream::TryStreamExt; -use penumbra_dex::lp::position::{Position, State}; -use penumbra_proto::core::component::dex::v1::{ +use penumbra_sdk_dex::lp::position::{Position, State}; +use penumbra_sdk_proto::core::component::dex::v1::{ query_service_client::QueryServiceClient as DexQueryServiceClient, LiquidityPositionsByIdRequest, }; -use penumbra_view::ViewClient; +use penumbra_sdk_view::ViewClient; use crate::{command::utils, App}; diff --git a/crates/bin/pcli/src/command/view/noble_address.rs b/crates/bin/pcli/src/command/view/noble_address.rs index 6f696147cc..b0f64488ad 100644 --- a/crates/bin/pcli/src/command/view/noble_address.rs +++ b/crates/bin/pcli/src/command/view/noble_address.rs @@ -1,7 +1,7 @@ use anyhow::Result; use rand_core::OsRng; -use penumbra_keys::{Address, FullViewingKey}; +use penumbra_sdk_keys::{Address, FullViewingKey}; #[derive(Debug, clap::Parser)] pub struct NobleAddressCmd { diff --git a/crates/bin/pcli/src/command/view/staked.rs b/crates/bin/pcli/src/command/view/staked.rs index f3c635094b..6a3b9853e7 100644 --- a/crates/bin/pcli/src/command/view/staked.rs +++ b/crates/bin/pcli/src/command/view/staked.rs @@ -5,13 +5,13 @@ use comfy_table::{presets, Table}; use futures::TryStreamExt; use tonic::transport::Channel; -use penumbra_asset::{Value, STAKING_TOKEN_ASSET_ID}; -use penumbra_keys::FullViewingKey; -use penumbra_proto::core::component::stake::v1::{ +use penumbra_sdk_asset::{Value, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_proto::core::component::stake::v1::{ query_service_client::QueryServiceClient as StakeQueryServiceClient, ValidatorInfoRequest, }; -use penumbra_stake::{validator, DelegationToken}; -use penumbra_view::ViewClient; +use penumbra_sdk_stake::{validator, DelegationToken}; +use penumbra_sdk_view::ViewClient; #[derive(Debug, clap::Parser)] pub struct StakedCmd {} diff --git a/crates/bin/pcli/src/command/view/transaction_hashes.rs b/crates/bin/pcli/src/command/view/transaction_hashes.rs index 3ed66b5507..be4bed2a91 100644 --- a/crates/bin/pcli/src/command/view/transaction_hashes.rs +++ b/crates/bin/pcli/src/command/view/transaction_hashes.rs @@ -1,8 +1,8 @@ use anyhow::Result; use comfy_table::{presets, Table}; -use penumbra_keys::FullViewingKey; -use penumbra_transaction::MemoView; -use penumbra_view::ViewClient; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_transaction::MemoView; +use penumbra_sdk_view::ViewClient; #[derive(Debug, clap::Args)] pub struct TransactionHashesCmd { diff --git a/crates/bin/pcli/src/command/view/tx.rs b/crates/bin/pcli/src/command/view/tx.rs index 8b0a52d601..b24e265d07 100644 --- a/crates/bin/pcli/src/command/view/tx.rs +++ b/crates/bin/pcli/src/command/view/tx.rs @@ -1,7 +1,7 @@ use anyhow::{Context, Result}; -use penumbra_proto::{util::tendermint_proxy::v1::GetTxRequest, DomainType}; -use penumbra_transaction::Transaction; -use penumbra_view::{TransactionInfo, ViewClient}; +use penumbra_sdk_proto::{util::tendermint_proxy::v1::GetTxRequest, DomainType}; +use penumbra_sdk_transaction::Transaction; +use penumbra_sdk_view::{TransactionInfo, ViewClient}; use crate::App; diff --git a/crates/bin/pcli/src/command/view/wallet_id.rs b/crates/bin/pcli/src/command/view/wallet_id.rs index fc54d9fd37..c8e1de2888 100644 --- a/crates/bin/pcli/src/command/view/wallet_id.rs +++ b/crates/bin/pcli/src/command/view/wallet_id.rs @@ -1,6 +1,6 @@ use anyhow::Result; -use penumbra_keys::FullViewingKey; +use penumbra_sdk_keys::FullViewingKey; #[derive(Debug, clap::Parser)] pub struct WalletIdCmd {} diff --git a/crates/bin/pcli/src/config.rs b/crates/bin/pcli/src/config.rs index 8208bc459d..08d323183c 100644 --- a/crates/bin/pcli/src/config.rs +++ b/crates/bin/pcli/src/config.rs @@ -1,16 +1,16 @@ use std::path::Path; use anyhow::{Context, Result}; -use penumbra_stake::GovernanceKey; +use penumbra_sdk_stake::GovernanceKey; use serde::{Deserialize, Serialize}; use serde_with::{serde_as, DisplayFromStr}; use url::Url; -use penumbra_custody::{ +use penumbra_sdk_custody::{ encrypted::Config as EncryptedConfig, soft_kms::Config as SoftKmsConfig, threshold::Config as ThresholdConfig, }; -use penumbra_keys::FullViewingKey; +use penumbra_sdk_keys::FullViewingKey; /// Configuration data for `pcli`. #[serde_as] @@ -118,9 +118,9 @@ mod tests { grpc_url: Url::parse("https://grpc.testnet.penumbra.zone").unwrap(), disable_warning: false, view_url: None, - full_viewing_key: penumbra_keys::test_keys::FULL_VIEWING_KEY.clone(), + full_viewing_key: penumbra_sdk_keys::test_keys::FULL_VIEWING_KEY.clone(), custody: CustodyConfig::SoftKms(SoftKmsConfig::from( - penumbra_keys::test_keys::SPEND_KEY.clone(), + penumbra_sdk_keys::test_keys::SPEND_KEY.clone(), )), governance_custody: None, }; diff --git a/crates/bin/pcli/src/dex_utils/replicate/debug.rs b/crates/bin/pcli/src/dex_utils/replicate/debug.rs index ecb3d19f68..5536696c3b 100644 --- a/crates/bin/pcli/src/dex_utils/replicate/debug.rs +++ b/crates/bin/pcli/src/dex_utils/replicate/debug.rs @@ -1,6 +1,6 @@ -use penumbra_dex::lp::position::Position; -use penumbra_dex::DirectedUnitPair; -use penumbra_num::fixpoint::U128x128; +use penumbra_sdk_dex::lp::position::Position; +use penumbra_sdk_dex::DirectedUnitPair; +use penumbra_sdk_num::fixpoint::U128x128; use serde::Serialize; #[derive(Serialize)] diff --git a/crates/bin/pcli/src/dex_utils/replicate/xyk.rs b/crates/bin/pcli/src/dex_utils/replicate/xyk.rs index 3f54b4f418..97e57f0e0f 100644 --- a/crates/bin/pcli/src/dex_utils/replicate/xyk.rs +++ b/crates/bin/pcli/src/dex_utils/replicate/xyk.rs @@ -1,12 +1,12 @@ use crate::dex_utils::replicate::math_utils; use anyhow::Context; use ndarray::Array; -use penumbra_asset::Value; -use penumbra_dex::{ +use penumbra_sdk_asset::Value; +use penumbra_sdk_dex::{ lp::{position::Position, Reserves}, DirectedUnitPair, }; -use penumbra_num::{fixpoint::U128x128, Amount}; +use penumbra_sdk_num::{fixpoint::U128x128, Amount}; use rand_core::OsRng; use tracing::field; diff --git a/crates/bin/pcli/src/lib.rs b/crates/bin/pcli/src/lib.rs index 1faf352016..e008ed3024 100644 --- a/crates/bin/pcli/src/lib.rs +++ b/crates/bin/pcli/src/lib.rs @@ -7,11 +7,11 @@ use { camino::Utf8PathBuf, directories::ProjectDirs, futures::StreamExt, - penumbra_proto::{ + penumbra_sdk_proto::{ box_grpc_svc::BoxGrpcService, custody::v1::custody_service_client::CustodyServiceClient, view::v1::view_service_client::ViewServiceClient, }, - penumbra_view::ViewClient, + penumbra_sdk_view::ViewClient, std::path::PathBuf, }; diff --git a/crates/bin/pcli/src/network.rs b/crates/bin/pcli/src/network.rs index f809f7543f..22406c35d5 100644 --- a/crates/bin/pcli/src/network.rs +++ b/crates/bin/pcli/src/network.rs @@ -1,16 +1,16 @@ use anyhow::Context; use decaf377_rdsa::{Signature, SpendAuth}; use futures::{FutureExt, TryStreamExt}; -use penumbra_governance::ValidatorVoteBody; -use penumbra_proto::{ +use penumbra_sdk_governance::ValidatorVoteBody; +use penumbra_sdk_proto::{ custody::v1::{AuthorizeValidatorDefinitionRequest, AuthorizeValidatorVoteRequest}, util::tendermint_proxy::v1::tendermint_proxy_service_client::TendermintProxyServiceClient, view::v1::broadcast_transaction_response::Status as BroadcastStatus, DomainType, }; -use penumbra_stake::validator::Validator; -use penumbra_transaction::{txhash::TransactionId, Transaction, TransactionPlan}; -use penumbra_view::{ViewClient, ViewServer}; +use penumbra_sdk_stake::validator::Validator; +use penumbra_sdk_transaction::{txhash::TransactionId, Transaction, TransactionPlan}; +use penumbra_sdk_view::{ViewClient, ViewServer}; use std::{fs, future::Future}; use tonic::transport::Channel; use tracing::instrument; @@ -42,7 +42,7 @@ impl App { plan.num_proofs(), ); let start = std::time::Instant::now(); - let tx = penumbra_wallet::build_transaction( + let tx = penumbra_sdk_wallet::build_transaction( &self.config.full_viewing_key, self.view.as_mut().expect("view service initialized"), &mut self.custody, diff --git a/crates/bin/pcli/src/opt.rs b/crates/bin/pcli/src/opt.rs index bfa9a6cc1c..0b88d6c6fa 100644 --- a/crates/bin/pcli/src/opt.rs +++ b/crates/bin/pcli/src/opt.rs @@ -7,15 +7,15 @@ use crate::{ use anyhow::Result; use camino::Utf8PathBuf; use clap::Parser; -use penumbra_custody::{null_kms::NullKms, soft_kms::SoftKms}; -use penumbra_proto::box_grpc_svc; -use penumbra_proto::{ +use penumbra_sdk_custody::{null_kms::NullKms, soft_kms::SoftKms}; +use penumbra_sdk_proto::box_grpc_svc; +use penumbra_sdk_proto::{ custody::v1::{ custody_service_client::CustodyServiceClient, custody_service_server::CustodyServiceServer, }, view::v1::{view_service_client::ViewServiceClient, view_service_server::ViewServiceServer}, }; -use penumbra_view::ViewServer; +use penumbra_sdk_view::ViewServer; use std::io::IsTerminal as _; use tracing_subscriber::EnvFilter; use url::Url; @@ -82,7 +82,7 @@ impl Opt { } CustodyConfig::Threshold(config) => { tracing::info!("using manual threshold custody service"); - let threshold_kms = penumbra_custody::threshold::Threshold::new( + let threshold_kms = penumbra_sdk_custody::threshold::Threshold::new( config.clone(), ActualTerminal { fvk: Some(fvk.clone()), @@ -93,7 +93,7 @@ impl Opt { } CustodyConfig::Encrypted(config) => { tracing::info!("using encrypted custody service"); - let encrypted_kms = penumbra_custody::encrypted::Encrypted::new( + let encrypted_kms = penumbra_sdk_custody::encrypted::Encrypted::new( config.clone(), ActualTerminal { fvk: Some(fvk.clone()), @@ -119,7 +119,7 @@ impl Opt { tracing::info!( "using separate manual threshold custody service for validator voting" ); - let threshold_kms = penumbra_custody::threshold::Threshold::new( + let threshold_kms = penumbra_sdk_custody::threshold::Threshold::new( config.clone(), ActualTerminal { fvk: Some(fvk) }, ); @@ -128,7 +128,7 @@ impl Opt { } GovernanceCustodyConfig::Encrypted { config, .. } => { tracing::info!("using separate encrypted custody service for validator voting"); - let encrypted_kms = penumbra_custody::encrypted::Encrypted::new( + let encrypted_kms = penumbra_sdk_custody::encrypted::Encrypted::new( config.clone(), ActualTerminal { fvk: Some(fvk) }, ); diff --git a/crates/bin/pcli/src/terminal.rs b/crates/bin/pcli/src/terminal.rs index 95bf433242..69dea541d0 100644 --- a/crates/bin/pcli/src/terminal.rs +++ b/crates/bin/pcli/src/terminal.rs @@ -3,17 +3,17 @@ use std::io::{IsTerminal, Read, Write}; use anyhow::Result; use decaf377::{Element, Fq}; use decaf377_rdsa::{Domain, Signature, VerificationKey}; -use penumbra_asset::{asset::Cache, balance::Commitment}; -use penumbra_custody::threshold::{SigningRequest, Terminal}; -use penumbra_keys::{ +use penumbra_sdk_asset::{asset::Cache, balance::Commitment}; +use penumbra_sdk_custody::threshold::{SigningRequest, Terminal}; +use penumbra_sdk_keys::{ symmetric::{OvkWrappedKey, WrappedMemoKey}, FullViewingKey, PayloadKey, }; -use penumbra_proof_params::GROTH16_PROOF_LENGTH_BYTES; -use penumbra_sct::Nullifier; -use penumbra_shielded_pool::{EncryptedBackref, Note, NoteView}; -use penumbra_tct::structure::Hash; -use penumbra_transaction::{view, ActionPlan, ActionView, TransactionPlan, TransactionView}; +use penumbra_sdk_proof_params::GROTH16_PROOF_LENGTH_BYTES; +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_shielded_pool::{EncryptedBackref, Note, NoteView}; +use penumbra_sdk_tct::structure::Hash; +use penumbra_sdk_transaction::{view, ActionPlan, ActionView, TransactionPlan, TransactionView}; use termion::{color, input::TermRead}; use tonic::async_trait; @@ -43,7 +43,7 @@ fn pretty_print_transaction_plan( fvk: Option, plan: &TransactionPlan, ) -> anyhow::Result<()> { - use penumbra_shielded_pool::{output, spend}; + use penumbra_sdk_shielded_pool::{output, spend}; fn dummy_sig() -> Signature { Signature::from([0u8; 64]) @@ -60,7 +60,7 @@ fn pretty_print_transaction_plan( fn dummy_proof_spend() -> spend::SpendProof { spend::SpendProof::try_from( - penumbra_proto::penumbra::core::component::shielded_pool::v1::ZkSpendProof { + penumbra_sdk_proto::penumbra::core::component::shielded_pool::v1::ZkSpendProof { inner: vec![0u8; GROTH16_PROOF_LENGTH_BYTES], }, ) @@ -69,7 +69,7 @@ fn pretty_print_transaction_plan( fn dummy_proof_output() -> output::OutputProof { output::OutputProof::try_from( - penumbra_proto::penumbra::core::component::shielded_pool::v1::ZkOutputProof { + penumbra_sdk_proto::penumbra::core::component::shielded_pool::v1::ZkOutputProof { inner: vec![0u8; GROTH16_PROOF_LENGTH_BYTES], }, ) @@ -93,13 +93,15 @@ fn pretty_print_transaction_plan( fn dummy_output() -> output::Output { output::Output { body: output::Body { - note_payload: penumbra_shielded_pool::NotePayload { - note_commitment: penumbra_shielded_pool::note::StateCommitment(Fq::default()), + note_payload: penumbra_sdk_shielded_pool::NotePayload { + note_commitment: penumbra_sdk_shielded_pool::note::StateCommitment( + Fq::default(), + ), ephemeral_key: [0u8; 32] .as_slice() .try_into() .expect("can create dummy ephemeral key"), - encrypted_note: penumbra_shielded_pool::NoteCiphertext([0u8; 176]), + encrypted_note: penumbra_sdk_shielded_pool::NoteCiphertext([0u8; 176]), }, balance_commitment: dummy_commitment(), ovk_wrapped_key: OvkWrappedKey([0u8; 48]), @@ -126,7 +128,7 @@ fn pretty_print_transaction_plan( match action { ActionPlan::Output(x) => Some(ActionView::Output( - penumbra_shielded_pool::OutputView::Visible { + penumbra_sdk_shielded_pool::OutputView::Visible { output: dummy_output(), note: convert_note(cache, fvk, &x.output_note()), payload_key: PayloadKey::from([0u8; 32]), @@ -175,7 +177,7 @@ fn pretty_print_transaction_plan( let cache = Cache::with_known_assets(); let view = TransactionView { - anchor: penumbra_tct::Root(Hash::zero()), + anchor: penumbra_sdk_tct::Root(Hash::zero()), binding_sig: dummy_sig(), body_view: view::TransactionBodyView { action_views: plan diff --git a/crates/bin/pcli/src/transaction_view_ext.rs b/crates/bin/pcli/src/transaction_view_ext.rs index 91fb69fa20..a1b925a2e9 100644 --- a/crates/bin/pcli/src/transaction_view_ext.rs +++ b/crates/bin/pcli/src/transaction_view_ext.rs @@ -1,17 +1,17 @@ use comfy_table::presets; use comfy_table::Table; -use penumbra_asset::asset::Id; -use penumbra_asset::asset::Metadata; -use penumbra_asset::Value; -use penumbra_asset::ValueView; -use penumbra_dex::swap::SwapView; -use penumbra_dex::swap_claim::SwapClaimView; -use penumbra_fee::Fee; -use penumbra_keys::AddressView; -use penumbra_num::Amount; -use penumbra_shielded_pool::SpendView; -use penumbra_transaction::view::action_view::OutputView; -use penumbra_transaction::TransactionView; +use penumbra_sdk_asset::asset::Id; +use penumbra_sdk_asset::asset::Metadata; +use penumbra_sdk_asset::Value; +use penumbra_sdk_asset::ValueView; +use penumbra_sdk_dex::swap::SwapView; +use penumbra_sdk_dex::swap_claim::SwapClaimView; +use penumbra_sdk_fee::Fee; +use penumbra_sdk_keys::AddressView; +use penumbra_sdk_num::Amount; +use penumbra_sdk_shielded_pool::SpendView; +use penumbra_sdk_transaction::view::action_view::OutputView; +use penumbra_sdk_transaction::TransactionView; // Issues identified: // TODO: FeeView @@ -196,14 +196,14 @@ impl TransactionViewExt for TransactionView { if let Some(memo_view) = &self.body_view.memo_view { match memo_view { - penumbra_transaction::MemoView::Visible { + penumbra_sdk_transaction::MemoView::Visible { plaintext, ciphertext: _, } => { println!("Memo Sender: {}", &plaintext.return_address.address()); println!("Memo Text: \n{}\n", &plaintext.text); } - penumbra_transaction::MemoView::Opaque { ciphertext } => { + penumbra_sdk_transaction::MemoView::Opaque { ciphertext } => { println!("Encrypted Memo: \n{}\n", format_opaque_bytes(&ciphertext.0)); } } @@ -218,7 +218,7 @@ impl TransactionViewExt for TransactionView { let action: String; let row = match action_view { - penumbra_transaction::ActionView::Spend(spend) => { + penumbra_sdk_transaction::ActionView::Spend(spend) => { match spend { SpendView::Visible { spend: _, note } => { action = format!( @@ -235,7 +235,7 @@ impl TransactionViewExt for TransactionView { } } } - penumbra_transaction::ActionView::Output(output) => { + penumbra_sdk_transaction::ActionView::Output(output) => { match output { OutputView::Visible { output: _, @@ -256,7 +256,7 @@ impl TransactionViewExt for TransactionView { } } } - penumbra_transaction::ActionView::Swap(swap) => { + penumbra_sdk_transaction::ActionView::Swap(swap) => { // Typical swaps are one asset for another, but we can't know that for sure. match swap { SwapView::Visible { swap_plaintext, .. } => { @@ -302,7 +302,7 @@ impl TransactionViewExt for TransactionView { } } } - penumbra_transaction::ActionView::SwapClaim(swap_claim) => { + penumbra_sdk_transaction::ActionView::SwapClaim(swap_claim) => { match swap_claim { SwapClaimView::Visible { swap_claim, @@ -340,7 +340,7 @@ impl TransactionViewExt for TransactionView { } } } - penumbra_transaction::ActionView::Ics20Withdrawal(withdrawal) => { + penumbra_sdk_transaction::ActionView::Ics20Withdrawal(withdrawal) => { let unit = withdrawal.denom.best_unit_for(withdrawal.amount); action = format!( "{}{} via {} to {}", @@ -351,7 +351,7 @@ impl TransactionViewExt for TransactionView { ); ["Ics20 Withdrawal", &action] } - penumbra_transaction::ActionView::PositionOpen(position_open) => { + penumbra_sdk_transaction::ActionView::PositionOpen(position_open) => { let position = &position_open.position; /* TODO: leaving this around since we may want it to render prices let _unit_pair = DirectedUnitPair { @@ -371,52 +371,56 @@ impl TransactionViewExt for TransactionView { ); ["Open Liquidity Position", &action] } - penumbra_transaction::ActionView::PositionClose(_) => { + penumbra_sdk_transaction::ActionView::PositionClose(_) => { ["Close Liquitity Position", ""] } - penumbra_transaction::ActionView::PositionWithdraw(_) => { + penumbra_sdk_transaction::ActionView::PositionWithdraw(_) => { ["Withdraw Liquitity Position", ""] } - penumbra_transaction::ActionView::ProposalDepositClaim(proposal_deposit_claim) => { + penumbra_sdk_transaction::ActionView::ProposalDepositClaim( + proposal_deposit_claim, + ) => { action = format!( "Claim Deposit for Governance Proposal #{}", proposal_deposit_claim.proposal ); [&action, ""] } - penumbra_transaction::ActionView::ProposalSubmit(proposal_submit) => { + penumbra_sdk_transaction::ActionView::ProposalSubmit(proposal_submit) => { action = format!( "Submit Governance Proposal #{}", proposal_submit.proposal.id ); [&action, ""] } - penumbra_transaction::ActionView::ProposalWithdraw(proposal_withdraw) => { + penumbra_sdk_transaction::ActionView::ProposalWithdraw(proposal_withdraw) => { action = format!( "Withdraw Governance Proposal #{}", proposal_withdraw.proposal ); [&action, ""] } - penumbra_transaction::ActionView::IbcRelay(_) => ["IBC Relay", ""], - penumbra_transaction::ActionView::DelegatorVote(_) => ["Delegator Vote", ""], - penumbra_transaction::ActionView::ValidatorDefinition(_) => { + penumbra_sdk_transaction::ActionView::IbcRelay(_) => ["IBC Relay", ""], + penumbra_sdk_transaction::ActionView::DelegatorVote(_) => ["Delegator Vote", ""], + penumbra_sdk_transaction::ActionView::ValidatorDefinition(_) => { ["Upload Validator Definition", ""] } - penumbra_transaction::ActionView::ValidatorVote(_) => ["Validator Vote", ""], - penumbra_transaction::ActionView::CommunityPoolDeposit(_) => { + penumbra_sdk_transaction::ActionView::ValidatorVote(_) => ["Validator Vote", ""], + penumbra_sdk_transaction::ActionView::CommunityPoolDeposit(_) => { ["Community Pool Deposit", ""] } - penumbra_transaction::ActionView::CommunityPoolSpend(_) => { + penumbra_sdk_transaction::ActionView::CommunityPoolSpend(_) => { ["Community Pool Spend", ""] } - penumbra_transaction::ActionView::CommunityPoolOutput(_) => { + penumbra_sdk_transaction::ActionView::CommunityPoolOutput(_) => { ["Community Pool Output", ""] } - penumbra_transaction::ActionView::Delegate(_) => ["Delegation", ""], - penumbra_transaction::ActionView::Undelegate(_) => ["Undelegation", ""], - penumbra_transaction::ActionView::UndelegateClaim(_) => ["Undelegation Claim", ""], - penumbra_transaction::ActionView::ActionDutchAuctionSchedule(x) => { + penumbra_sdk_transaction::ActionView::Delegate(_) => ["Delegation", ""], + penumbra_sdk_transaction::ActionView::Undelegate(_) => ["Undelegation", ""], + penumbra_sdk_transaction::ActionView::UndelegateClaim(_) => { + ["Undelegation Claim", ""] + } + penumbra_sdk_transaction::ActionView::ActionDutchAuctionSchedule(x) => { let description = &x.action.description; let input: String = format_value_view(&create_value_view( @@ -439,11 +443,11 @@ impl TransactionViewExt for TransactionView { ); ["Dutch Auction Schedule", &action] } - penumbra_transaction::ActionView::ActionDutchAuctionEnd(x) => { + penumbra_sdk_transaction::ActionView::ActionDutchAuctionEnd(x) => { action = format!("{}", x.auction_id); ["Dutch Auction End", &action] } - penumbra_transaction::ActionView::ActionDutchAuctionWithdraw(x) => { + penumbra_sdk_transaction::ActionView::ActionDutchAuctionWithdraw(x) => { let inside = x .reserves .iter() diff --git a/crates/bin/pcli/tests/debug.rs b/crates/bin/pcli/tests/debug.rs index 05dbe26c27..00ee5b2426 100644 --- a/crates/bin/pcli/tests/debug.rs +++ b/crates/bin/pcli/tests/debug.rs @@ -1,5 +1,5 @@ use core::fmt::Debug; -use penumbra_proof_params::{SPEND_PROOF_PROVING_KEY, SPEND_PROOF_VERIFICATION_KEY}; +use penumbra_sdk_proof_params::{SPEND_PROOF_PROVING_KEY, SPEND_PROOF_VERIFICATION_KEY}; use std::{ fs::{self, OpenOptions}, io::Write, diff --git a/crates/bin/pcli/tests/network_integration.rs b/crates/bin/pcli/tests/network_integration.rs index b48f0e2ac2..d3549415f3 100644 --- a/crates/bin/pcli/tests/network_integration.rs +++ b/crates/bin/pcli/tests/network_integration.rs @@ -18,15 +18,15 @@ use std::{path::PathBuf, time::Duration}; use assert_cmd::Command; use directories::UserDirs; use once_cell::sync::Lazy; -use penumbra_stake::validator::ValidatorToml; +use penumbra_sdk_stake::validator::ValidatorToml; use predicates::prelude::*; use regex::Regex; use serde_json::Value; use tempfile::{tempdir, NamedTempFile, TempDir}; -use penumbra_keys::test_keys::{ADDRESS_0_STR, ADDRESS_1_STR, SEED_PHRASE}; -use penumbra_proto::core::transaction::v1::TransactionView as ProtoTransactionView; -use penumbra_transaction::view::TransactionView; +use penumbra_sdk_keys::test_keys::{ADDRESS_0_STR, ADDRESS_1_STR, SEED_PHRASE}; +use penumbra_sdk_proto::core::transaction::v1::TransactionView as ProtoTransactionView; +use penumbra_sdk_transaction::view::TransactionView; // The number "1020" is chosen so that this is bigger than u64::MAX // when accounting for the 10e18 scaling factor from the base denom. @@ -175,7 +175,7 @@ fn transaction_send_from_addr_0_to_addr_1() { assert!(matches!( &tv.body_view.action_views[0], - penumbra_transaction::ActionView::Spend(_) + penumbra_sdk_transaction::ActionView::Spend(_) )); // Inspect the TransactionView and ensure that we can read the memo text. @@ -184,12 +184,12 @@ fn transaction_send_from_addr_0_to_addr_1() { .memo_view .expect("can find MemoView in TransactionView"); match mv { - penumbra_transaction::MemoView::Visible { plaintext, .. } => { + penumbra_sdk_transaction::MemoView::Visible { plaintext, .. } => { tracing::info!(?plaintext, "plaintext memo"); tracing::info!(?memo_text, "expected memo text"); assert!(plaintext.text == memo_text); } - penumbra_transaction::MemoView::Opaque { .. } => { + penumbra_sdk_transaction::MemoView::Opaque { .. } => { panic!("MemoView for transaction was Opaque! We should be able to read this memo."); } } diff --git a/crates/bin/pcli/tests/proof.rs b/crates/bin/pcli/tests/proof.rs index 0632968e48..513d617f63 100644 --- a/crates/bin/pcli/tests/proof.rs +++ b/crates/bin/pcli/tests/proof.rs @@ -3,20 +3,20 @@ use decaf377::{Fq, Fr}; use decaf377_rdsa::{SigningKey, SpendAuth, VerificationKey}; -use penumbra_asset::{asset, Balance, Value}; -use penumbra_dex::swap::proof::{SwapProofPrivate, SwapProofPublic}; -use penumbra_dex::swap_claim::{SwapClaimProofPrivate, SwapClaimProofPublic}; -use penumbra_dex::{ +use penumbra_sdk_asset::{asset, Balance, Value}; +use penumbra_sdk_dex::swap::proof::{SwapProofPrivate, SwapProofPublic}; +use penumbra_sdk_dex::swap_claim::{SwapClaimProofPrivate, SwapClaimProofPublic}; +use penumbra_sdk_dex::{ swap::proof::SwapProof, swap::SwapPlaintext, swap_claim::proof::SwapClaimProof, BatchSwapOutputData, TradingPair, }; -use penumbra_fee::Fee; -use penumbra_governance::{ +use penumbra_sdk_fee::Fee; +use penumbra_sdk_governance::{ DelegatorVoteProof, DelegatorVoteProofPrivate, DelegatorVoteProofPublic, }; -use penumbra_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; -use penumbra_num::Amount; -use penumbra_proof_params::{ +use penumbra_sdk_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proof_params::{ CONVERT_PROOF_PROVING_KEY, CONVERT_PROOF_VERIFICATION_KEY, DELEGATOR_VOTE_PROOF_PROVING_KEY, DELEGATOR_VOTE_PROOF_VERIFICATION_KEY, NULLIFIER_DERIVATION_PROOF_PROVING_KEY, NULLIFIER_DERIVATION_PROOF_VERIFICATION_KEY, OUTPUT_PROOF_PROVING_KEY, @@ -24,16 +24,18 @@ use penumbra_proof_params::{ SWAPCLAIM_PROOF_PROVING_KEY, SWAPCLAIM_PROOF_VERIFICATION_KEY, SWAP_PROOF_PROVING_KEY, SWAP_PROOF_VERIFICATION_KEY, }; -use penumbra_sct::Nullifier; -use penumbra_shielded_pool::output::{OutputProofPrivate, OutputProofPublic}; -use penumbra_shielded_pool::Note; -use penumbra_shielded_pool::{ +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_shielded_pool::output::{OutputProofPrivate, OutputProofPublic}; +use penumbra_sdk_shielded_pool::Note; +use penumbra_sdk_shielded_pool::{ NullifierDerivationProof, NullifierDerivationProofPrivate, NullifierDerivationProofPublic, OutputProof, SpendProof, SpendProofPrivate, SpendProofPublic, }; -use penumbra_stake::undelegate_claim::{UndelegateClaimProofPrivate, UndelegateClaimProofPublic}; -use penumbra_stake::{IdentityKey, Penalty, UnbondingToken, UndelegateClaimProof}; -use penumbra_tct as tct; +use penumbra_sdk_stake::undelegate_claim::{ + UndelegateClaimProofPrivate, UndelegateClaimProofPublic, +}; +use penumbra_sdk_stake::{IdentityKey, Penalty, UnbondingToken, UndelegateClaimProof}; +use penumbra_sdk_tct as tct; use rand_core::OsRng; #[test] diff --git a/crates/bin/pcli/tests/testnet.rs b/crates/bin/pcli/tests/testnet.rs index 6b36c21e51..83b6f5ba80 100644 --- a/crates/bin/pcli/tests/testnet.rs +++ b/crates/bin/pcli/tests/testnet.rs @@ -10,7 +10,7 @@ use assert_cmd::Command; use predicates::prelude::*; use tempfile::{tempdir, TempDir}; -use penumbra_keys::test_keys::SEED_PHRASE; +use penumbra_sdk_keys::test_keys::SEED_PHRASE; /// The URL for the public testnet pd endpoint. const NODE_URL: &str = "https://testnet.plinfra.net"; diff --git a/crates/bin/pclientd/Cargo.toml b/crates/bin/pclientd/Cargo.toml index 69749becbb..2ce93e5aae 100644 --- a/crates/bin/pclientd/Cargo.toml +++ b/crates/bin/pclientd/Cargo.toml @@ -1,16 +1,20 @@ [package] name = "pclientd" +authors = {workspace = true} +repository = {workspace = true} +description = "Penumbra view server daemon" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] default = ["std", "download-proving-keys"] std = ["ibc-types/std"] -sct-divergence-check = ["penumbra-view/sct-divergence-check"] integration-testnet = [] +sct-divergence-check = ["penumbra-sdk-view/sct-divergence-check"] # Enable to use rayon parallelism for crypto operations -parallel = ["penumbra-transaction/parallel"] -download-proving-keys = ["penumbra-proof-params/download-proving-keys"] +parallel = ["penumbra-sdk-transaction/parallel"] +download-proving-keys = ["penumbra-sdk-proof-params/download-proving-keys"] [dependencies] anyhow = {workspace = true} @@ -27,14 +31,14 @@ http = {workspace = true} http-body = {workspace = true} metrics = {workspace = true} parking_lot = {workspace = true} -penumbra-app = {workspace = true, default-features = false} -penumbra-asset = {workspace = true, default-features = true} -penumbra-custody = {workspace = true} -penumbra-keys = {workspace = true, default-features = true} -penumbra-proto = {workspace = true, features = ["rpc"], default-features = true} -penumbra-tct = {workspace = true, default-features = true} -penumbra-transaction = {workspace = true, default-features = true} -penumbra-view = {workspace = true} +penumbra-sdk-app = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = true} +penumbra-sdk-custody = {workspace = true} +penumbra-sdk-keys = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, features = ["rpc"], default-features = true} +penumbra-sdk-tct = {workspace = true, default-features = true} +penumbra-sdk-transaction = {workspace = true, default-features = true} +penumbra-sdk-view = {workspace = true} prost = {workspace = true} rand = {workspace = true} rand_core = {workspace = true, features = ["getrandom"]} @@ -60,7 +64,7 @@ assert_cmd = {workspace = true} base64 = {workspace = true} ibc-proto = {workspace = true, default-features = false, features = ["server"]} ibc-types = {workspace = true, default-features = true} -penumbra-proof-params = {workspace = true, features = [ +penumbra-sdk-proof-params = {workspace = true, features = [ "bundled-proving-keys", "download-proving-keys", ], default-features = true} diff --git a/crates/bin/pclientd/src/lib.rs b/crates/bin/pclientd/src/lib.rs index d198d4d533..9a72429d7f 100644 --- a/crates/bin/pclientd/src/lib.rs +++ b/crates/bin/pclientd/src/lib.rs @@ -8,18 +8,18 @@ use anyhow::{Context, Result}; use camino::Utf8PathBuf; use clap::Parser; use directories::ProjectDirs; -use penumbra_custody::policy::{AuthPolicy, PreAuthorizationPolicy}; -use penumbra_custody::soft_kms::{self, SoftKms}; -use penumbra_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; -use penumbra_keys::FullViewingKey; -use penumbra_proto::{ +use penumbra_sdk_custody::policy::{AuthPolicy, PreAuthorizationPolicy}; +use penumbra_sdk_custody::soft_kms::{self, SoftKms}; +use penumbra_sdk_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_proto::{ core::app::v1::{ query_service_client::QueryServiceClient as AppQueryServiceClient, AppParametersRequest, }, custody::v1::custody_service_server::CustodyServiceServer, view::v1::view_service_server::ViewServiceServer, }; -use penumbra_view::{Storage, ViewServer}; +use penumbra_sdk_view::{Storage, ViewServer}; use serde::{Deserialize, Serialize}; use serde_with::{serde_as, DisplayFromStr}; @@ -338,7 +338,7 @@ impl Opt { .add_service(tonic_web::enable( tonic_reflection::server::Builder::configure() .register_encoded_file_descriptor_set( - penumbra_proto::FILE_DESCRIPTOR_SET, + penumbra_sdk_proto::FILE_DESCRIPTOR_SET, ) .build_v1() .with_context(|| "could not configure grpc reflection service")?, diff --git a/crates/bin/pclientd/tests/network_integration.rs b/crates/bin/pclientd/tests/network_integration.rs index 6c9c282171..3b28ae141b 100644 --- a/crates/bin/pclientd/tests/network_integration.rs +++ b/crates/bin/pclientd/tests/network_integration.rs @@ -16,10 +16,10 @@ use tempfile::tempdir; use tokio::process::Command as TokioCommand; use pclientd::PclientdConfig; -use penumbra_asset::{asset, Value, STAKING_TOKEN_ASSET_ID}; -use penumbra_custody::soft_kms; -use penumbra_keys::test_keys; -use penumbra_proto::{ +use penumbra_sdk_asset::{asset, Value, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_custody::soft_kms; +use penumbra_sdk_keys::test_keys; +use penumbra_sdk_proto::{ core::{component::fee::v1::Fee, component::ibc::v1::IbcRelay}, custody::v1::{custody_service_client::CustodyServiceClient, AuthorizeRequest}, penumbra::view::v1::view_service_client::ViewServiceClient, @@ -29,7 +29,7 @@ use penumbra_proto::{ TransactionPlannerRequest, WitnessAndBuildRequest, }, }; -use penumbra_view::ViewClient; +use penumbra_sdk_view::ViewClient; fn generate_config() -> anyhow::Result { Ok(PclientdConfig { @@ -97,7 +97,7 @@ async fn transaction_send_flow() -> anyhow::Result<()> { // Here we don't want to use the Penumbra Rust libraries much, because // we're executing as if we were a Go program that had to construct all these // protos manually, with no access to Penumbra crypto. - use penumbra_proto::view::v1::transaction_planner_request as tpr; + use penumbra_sdk_proto::view::v1::transaction_planner_request as tpr; // Specifically, pretend we're relaying IBC messages, so pull one in: @@ -279,8 +279,8 @@ async fn swap_claim_flow() -> anyhow::Result<()> { // Here we don't want to use the Penumbra Rust libraries much, because // we're executing as if we were a Go program that had to construct all these // protos manually, with no access to Penumbra crypto. - use penumbra_proto::core::num::v1 as num; - use penumbra_proto::view::v1::transaction_planner_request as tpr; + use penumbra_sdk_proto::core::num::v1 as num; + use penumbra_sdk_proto::view::v1::transaction_planner_request as tpr; // 5.1. Generate a transaction plan performing a swap. Since there are no liquidity positions // on this test network, we'll expect to get all our inputs back. @@ -314,12 +314,13 @@ async fn swap_claim_flow() -> anyhow::Result<()> { .ok_or_else(|| anyhow::anyhow!("TransactionPlannerResponse missing plan"))?; // Hold on to the swap plaintext to be able to claim. - let swap_plaintext = TryInto::::try_into(plan.clone())? - .swap_plans() - .next() - .expect("swap plan must be present") - .swap_plaintext - .clone(); + let swap_plaintext = + TryInto::::try_into(plan.clone())? + .swap_plans() + .next() + .expect("swap plan must be present") + .swap_plaintext + .clone(); // 5.2. Get authorization data for the transaction from pclientd (signing). let auth_data = custody_client diff --git a/crates/bin/pclientd/tests/testnet.rs b/crates/bin/pclientd/tests/testnet.rs index 7275b98cee..e6a407ed6c 100644 --- a/crates/bin/pclientd/tests/testnet.rs +++ b/crates/bin/pclientd/tests/testnet.rs @@ -11,9 +11,9 @@ use tempfile::tempdir; use tokio::process::Command as TokioCommand; use pclientd::PclientdConfig; -use penumbra_keys::test_keys; -use penumbra_proto::view::v1::view_service_client::ViewServiceClient; -use penumbra_view::ViewClient; +use penumbra_sdk_keys::test_keys; +use penumbra_sdk_proto::view::v1::view_service_client::ViewServiceClient; +use penumbra_sdk_view::ViewClient; const NODE_URL: &str = "https://testnet.plinfra.net"; diff --git a/crates/bin/pd/Cargo.toml b/crates/bin/pd/Cargo.toml index 039f0d58d7..cdd286f2ae 100644 --- a/crates/bin/pd/Cargo.toml +++ b/crates/bin/pd/Cargo.toml @@ -7,7 +7,7 @@ description = "The node software for the Penumbra Zone" repository = { workspace = true } homepage = { workspace = true } license = { workspace = true } -publish = false +publish = true rust-version = "1.75" [package.metadata.dist] @@ -16,7 +16,7 @@ dist = true [features] default = ["download-proving-keys"] std = ["ibc-types/std"] -download-proving-keys = ["penumbra-proof-params/download-proving-keys"] +download-proving-keys = ["penumbra-sdk-proof-params/download-proving-keys"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -59,26 +59,26 @@ metrics-util = "0.18.0" mime_guess = "2" once_cell = { workspace = true } pbjson-types = { workspace = true } -penumbra-app = { workspace = true, default-features = true } -penumbra-asset = { workspace = true, default-features = true } -penumbra-auto-https = { path = "../../util/auto-https" } -penumbra-compact-block = { workspace = true, default-features = true } -penumbra-custody = { workspace = true } -penumbra-auction = { workspace = true, features = ["parallel"], default-features = true } -penumbra-dex = { workspace = true, features = ["parallel"], default-features = true } -penumbra-fee = { workspace = true, default-features = true } -penumbra-governance = { workspace = true, features = ["parallel"], default-features = true } -penumbra-ibc = { workspace = true, features = ["rpc"], default-features = true } -penumbra-keys = { workspace = true, default-features = true } -penumbra-num = { workspace = true, default-features = true } -penumbra-proto = { workspace = true, default-features = true } -penumbra-sct = { workspace = true, default-features = true } -penumbra-shielded-pool = { workspace = true, features = ["parallel"], default-features = true } -penumbra-stake = { workspace = true, features = ["parallel"], default-features = true } -penumbra-tct = { workspace = true, default-features = true } -penumbra-tendermint-proxy = { path = "../../util/tendermint-proxy" } -penumbra-tower-trace = { path = "../../util/tower-trace" } -penumbra-transaction = { workspace = true, default-features = true } +penumbra-sdk-app = { workspace = true, default-features = true } +penumbra-sdk-asset = { workspace = true, default-features = true } +penumbra-sdk-auto-https = { version = "0.82.0-alpha.0", path = "../../util/auto-https" } +penumbra-sdk-compact-block = { workspace = true, default-features = true } +penumbra-sdk-custody = { workspace = true } +penumbra-sdk-auction = { workspace = true, features = ["parallel"], default-features = true } +penumbra-sdk-dex = { workspace = true, features = ["parallel"], default-features = true } +penumbra-sdk-fee = { workspace = true, default-features = true } +penumbra-sdk-governance = { workspace = true, features = ["parallel"], default-features = true } +penumbra-sdk-ibc = { workspace = true, features = ["rpc"], default-features = true } +penumbra-sdk-keys = { workspace = true, default-features = true } +penumbra-sdk-num = { workspace = true, default-features = true } +penumbra-sdk-proto = { workspace = true, default-features = true } +penumbra-sdk-sct = { workspace = true, default-features = true } +penumbra-sdk-shielded-pool = { workspace = true, features = ["parallel"], default-features = true } +penumbra-sdk-stake = { workspace = true, features = ["parallel"], default-features = true } +penumbra-sdk-tct = { workspace = true, default-features = true } +penumbra-sdk-tendermint-proxy = { version = "0.82.0-alpha.0", path = "../../util/tendermint-proxy" } +penumbra-sdk-tower-trace = { version = "0.82.0-alpha.0", path = "../../util/tower-trace" } +penumbra-sdk-transaction = { workspace = true, default-features = true } pin-project = { workspace = true } pin-project-lite = { workspace = true } prost = { workspace = true } @@ -119,7 +119,7 @@ url = { workspace = true } zip = "0.6" [dev-dependencies] -penumbra-proof-params = { workspace = true, features = [ +penumbra-sdk-proof-params = { workspace = true, features = [ "bundled-proving-keys", "download-proving-keys", ], default-features = true } diff --git a/crates/bin/pd/src/cli.rs b/crates/bin/pd/src/cli.rs index 5c2b71ddb8..52e3b1d0d9 100644 --- a/crates/bin/pd/src/cli.rs +++ b/crates/bin/pd/src/cli.rs @@ -174,7 +174,7 @@ pub enum NetworkCommand { /// generate a wallet, view its address, then generate a devnet /// with that address included in the base allocations. #[clap(long)] - allocation_address: Option, + allocation_address: Option, #[clap(long, parse(from_os_str))] /// Path to JSON file containing initial validator configs [default: latest testnet]. validators_input_file: Option, @@ -228,7 +228,7 @@ pub enum NetworkCommand { archive_url: Option, /// Human-readable name to identify node on network // Default: 'node-#' - #[clap(long, env = "PENUMBRA_PD_TM_MONIKER")] + #[clap(long, env = "PENUMBRA_PD_TM_EXTERNAL_ADDR")] moniker: Option, /// Public URL to advertise for this node's Tendermint P2P service. /// Setting this option will instruct other nodes on the network to connect diff --git a/crates/bin/pd/src/lib.rs b/crates/bin/pd/src/lib.rs index 01c6a2f02a..c15012033b 100644 --- a/crates/bin/pd/src/lib.rs +++ b/crates/bin/pd/src/lib.rs @@ -13,7 +13,7 @@ pub mod network; pub mod zipserve; pub use crate::metrics::register_metrics; -pub use penumbra_app::app::App; +pub use penumbra_sdk_app::app::App; pub const MINIFRONT_ARCHIVE_BYTES: &[u8] = include_bytes!("../../../../assets/minifront.zip"); diff --git a/crates/bin/pd/src/main.rs b/crates/bin/pd/src/main.rs index b852a1d0ea..a064de522c 100644 --- a/crates/bin/pd/src/main.rs +++ b/crates/bin/pd/src/main.rs @@ -19,9 +19,9 @@ use pd::{ join::network_join, }, }; -use penumbra_app::app_version::check_and_update_app_version; -use penumbra_app::{APP_VERSION, SUBSTORE_PREFIXES}; -use penumbra_tower_trace::remote_addr; +use penumbra_sdk_app::app_version::check_and_update_app_version; +use penumbra_sdk_app::{APP_VERSION, SUBSTORE_PREFIXES}; +use penumbra_sdk_tower_trace::remote_addr; use rand::Rng; use rand_core::OsRng; use rustls::crypto::aws_lc_rs; @@ -127,7 +127,7 @@ async fn main() -> anyhow::Result<()> { "starting pd" ); - if penumbra_app::app::App::is_ready(storage.latest_snapshot()).await { + if penumbra_sdk_app::app::App::is_ready(storage.latest_snapshot()).await { tracing::info!("application ready to start"); } else { tracing::warn!("application is halted, refusing to start"); @@ -135,23 +135,24 @@ async fn main() -> anyhow::Result<()> { } let abci_server = tokio::task::spawn( - penumbra_app::server::new(storage.clone()).listen_tcp(abci_bind), + penumbra_sdk_app::server::new(storage.clone()).listen_tcp(abci_bind), ); - let tm_proxy = penumbra_tendermint_proxy::TendermintProxy::new(cometbft_addr); + let tm_proxy = penumbra_sdk_tendermint_proxy::TendermintProxy::new(cometbft_addr); - let grpc_routes = penumbra_app::rpc::routes(&storage, tm_proxy, enable_expensive_rpc)? - .into_axum_router() - .layer( - ServiceBuilder::new().layer(TraceLayer::new_for_grpc().make_span_with( - |req: &http::Request<_>| match remote_addr(req) { - Some(remote_addr) => { - tracing::error_span!("grpc", ?remote_addr) - } - None => tracing::error_span!("grpc"), - }, - )), - ); + let grpc_routes = + penumbra_sdk_app::rpc::routes(&storage, tm_proxy, enable_expensive_rpc)? + .into_axum_router() + .layer( + ServiceBuilder::new().layer(TraceLayer::new_for_grpc().make_span_with( + |req: &http::Request<_>| match remote_addr(req) { + Some(remote_addr) => { + tracing::error_span!("grpc", ?remote_addr) + } + None => tracing::error_span!("grpc"), + }, + )), + ); // Create Axum routes for the frontend app. let frontend = pd::zipserve::router("/app/", pd::MINIFRONT_ARCHIVE_BYTES); @@ -182,7 +183,7 @@ async fn main() -> anyhow::Result<()> { let (grpc_server, acme_worker) = match grpc_auto_https { Some(domain) => { let (acceptor, acme_worker) = - penumbra_auto_https::axum_acceptor(pd_home, domain, !acme_staging); + penumbra_sdk_auto_https::axum_acceptor(pd_home, domain, !acme_staging); let acme_worker = tokio::spawn(acme_worker); let grpc_server = tokio::task::spawn(grpc_server.acceptor(acceptor).serve(make_svc)); @@ -196,7 +197,7 @@ async fn main() -> anyhow::Result<()> { }; // Configure a Prometheus recorder and exporter. - use penumbra_dex::component::metrics::PrometheusBuilderExt; + use penumbra_sdk_dex::component::metrics::PrometheusBuilderExt; let (recorder, exporter) = PrometheusBuilder::new() .with_http_listener(metrics_bind) // Set explicit buckets so that Prometheus endpoint emits true histograms, rather diff --git a/crates/bin/pd/src/metrics.rs b/crates/bin/pd/src/metrics.rs index cfd7016a42..2c23fd4901 100644 --- a/crates/bin/pd/src/metrics.rs +++ b/crates/bin/pd/src/metrics.rs @@ -23,7 +23,7 @@ pub mod sleep_worker; /// functions in our dependencies. pub fn register_metrics() { // This will register metrics for all components. - penumbra_app::register_metrics(); + penumbra_sdk_app::register_metrics(); self::sleep_worker::register_metrics(); self::cpu_worker::register_metrics(); } diff --git a/crates/bin/pd/src/migrate.rs b/crates/bin/pd/src/migrate.rs index bb61b860a5..a438db45df 100644 --- a/crates/bin/pd/src/migrate.rs +++ b/crates/bin/pd/src/migrate.rs @@ -15,13 +15,13 @@ mod testnet77; mod testnet78; use anyhow::{ensure, Context}; -use penumbra_governance::StateReadExt; -use penumbra_sct::component::clock::EpochRead; +use penumbra_sdk_governance::StateReadExt; +use penumbra_sdk_sct::component::clock::EpochRead; use std::path::{Path, PathBuf}; use tracing::instrument; use cnidarium::Storage; -use penumbra_app::SUBSTORE_PREFIXES; +use penumbra_sdk_app::SUBSTORE_PREFIXES; use flate2::write::GzEncoder; use flate2::Compression; diff --git a/crates/bin/pd/src/migrate/mainnet1.rs b/crates/bin/pd/src/migrate/mainnet1.rs index 2123535793..62dd22323c 100644 --- a/crates/bin/pd/src/migrate/mainnet1.rs +++ b/crates/bin/pd/src/migrate/mainnet1.rs @@ -6,13 +6,13 @@ use cnidarium::{StateDelta, Storage}; use ibc_types::core::channel::{Packet, PortId}; use ibc_types::transfer::acknowledgement::TokenTransferAcknowledgement; use jmt::RootHash; -use penumbra_app::app::StateReadExt as _; -use penumbra_app::app_version::migrate_app_version; -use penumbra_governance::StateWriteExt; -use penumbra_ibc::{component::ChannelStateWriteExt as _, IbcRelay}; -use penumbra_sct::component::clock::EpochManager; -use penumbra_sct::component::clock::EpochRead; -use penumbra_transaction::{Action, Transaction}; +use penumbra_sdk_app::app::StateReadExt as _; +use penumbra_sdk_app::app_version::migrate_app_version; +use penumbra_sdk_governance::StateWriteExt; +use penumbra_sdk_ibc::{component::ChannelStateWriteExt as _, IbcRelay}; +use penumbra_sdk_sct::component::clock::EpochManager; +use penumbra_sdk_sct::component::clock::EpochRead; +use penumbra_sdk_transaction::{Action, Transaction}; use std::path::PathBuf; use tracing::instrument; @@ -143,7 +143,7 @@ pub async fn migrate( // The migration is complete, now we need to generate a genesis file. To do this, we need // to lookup a validator view from the chain, and specify the post-upgrade app hash and // initial height. - let app_state = penumbra_app::genesis::Content { + let app_state = penumbra_sdk_app::genesis::Content { chain_id, ..Default::default() }; diff --git a/crates/bin/pd/src/migrate/mainnet2.rs b/crates/bin/pd/src/migrate/mainnet2.rs index 32a4c4d364..361f194417 100644 --- a/crates/bin/pd/src/migrate/mainnet2.rs +++ b/crates/bin/pd/src/migrate/mainnet2.rs @@ -3,11 +3,11 @@ //! error messages from counterparty chains are processed. use cnidarium::{StateDelta, Storage}; use jmt::RootHash; -use penumbra_app::app::StateReadExt as _; -use penumbra_app::app_version::migrate_app_version; -use penumbra_governance::StateWriteExt; -use penumbra_sct::component::clock::EpochManager; -use penumbra_sct::component::clock::EpochRead; +use penumbra_sdk_app::app::StateReadExt as _; +use penumbra_sdk_app::app_version::migrate_app_version; +use penumbra_sdk_governance::StateWriteExt; +use penumbra_sdk_sct::component::clock::EpochManager; +use penumbra_sdk_sct::component::clock::EpochRead; use std::path::PathBuf; use tracing::instrument; @@ -62,7 +62,7 @@ pub async fn migrate( // The migration is complete, now we need to generate a genesis file. To do this, we need // to lookup a validator view from the chain, and specify the post-upgrade app hash and // initial height. - let app_state = penumbra_app::genesis::Content { + let app_state = penumbra_sdk_app::genesis::Content { chain_id, ..Default::default() }; diff --git a/crates/bin/pd/src/migrate/reset_halt_bit.rs b/crates/bin/pd/src/migrate/reset_halt_bit.rs index a2480cd019..843021c5de 100644 --- a/crates/bin/pd/src/migrate/reset_halt_bit.rs +++ b/crates/bin/pd/src/migrate/reset_halt_bit.rs @@ -2,7 +2,7 @@ use anyhow; use cnidarium::{StateDelta, Storage}; -use penumbra_governance::StateWriteExt as _; +use penumbra_sdk_governance::StateWriteExt as _; use std::path::PathBuf; pub async fn migrate( diff --git a/crates/bin/pd/src/migrate/simple.rs b/crates/bin/pd/src/migrate/simple.rs index 60be34387e..8a8cb5749f 100644 --- a/crates/bin/pd/src/migrate/simple.rs +++ b/crates/bin/pd/src/migrate/simple.rs @@ -3,8 +3,8 @@ use anyhow; use cnidarium::{StateDelta, StateWrite, Storage}; use jmt::RootHash; -use penumbra_app::app::StateReadExt as _; -use penumbra_sct::component::clock::{EpochManager, EpochRead}; +use penumbra_sdk_app::app::StateReadExt as _; +use penumbra_sdk_sct::component::clock::{EpochManager, EpochRead}; use std::path::PathBuf; use crate::network::generate::NetworkConfig; @@ -43,7 +43,7 @@ pub async fn migrate( /* ---------- generate genesis ------------ */ let chain_id = migrated_state.get_chain_id().await?; - let app_state = penumbra_app::genesis::Content { + let app_state = penumbra_sdk_app::genesis::Content { chain_id, ..Default::default() }; diff --git a/crates/bin/pd/src/migrate/testnet72.rs b/crates/bin/pd/src/migrate/testnet72.rs index f291513074..e7a1409f39 100644 --- a/crates/bin/pd/src/migrate/testnet72.rs +++ b/crates/bin/pd/src/migrate/testnet72.rs @@ -4,14 +4,14 @@ use anyhow; use cnidarium::{Snapshot, StateDelta, StateRead, StateWrite, Storage}; use futures::StreamExt as _; use jmt::RootHash; -use penumbra_app::app::StateReadExt as _; -use penumbra_app::SUBSTORE_PREFIXES; -use penumbra_proto::core::component::sct::v1::query_service_server::QueryService; -use penumbra_proto::penumbra::core::component as pb; -use penumbra_proto::StateWriteProto; -use penumbra_sct::component::clock::{EpochManager, EpochRead}; -use penumbra_sct::component::rpc::Server as SctServer; -use penumbra_tct::Position; +use penumbra_sdk_app::app::StateReadExt as _; +use penumbra_sdk_app::SUBSTORE_PREFIXES; +use penumbra_sdk_proto::core::component::sct::v1::query_service_server::QueryService; +use penumbra_sdk_proto::penumbra::core::component as pb; +use penumbra_sdk_proto::StateWriteProto; +use penumbra_sdk_sct::component::clock::{EpochManager, EpochRead}; +use penumbra_sdk_sct::component::rpc::Server as SctServer; +use penumbra_sdk_tct::Position; use prost::Message; use std::path::PathBuf; use std::sync::Arc; @@ -169,7 +169,7 @@ pub async fn migrate( // to lookup a validator view from the chain, and specify the post-upgrade app hash and // initial height. let chain_id = migrated_state.get_chain_id().await?; - let app_state = penumbra_app::genesis::Content { + let app_state = penumbra_sdk_app::genesis::Content { chain_id, ..Default::default() }; diff --git a/crates/bin/pd/src/migrate/testnet74.rs b/crates/bin/pd/src/migrate/testnet74.rs index 3b7769b3e9..9ef62b4962 100644 --- a/crates/bin/pd/src/migrate/testnet74.rs +++ b/crates/bin/pd/src/migrate/testnet74.rs @@ -5,12 +5,12 @@ use anyhow; use cnidarium::{EscapedByteSlice, Snapshot, StateDelta, StateRead, StateWrite, Storage}; use futures::StreamExt as _; use jmt::RootHash; -use penumbra_app::{app::StateReadExt as _, SUBSTORE_PREFIXES}; -use penumbra_auction::{params::AuctionParameters, StateWriteExt}; -use penumbra_dex::SwapExecution; -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::component as pb, StateReadProto, StateWriteProto}; -use penumbra_sct::component::clock::{EpochManager, EpochRead}; +use penumbra_sdk_app::{app::StateReadExt as _, SUBSTORE_PREFIXES}; +use penumbra_sdk_auction::{params::AuctionParameters, StateWriteExt}; +use penumbra_sdk_dex::SwapExecution; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::component as pb, StateReadProto, StateWriteProto}; +use penumbra_sdk_sct::component::clock::{EpochManager, EpochRead}; use std::path::PathBuf; use crate::network::generate::NetworkConfig; @@ -173,7 +173,7 @@ pub async fn migrate( // to lookup a validator view from the chain, and specify the post-upgrade app hash and // initial height. let chain_id = migrated_state.get_chain_id().await?; - let app_state = penumbra_app::genesis::Content { + let app_state = penumbra_sdk_app::genesis::Content { chain_id, ..Default::default() }; diff --git a/crates/bin/pd/src/migrate/testnet76.rs b/crates/bin/pd/src/migrate/testnet76.rs index a3bb4eb682..426f40fffe 100644 --- a/crates/bin/pd/src/migrate/testnet76.rs +++ b/crates/bin/pd/src/migrate/testnet76.rs @@ -6,14 +6,14 @@ use cnidarium::{Snapshot, StateDelta, Storage}; use futures::TryStreamExt; use jmt::RootHash; use pbjson_types::Any; -use penumbra_app::app::StateReadExt as _; -use penumbra_asset::Balance; -use penumbra_auction::auction::dutch::DutchAuction; -use penumbra_governance::StateWriteExt; -use penumbra_proto::{DomainType, StateReadProto, StateWriteProto}; -use penumbra_sct::component::clock::{EpochManager, EpochRead}; -use penumbra_shielded_pool::params::ShieldedPoolParameters; -use penumbra_shielded_pool::{component::StateWriteExt as _, fmd::Parameters as FmdParameters}; +use penumbra_sdk_app::app::StateReadExt as _; +use penumbra_sdk_asset::Balance; +use penumbra_sdk_auction::auction::dutch::DutchAuction; +use penumbra_sdk_governance::StateWriteExt; +use penumbra_sdk_proto::{DomainType, StateReadProto, StateWriteProto}; +use penumbra_sdk_sct::component::clock::{EpochManager, EpochRead}; +use penumbra_sdk_shielded_pool::params::ShieldedPoolParameters; +use penumbra_sdk_shielded_pool::{component::StateWriteExt as _, fmd::Parameters as FmdParameters}; use std::path::PathBuf; use tracing::instrument; @@ -28,7 +28,7 @@ use crate::network::generate::NetworkConfig; /// // *outside* of the auction component, and recorded in the DEX VCB instead. /// 3. Writing the aggregate VCB balance for each asset to the chain state. async fn heal_auction_vcb(delta: &mut StateDelta) -> anyhow::Result<()> { - let key_prefix_auctions = penumbra_auction::state_key::auction_store::prefix(); + let key_prefix_auctions = penumbra_sdk_auction::state_key::auction_store::prefix(); let all_auctions = delta .prefix_proto::(&key_prefix_auctions) .map_ok(|(_, v)| DutchAuction::decode(v.value).expect("only dutch auctions")) @@ -39,12 +39,12 @@ async fn heal_auction_vcb(delta: &mut StateDelta) -> anyhow::Result<() .into_iter() .filter(|auction| auction.state.sequence <= 1) .fold(Balance::zero(), |acc, auction| { - let input_reserves = penumbra_asset::Value { + let input_reserves = penumbra_sdk_asset::Value { asset_id: auction.description.input.asset_id, amount: auction.state.input_reserves, }; - let output_reserves = penumbra_asset::Value { + let output_reserves = penumbra_sdk_asset::Value { asset_id: auction.description.output_id, amount: auction.state.output_reserves, }; @@ -57,7 +57,7 @@ async fn heal_auction_vcb(delta: &mut StateDelta) -> anyhow::Result<() for value in total_vcb.provided() { tracing::debug!(?value, "writing aggregate VCB balance for asset"); let key_vcb_balance = - penumbra_auction::state_key::value_balance::for_asset(&value.asset_id); + penumbra_sdk_auction::state_key::value_balance::for_asset(&value.asset_id); delta.put(key_vcb_balance, value.amount); } @@ -127,7 +127,7 @@ pub async fn migrate( // The migration is complete, now we need to generate a genesis file. To do this, we need // to lookup a validator view from the chain, and specify the post-upgrade app hash and // initial height. - let app_state = penumbra_app::genesis::Content { + let app_state = penumbra_sdk_app::genesis::Content { chain_id, ..Default::default() }; diff --git a/crates/bin/pd/src/migrate/testnet77.rs b/crates/bin/pd/src/migrate/testnet77.rs index d92c6373a3..9df111c4ee 100644 --- a/crates/bin/pd/src/migrate/testnet77.rs +++ b/crates/bin/pd/src/migrate/testnet77.rs @@ -5,10 +5,10 @@ use anyhow::Context; use cnidarium::{StateDelta, Storage}; use jmt::RootHash; -use penumbra_app::app::StateReadExt as _; -use penumbra_governance::StateWriteExt; -use penumbra_sct::component::clock::EpochManager; -use penumbra_sct::component::clock::EpochRead; +use penumbra_sdk_app::app::StateReadExt as _; +use penumbra_sdk_governance::StateWriteExt; +use penumbra_sdk_sct::component::clock::EpochManager; +use penumbra_sdk_sct::component::clock::EpochRead; use std::path::PathBuf; use tracing::instrument; @@ -51,7 +51,7 @@ pub async fn migrate( // The migration is complete, now we need to generate a genesis file. To do this, we need // to lookup a validator view from the chain, and specify the post-upgrade app hash and // initial height. - let app_state = penumbra_app::genesis::Content { + let app_state = penumbra_sdk_app::genesis::Content { chain_id, ..Default::default() }; diff --git a/crates/bin/pd/src/migrate/testnet78.rs b/crates/bin/pd/src/migrate/testnet78.rs index 3d6bc886ce..b4811eb486 100644 --- a/crates/bin/pd/src/migrate/testnet78.rs +++ b/crates/bin/pd/src/migrate/testnet78.rs @@ -6,19 +6,19 @@ use cnidarium::{Snapshot, StateDelta, StateWrite, Storage}; use futures::TryStreamExt as _; use futures::{pin_mut, StreamExt}; use jmt::RootHash; -use penumbra_app::app::StateReadExt as _; -use penumbra_dex::component::{PositionManager, StateReadExt, StateWriteExt}; -use penumbra_dex::lp::position; -use penumbra_dex::lp::position::Position; -use penumbra_governance::proposal_state::State as ProposalState; -use penumbra_governance::Proposal; -use penumbra_governance::StateReadExt as _; -use penumbra_governance::StateWriteExt as _; -use penumbra_proto::core::component::governance::v1 as pb_governance; -use penumbra_proto::{StateReadProto, StateWriteProto}; -use penumbra_sct::component::clock::EpochManager; -use penumbra_sct::component::clock::EpochRead; -use penumbra_stake::validator::Validator; +use penumbra_sdk_app::app::StateReadExt as _; +use penumbra_sdk_dex::component::{PositionManager, StateReadExt, StateWriteExt}; +use penumbra_sdk_dex::lp::position; +use penumbra_sdk_dex::lp::position::Position; +use penumbra_sdk_governance::proposal_state::State as ProposalState; +use penumbra_sdk_governance::Proposal; +use penumbra_sdk_governance::StateReadExt as _; +use penumbra_sdk_governance::StateWriteExt as _; +use penumbra_sdk_proto::core::component::governance::v1 as pb_governance; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_sct::component::clock::EpochManager; +use penumbra_sdk_sct::component::clock::EpochRead; +use penumbra_sdk_stake::validator::Validator; use std::fs::OpenOptions; use std::io::Write; use std::path::PathBuf; @@ -116,7 +116,7 @@ pub async fn migrate( tracing::info!("migration completed, generating genesis and signing state..."); /* `Migration::complete`: the state transition has been performed, we prepare the checkpointed genesis and signing state */ - let app_state = penumbra_app::genesis::Content { + let app_state = penumbra_sdk_app::genesis::Content { chain_id, ..Default::default() }; @@ -194,7 +194,7 @@ async fn update_dex_params(delta: &mut StateDelta) -> anyhow::Result<( /// Reindex opened liquidity positions to augment the price indexes. async fn reindex_dex_positions(delta: &mut StateDelta) -> anyhow::Result<()> { tracing::info!("running dex re-indexing migration"); - let prefix_key_lp = penumbra_dex::state_key::all_positions(); + let prefix_key_lp = penumbra_sdk_dex::state_key::all_positions(); let stream_all_lp = delta.prefix::(&prefix_key_lp); let stream_open_lp = stream_all_lp.filter_map(|entry| async { match entry { @@ -210,7 +210,7 @@ async fn reindex_dex_positions(delta: &mut StateDelta) -> anyhow::Resu // Close the position, adjusting all its index entries. delta.close_position_by_id(&id).await?; // Erase the position from the state, so that we circumvent the `update_position` guard. - delta.delete(penumbra_dex::state_key::position_by_id(&id)); + delta.delete(penumbra_sdk_dex::state_key::position_by_id(&id)); // Open a position with the adjusted indexing logic. delta.open_position(lp).await?; } @@ -224,14 +224,14 @@ async fn reindex_dex_positions(delta: &mut StateDelta) -> anyhow::Resu /// - `description` (280 bytes) async fn truncate_validator_fields(delta: &mut StateDelta) -> anyhow::Result<()> { tracing::info!("truncating validator fields"); - let key_prefix_validators = penumbra_stake::state_key::validators::definitions::prefix(); + let key_prefix_validators = penumbra_sdk_stake::state_key::validators::definitions::prefix(); let all_validators = delta - .prefix_proto::( + .prefix_proto::( &key_prefix_validators, ) .try_collect::>() .await?; @@ -271,7 +271,7 @@ async fn truncate_proposal_fields(delta: &mut StateDelta) -> anyhow::R tracing::info!("truncating proposal: {}", proposal_id); let proposal = delta .get_proto::( - &penumbra_governance::state_key::proposal_definition(proposal_id), + &penumbra_sdk_governance::state_key::proposal_definition(proposal_id), ) .await?; @@ -348,12 +348,12 @@ async fn truncate_proposal_fields(delta: &mut StateDelta) -> anyhow::R // Store the truncated proposal data tracing::info!( "put key {:?}", - penumbra_governance::state_key::proposal_definition(proposal_id) + penumbra_sdk_governance::state_key::proposal_definition(proposal_id) ); // Ensure the proposal can be serialized back to the domain type: let proposal: Proposal = proposal.try_into()?; delta.put( - penumbra_governance::state_key::proposal_definition(proposal_id), + penumbra_sdk_governance::state_key::proposal_definition(proposal_id), proposal, ); } @@ -372,7 +372,7 @@ async fn truncate_proposal_outcome_fields(delta: &mut StateDelta) -> a tracing::info!("truncating proposal outcomes: {}", proposal_id); let proposal_state = delta .get_proto::( - &penumbra_governance::state_key::proposal_state(proposal_id), + &penumbra_sdk_governance::state_key::proposal_state(proposal_id), ) .await?; @@ -518,11 +518,11 @@ async fn truncate_proposal_outcome_fields(delta: &mut StateDelta) -> a // Store the truncated proposal state data tracing::info!( "put key {:?}", - penumbra_governance::state_key::proposal_state(proposal_id) + penumbra_sdk_governance::state_key::proposal_state(proposal_id) ); let proposal_state: ProposalState = proposal_state.try_into()?; delta.put( - penumbra_governance::state_key::proposal_state(proposal_id), + penumbra_sdk_governance::state_key::proposal_state(proposal_id), proposal_state, ); } diff --git a/crates/bin/pd/src/network/config.rs b/crates/bin/pd/src/network/config.rs index 1cc87b6c1f..dabf18463c 100644 --- a/crates/bin/pd/src/network/config.rs +++ b/crates/bin/pd/src/network/config.rs @@ -1,9 +1,9 @@ use anyhow::Context; use decaf377_rdsa::{SigningKey, SpendAuth, VerificationKey}; use directories::UserDirs; -use penumbra_app::genesis::AppState; -use penumbra_custody::soft_kms::Config as SoftKmsConfig; -use penumbra_keys::keys::{SpendKey, SpendKeyBytes}; +use penumbra_sdk_app::genesis::AppState; +use penumbra_sdk_custody::soft_kms::Config as SoftKmsConfig; +use penumbra_sdk_keys::keys::{SpendKey, SpendKeyBytes}; use rand::Rng; use rand_core::OsRng; use regex::{Captures, Regex}; diff --git a/crates/bin/pd/src/network/generate.rs b/crates/bin/pd/src/network/generate.rs index cefb71750c..0c92549dec 100644 --- a/crates/bin/pd/src/network/generate.rs +++ b/crates/bin/pd/src/network/generate.rs @@ -3,21 +3,21 @@ //! for Penumbra. use crate::network::config::{get_network_dir, NetworkTendermintConfig, ValidatorKeys}; use anyhow::{Context, Result}; -use penumbra_app::{ +use penumbra_sdk_app::{ app::{MAX_BLOCK_TXS_PAYLOAD_BYTES, MAX_EVIDENCE_SIZE_BYTES}, params::AppParameters, }; -use penumbra_asset::{asset, STAKING_TOKEN_ASSET_ID}; -use penumbra_fee::genesis::Content as FeeContent; -use penumbra_governance::genesis::Content as GovernanceContent; -use penumbra_keys::{keys::SpendKey, Address}; -use penumbra_sct::genesis::Content as SctContent; -use penumbra_sct::params::SctParameters; -use penumbra_shielded_pool::{ +use penumbra_sdk_asset::{asset, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_fee::genesis::Content as FeeContent; +use penumbra_sdk_governance::genesis::Content as GovernanceContent; +use penumbra_sdk_keys::{keys::SpendKey, Address}; +use penumbra_sdk_sct::genesis::Content as SctContent; +use penumbra_sdk_sct::params::SctParameters; +use penumbra_sdk_shielded_pool::{ genesis::{self as shielded_pool_genesis, Allocation, Content as ShieldedPoolContent}, params::ShieldedPoolParameters, }; -use penumbra_stake::{ +use penumbra_sdk_stake::{ genesis::Content as StakeContent, params::StakeParameters, validator::Validator, DelegationToken, FundingStream, FundingStreams, GovernanceKey, IdentityKey, }; @@ -40,7 +40,7 @@ pub struct NetworkConfig { /// The name of the network pub name: String, /// The Tendermint genesis for initial chain state. - pub genesis: Genesis, + pub genesis: Genesis, /// Path to local directory where config files will be written to pub network_dir: PathBuf, /// Set of validators at genesis. Uses the convenient wrapper type @@ -200,10 +200,10 @@ impl NetworkConfig { unbonding_delay: Option, proposal_voting_blocks: Option, gas_price_simple: Option, - ) -> anyhow::Result { - let default_gov_params = penumbra_governance::params::GovernanceParameters::default(); + ) -> anyhow::Result { + let default_gov_params = penumbra_sdk_governance::params::GovernanceParameters::default(); - let gov_params = penumbra_governance::params::GovernanceParameters { + let gov_params = penumbra_sdk_governance::params::GovernanceParameters { proposal_voting_blocks: proposal_voting_blocks .unwrap_or(default_gov_params.proposal_voting_blocks), ..default_gov_params @@ -214,7 +214,7 @@ impl NetworkConfig { let gas_price_simple = gas_price_simple.unwrap_or_default(); - let app_state = penumbra_app::genesis::Content { + let app_state = penumbra_sdk_app::genesis::Content { chain_id: chain_id.to_string(), stake_content: StakeContent { validators: validators.into_iter().map(Into::into).collect(), @@ -227,8 +227,8 @@ impl NetworkConfig { }, }, fee_content: FeeContent { - fee_params: penumbra_fee::params::FeeParameters { - fixed_gas_prices: penumbra_fee::GasPrices { + fee_params: penumbra_sdk_fee::params::FeeParameters { + fixed_gas_prices: penumbra_sdk_fee::GasPrices { block_space_price: gas_price_simple, compact_block_space_price: gas_price_simple, verification_price: gas_price_simple, @@ -236,14 +236,14 @@ impl NetworkConfig { asset_id: *STAKING_TOKEN_ASSET_ID, }, fixed_alt_gas_prices: vec![ - penumbra_fee::GasPrices { + penumbra_sdk_fee::GasPrices { block_space_price: 10 * gas_price_simple, compact_block_space_price: 10 * gas_price_simple, verification_price: 10 * gas_price_simple, execution_price: 10 * gas_price_simple, asset_id: asset::REGISTRY.parse_unit("gm").id(), }, - penumbra_fee::GasPrices { + penumbra_sdk_fee::GasPrices { block_space_price: 10 * gas_price_simple, compact_block_space_price: 10 * gas_price_simple, verification_price: 10 * gas_price_simple, @@ -273,8 +273,8 @@ impl NetworkConfig { /// Build Tendermint genesis data, based on Penumbra initial application state. pub(crate) fn make_genesis( - app_state: penumbra_app::genesis::Content, - ) -> anyhow::Result> { + app_state: penumbra_sdk_app::genesis::Content, + ) -> anyhow::Result> { // Use now as genesis time let genesis_time = Time::from_unix_timestamp( SystemTime::now() @@ -320,7 +320,7 @@ impl NetworkConfig { }, // always empty in genesis json app_hash: tendermint::AppHash::default(), - app_state: penumbra_app::genesis::AppState::Content(app_state), + app_state: penumbra_sdk_app::genesis::AppState::Content(app_state), // Set empty validator set for Tendermint config, which falls back to reading // validators from the AppState, via ResponseInitChain: // https://docs.tendermint.com/v0.32/tendermint-core/using-tendermint.html @@ -330,12 +330,12 @@ impl NetworkConfig { } pub(crate) fn make_checkpoint( - genesis: Genesis, + genesis: Genesis, checkpoint: Option>, - ) -> Genesis { + ) -> Genesis { match checkpoint { Some(checkpoint) => Genesis { - app_state: penumbra_app::genesis::AppState::Checkpoint(checkpoint), + app_state: penumbra_sdk_app::genesis::AppState::Checkpoint(checkpoint), ..genesis }, None => genesis, @@ -773,7 +773,8 @@ mod tests { assert_eq!(testnet_config.name, "test-chain-1234"); assert_eq!(testnet_config.genesis.validators.len(), 0); // No external address template was given, so only 1 validator will be present. - let penumbra_app::genesis::AppState::Content(app_state) = testnet_config.genesis.app_state + let penumbra_sdk_app::genesis::AppState::Content(app_state) = + testnet_config.genesis.app_state else { unimplemented!("TODO: support checkpointed app state") }; @@ -803,7 +804,8 @@ mod tests { )?; assert_eq!(testnet_config.name, "test-chain-4567"); assert_eq!(testnet_config.genesis.validators.len(), 0); - let penumbra_app::genesis::AppState::Content(app_state) = testnet_config.genesis.app_state + let penumbra_sdk_app::genesis::AppState::Content(app_state) = + testnet_config.genesis.app_state else { unimplemented!("TODO: support checkpointed app state") }; diff --git a/crates/bin/pd/tests/network_integration.rs b/crates/bin/pd/tests/network_integration.rs index ca3116de6f..388c19caed 100644 --- a/crates/bin/pd/tests/network_integration.rs +++ b/crates/bin/pd/tests/network_integration.rs @@ -6,7 +6,7 @@ use assert_cmd::Command; use http::StatusCode; -use penumbra_proto::FILE_DESCRIPTOR_SET; +use penumbra_sdk_proto::FILE_DESCRIPTOR_SET; use predicates::prelude::*; use prost_reflect::{DescriptorPool, ServiceDescriptor}; use url::Url; @@ -102,7 +102,7 @@ async fn check_grpc_server_reflection() -> anyhow::Result<()> { /// - penumbra.view.v1.ViewService /// - penumbra.core.component.dex.v1.SimulationService /// -/// The gRPC service names are read from the [penumbra_proto] crate's [FILE_DESCRIPTOR_SET], +/// The gRPC service names are read from the [penumbra_sdk_proto] crate's [FILE_DESCRIPTOR_SET], /// which is exported at build time. fn get_all_grpc_services() -> anyhow::Result> { // Intentionally verbose to be explicit. diff --git a/crates/bin/pindexer/Cargo.toml b/crates/bin/pindexer/Cargo.toml index 27e7ece7b4..f51310f243 100644 --- a/crates/bin/pindexer/Cargo.toml +++ b/crates/bin/pindexer/Cargo.toml @@ -1,12 +1,13 @@ [package] name = "pindexer" +description = "An indexer implementation for Penumbra" version = { workspace = true } authors = { workspace = true } edition = { workspace = true } repository = { workspace = true } homepage = { workspace = true } license = { workspace = true } -publish = false +publish = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -17,19 +18,19 @@ chrono = {workspace = true} cometindex = {workspace = true} ethnum = {workspace = true} num-bigint = { version = "0.4" } -penumbra-shielded-pool = {workspace = true, default-features = false} -penumbra-stake = {workspace = true, default-features = false} -penumbra-app = {workspace = true, default-features = false} -penumbra-auction = {workspace = true, default-features = false} -penumbra-dex = {workspace = true, default-features = false} -penumbra-fee = {workspace = true, default-features = false} -penumbra-funding = {workspace = true, default-features = false} -penumbra-keys = {workspace = true, default-features = false} -penumbra-governance = {workspace = true, default-features = false} -penumbra-num = {workspace = true, default-features = false} -penumbra-asset = {workspace = true, default-features = false} -penumbra-proto = {workspace = true, default-features = false} -penumbra-sct = {workspace = true, default-features = false} +penumbra-sdk-shielded-pool = {workspace = true, default-features = false} +penumbra-sdk-stake = {workspace = true, default-features = false} +penumbra-sdk-app = {workspace = true, default-features = false} +penumbra-sdk-auction = {workspace = true, default-features = false} +penumbra-sdk-dex = {workspace = true, default-features = false} +penumbra-sdk-fee = {workspace = true, default-features = false} +penumbra-sdk-funding = {workspace = true, default-features = false} +penumbra-sdk-keys = {workspace = true, default-features = false} +penumbra-sdk-governance = {workspace = true, default-features = false} +penumbra-sdk-num = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = false} +penumbra-sdk-proto = {workspace = true, default-features = false} +penumbra-sdk-sct = {workspace = true, default-features = false} prost = {workspace = true} tracing = {workspace = true} tokio = {workspace = true, features = ["full"]} diff --git a/crates/bin/pindexer/src/block.rs b/crates/bin/pindexer/src/block.rs index 9308bd0595..9d0eee7638 100644 --- a/crates/bin/pindexer/src/block.rs +++ b/crates/bin/pindexer/src/block.rs @@ -1,5 +1,5 @@ use cometindex::{async_trait, index::EventBatch, sqlx, AppView, PgTransaction}; -use penumbra_proto::{core::component::sct::v1 as pb, event::ProtoEvent}; +use penumbra_sdk_proto::{core::component::sct::v1 as pb, event::ProtoEvent}; use sqlx::types::chrono::DateTime; #[derive(Debug)] diff --git a/crates/bin/pindexer/src/dex_ex/mod.rs b/crates/bin/pindexer/src/dex_ex/mod.rs index bdcd0cde26..39fb3d8a88 100644 --- a/crates/bin/pindexer/src/dex_ex/mod.rs +++ b/crates/bin/pindexer/src/dex_ex/mod.rs @@ -4,24 +4,20 @@ use cometindex::{ index::{BlockEvents, EventBatch}, AppView, PgTransaction, }; -use penumbra_asset::asset; -use penumbra_dex::{ - event::EventBatchSwap, - lp::position::{Id as PositionId, Position}, - SwapExecution, -}; -use penumbra_dex::{ +use penumbra_sdk_asset::asset; +use penumbra_sdk_dex::lp::position::{Id as PositionId, Position}; +use penumbra_sdk_dex::{ event::{ - EventCandlestickData, EventPositionClose, EventPositionExecution, EventPositionOpen, - EventPositionWithdraw, EventQueuePositionClose, + EventBatchSwap, EventCandlestickData, EventPositionClose, EventPositionExecution, + EventPositionOpen, EventPositionWithdraw, EventQueuePositionClose, }, lp::Reserves, - DirectedTradingPair, TradingPair, + DirectedTradingPair, SwapExecution, TradingPair, }; -use penumbra_num::Amount; -use penumbra_proto::event::EventDomainType; -use penumbra_proto::DomainType; -use penumbra_sct::event::EventBlockRoot; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::event::EventDomainType; +use penumbra_sdk_proto::DomainType; +use penumbra_sdk_sct::event::EventBlockRoot; use sqlx::types::BigDecimal; use sqlx::Row; use std::collections::{BTreeMap, HashMap, HashSet}; @@ -31,7 +27,7 @@ type DateTime = sqlx::types::chrono::DateTime; mod candle { use super::DateTime; use chrono::{Datelike as _, Days, TimeDelta, TimeZone as _, Timelike as _, Utc}; - use penumbra_dex::CandlestickData; + use penumbra_sdk_dex::CandlestickData; use std::fmt::Display; fn geo_mean(a: f64, b: f64) -> f64 { @@ -372,7 +368,7 @@ use price_chart::Context as PriceChartContext; mod summary { use cometindex::PgTransaction; - use penumbra_asset::asset; + use penumbra_sdk_asset::asset; use super::{Candle, DateTime, PairMetrics, Window}; diff --git a/crates/bin/pindexer/src/governance.rs b/crates/bin/pindexer/src/governance.rs index 4d16090e58..ed8d1e2777 100644 --- a/crates/bin/pindexer/src/governance.rs +++ b/crates/bin/pindexer/src/governance.rs @@ -2,16 +2,16 @@ use anyhow::{anyhow, Context, Result}; use cometindex::{ async_trait, index::EventBatch, sqlx, AppView, ContextualizedEvent, PgTransaction, }; -use penumbra_governance::{ +use penumbra_sdk_governance::{ proposal::ProposalPayloadToml, proposal_state, DelegatorVote, Proposal, ProposalDepositClaim, ProposalWithdraw, ValidatorVote, }; -use penumbra_num::Amount; -use penumbra_proto::{ +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{ core::component::governance::v1::{self as pb}, event::ProtoEvent, }; -use penumbra_stake::IdentityKey; +use penumbra_sdk_stake::IdentityKey; #[derive(Debug)] pub struct GovernanceProposals {} diff --git a/crates/bin/pindexer/src/ibc/mod.rs b/crates/bin/pindexer/src/ibc/mod.rs index 417fd5ca19..2f3923905c 100644 --- a/crates/bin/pindexer/src/ibc/mod.rs +++ b/crates/bin/pindexer/src/ibc/mod.rs @@ -1,8 +1,8 @@ use anyhow::anyhow; use cometindex::{async_trait, index::EventBatch, AppView, ContextualizedEvent, PgTransaction}; -use penumbra_asset::Value; -use penumbra_keys::Address; -use penumbra_proto::{ +use penumbra_sdk_asset::Value; +use penumbra_sdk_keys::Address; +use penumbra_sdk_proto::{ core::component::shielded_pool::v1::{ self as pb, event_outbound_fungible_token_refund::Reason as RefundReason, }, diff --git a/crates/bin/pindexer/src/indexer_ext.rs b/crates/bin/pindexer/src/indexer_ext.rs index 4f836aa925..fbd284fb9f 100644 --- a/crates/bin/pindexer/src/indexer_ext.rs +++ b/crates/bin/pindexer/src/indexer_ext.rs @@ -13,7 +13,7 @@ impl IndexerExt for cometindex::Indexer { .with_index(Box::new(crate::stake::UndelegationTxs {})) .with_index(Box::new(crate::governance::GovernanceProposals {})) .with_index(Box::new(crate::dex_ex::Component::new( - penumbra_asset::asset::Id::from_str( + penumbra_sdk_asset::asset::Id::from_str( // USDC "passet1w6e7fvgxsy6ccy3m8q0eqcuyw6mh3yzqu3uq9h58nu8m8mku359spvulf6", ) @@ -23,7 +23,7 @@ impl IndexerExt for cometindex::Indexer { .with_index(Box::new(crate::supply::Component::new())) .with_index(Box::new(crate::ibc::Component::new())) .with_index(Box::new(crate::insights::Component::new( - penumbra_asset::asset::Id::from_str( + penumbra_sdk_asset::asset::Id::from_str( // USDC "passet1w6e7fvgxsy6ccy3m8q0eqcuyw6mh3yzqu3uq9h58nu8m8mku359spvulf6", ) diff --git a/crates/bin/pindexer/src/insights/mod.rs b/crates/bin/pindexer/src/insights/mod.rs index 39dce8a935..272c7ff73b 100644 --- a/crates/bin/pindexer/src/insights/mod.rs +++ b/crates/bin/pindexer/src/insights/mod.rs @@ -2,21 +2,21 @@ use ethnum::I256; use std::{collections::BTreeMap, iter}; use cometindex::{async_trait, index::EventBatch, AppView, ContextualizedEvent, PgTransaction}; -use penumbra_app::genesis::Content; -use penumbra_asset::{asset, STAKING_TOKEN_ASSET_ID}; -use penumbra_dex::{ +use penumbra_sdk_app::genesis::Content; +use penumbra_sdk_asset::{asset, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_dex::{ event::{EventArbExecution, EventCandlestickData}, DirectedTradingPair, }; -use penumbra_fee::event::EventBlockFees; -use penumbra_funding::event::EventFundingStreamReward; -use penumbra_num::Amount; -use penumbra_proto::event::EventDomainType; -use penumbra_shielded_pool::event::{ +use penumbra_sdk_fee::event::EventBlockFees; +use penumbra_sdk_funding::event::EventFundingStreamReward; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::event::EventDomainType; +use penumbra_sdk_shielded_pool::event::{ EventInboundFungibleTokenTransfer, EventOutboundFungibleTokenRefund, EventOutboundFungibleTokenTransfer, }; -use penumbra_stake::{ +use penumbra_sdk_stake::{ event::{EventDelegate, EventRateDataChange, EventUndelegate}, validator::Validator, IdentityKey, diff --git a/crates/bin/pindexer/src/parsing.rs b/crates/bin/pindexer/src/parsing.rs index 51bd104059..206dd40578 100644 --- a/crates/bin/pindexer/src/parsing.rs +++ b/crates/bin/pindexer/src/parsing.rs @@ -1,5 +1,5 @@ use anyhow::{anyhow, Context as _}; -use penumbra_app::genesis::{AppState, Content}; +use penumbra_sdk_app::genesis::{AppState, Content}; use serde_json::Value; const GENESIS_NO_CONTENT_ERROR: &'static str = r#" diff --git a/crates/bin/pindexer/src/stake/delegation_txs.rs b/crates/bin/pindexer/src/stake/delegation_txs.rs index bacbd5276e..2744ad305f 100644 --- a/crates/bin/pindexer/src/stake/delegation_txs.rs +++ b/crates/bin/pindexer/src/stake/delegation_txs.rs @@ -1,8 +1,8 @@ use anyhow::{anyhow, Result}; use cometindex::{async_trait, index::EventBatch, sqlx, AppView, PgTransaction}; -use penumbra_num::Amount; -use penumbra_proto::{core::component::stake::v1 as pb, event::ProtoEvent}; -use penumbra_stake::IdentityKey; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{core::component::stake::v1 as pb, event::ProtoEvent}; +use penumbra_sdk_stake::IdentityKey; #[derive(Debug)] pub struct DelegationTxs {} diff --git a/crates/bin/pindexer/src/stake/missed_blocks.rs b/crates/bin/pindexer/src/stake/missed_blocks.rs index a289ca0b4a..adac389c1f 100644 --- a/crates/bin/pindexer/src/stake/missed_blocks.rs +++ b/crates/bin/pindexer/src/stake/missed_blocks.rs @@ -1,8 +1,8 @@ use anyhow::Result; use cometindex::{async_trait, index::EventBatch, sqlx, AppView, PgTransaction}; -use penumbra_proto::{core::component::stake::v1 as pb, event::ProtoEvent}; -use penumbra_stake::IdentityKey; +use penumbra_sdk_proto::{core::component::stake::v1 as pb, event::ProtoEvent}; +use penumbra_sdk_stake::IdentityKey; #[derive(Debug)] pub struct MissedBlocks {} diff --git a/crates/bin/pindexer/src/stake/slashings.rs b/crates/bin/pindexer/src/stake/slashings.rs index 68134c6690..47f529f3c1 100644 --- a/crates/bin/pindexer/src/stake/slashings.rs +++ b/crates/bin/pindexer/src/stake/slashings.rs @@ -3,8 +3,8 @@ use cometindex::{ async_trait, index::EventBatch, sqlx, AppView, ContextualizedEvent, PgTransaction, }; -use penumbra_proto::{core::component::stake::v1 as pb, event::ProtoEvent}; -use penumbra_stake::IdentityKey; +use penumbra_sdk_proto::{core::component::stake::v1 as pb, event::ProtoEvent}; +use penumbra_sdk_stake::IdentityKey; #[derive(Debug)] pub struct Slashings {} diff --git a/crates/bin/pindexer/src/stake/undelegation_txs.rs b/crates/bin/pindexer/src/stake/undelegation_txs.rs index e9a0a31d48..b045b79c57 100644 --- a/crates/bin/pindexer/src/stake/undelegation_txs.rs +++ b/crates/bin/pindexer/src/stake/undelegation_txs.rs @@ -1,8 +1,8 @@ use anyhow::{anyhow, Result}; use cometindex::{async_trait, index::EventBatch, sqlx, AppView, PgTransaction}; -use penumbra_num::Amount; -use penumbra_proto::{core::component::stake::v1 as pb, event::ProtoEvent}; -use penumbra_stake::IdentityKey; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{core::component::stake::v1 as pb, event::ProtoEvent}; +use penumbra_sdk_stake::IdentityKey; #[derive(Debug)] pub struct UndelegationTxs {} diff --git a/crates/bin/pindexer/src/stake/validator_set.rs b/crates/bin/pindexer/src/stake/validator_set.rs index 039b35c03c..2d637b3ea4 100644 --- a/crates/bin/pindexer/src/stake/validator_set.rs +++ b/crates/bin/pindexer/src/stake/validator_set.rs @@ -5,11 +5,11 @@ use cometindex::{ async_trait, index::EventBatch, sqlx, AppView, ContextualizedEvent, PgTransaction, }; -use penumbra_app::genesis::Content; -use penumbra_asset::asset; -use penumbra_num::Amount; -use penumbra_proto::{core::component::stake::v1 as pb, event::ProtoEvent}; -use penumbra_stake::{ +use penumbra_sdk_app::genesis::Content; +use penumbra_sdk_asset::asset; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{core::component::stake::v1 as pb, event::ProtoEvent}; +use penumbra_sdk_stake::{ validator::{self, Validator}, IdentityKey, }; diff --git a/crates/bin/pindexer/src/supply.rs b/crates/bin/pindexer/src/supply.rs index cc5b9f9bae..0226ab55aa 100644 --- a/crates/bin/pindexer/src/supply.rs +++ b/crates/bin/pindexer/src/supply.rs @@ -4,17 +4,17 @@ use anyhow::{anyhow, Result}; use cometindex::{ async_trait, index::EventBatch, sqlx, AppView, ContextualizedEvent, PgTransaction, }; -use penumbra_app::genesis::Content; -use penumbra_asset::{asset, STAKING_TOKEN_ASSET_ID}; -use penumbra_num::Amount; -use penumbra_proto::{ +use penumbra_sdk_app::genesis::Content; +use penumbra_sdk_asset::{asset, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{ event::ProtoEvent, penumbra::core::component::{ auction::v1 as pb_auction, dex::v1 as pb_dex, fee::v1 as pb_fee, funding::v1 as pb_funding, stake::v1 as pb_stake, }, }; -use penumbra_stake::{rate::RateData, validator::Validator, IdentityKey}; +use penumbra_sdk_stake::{rate::RateData, validator::Validator, IdentityKey}; use sqlx::{Postgres, Transaction}; use std::iter; @@ -127,8 +127,8 @@ mod delegated_supply { //! This module handles updates around the delegated supply to a validator. use anyhow::{anyhow, Result}; use cometindex::PgTransaction; - use penumbra_num::fixpoint::U128x128; - use penumbra_stake::{rate::RateData, IdentityKey}; + use penumbra_sdk_num::fixpoint::U128x128; + use penumbra_sdk_stake::{rate::RateData, IdentityKey}; const BPS_SQUARED: u64 = 1_0000_0000u64; @@ -413,11 +413,11 @@ enum Event { }, DexArb { height: u64, - swap_execution: penumbra_dex::SwapExecution, + swap_execution: penumbra_sdk_dex::SwapExecution, }, BlockFees { height: u64, - total: penumbra_fee::Fee, + total: penumbra_sdk_fee::Fee, }, } diff --git a/crates/bin/pmonitor/Cargo.toml b/crates/bin/pmonitor/Cargo.toml index bdc18cbb05..d1ed26d9df 100644 --- a/crates/bin/pmonitor/Cargo.toml +++ b/crates/bin/pmonitor/Cargo.toml @@ -1,12 +1,13 @@ [package] name = "pmonitor" +description = "Monitoring tool for your Penumbra full-viewing key" version = { workspace = true } authors = { workspace = true } edition = { workspace = true } repository = { workspace = true } homepage = { workspace = true } license = { workspace = true } -publish = false +publish = true [features] integration-testnet = [] @@ -19,17 +20,17 @@ colored = "2.1.0" directories = {workspace = true} futures = {workspace = true} indicatif = {workspace = true} -pcli = {path = "../pcli", default-features = true} -penumbra-app = {workspace = true} -penumbra-asset = {workspace = true, default-features = false} -penumbra-compact-block = {workspace = true, default-features = false} -penumbra-keys = {workspace = true, default-features = false} -penumbra-num = {workspace = true, default-features = false} -penumbra-proto = {workspace = true} -penumbra-shielded-pool = {workspace = true, default-features = false} -penumbra-stake = {workspace = true, default-features = false} -penumbra-tct = {workspace = true, default-features = false} -penumbra-view = {workspace = true} +pcli = {version = "0.82.0-alpha.0", path = "../pcli", default-features = true} +penumbra-sdk-app = {workspace = true} +penumbra-sdk-asset = {workspace = true, default-features = false} +penumbra-sdk-compact-block = {workspace = true, default-features = false} +penumbra-sdk-keys = {workspace = true, default-features = false} +penumbra-sdk-num = {workspace = true, default-features = false} +penumbra-sdk-proto = {workspace = true} +penumbra-sdk-shielded-pool = {workspace = true, default-features = false} +penumbra-sdk-stake = {workspace = true, default-features = false} +penumbra-sdk-tct = {workspace = true, default-features = false} +penumbra-sdk-view = {workspace = true} regex = {workspace = true} rustls = {workspace = true} serde = {workspace = true, features = ["derive"]} diff --git a/crates/bin/pmonitor/src/config.rs b/crates/bin/pmonitor/src/config.rs index 8b521ff8a1..b9500dacdc 100644 --- a/crates/bin/pmonitor/src/config.rs +++ b/crates/bin/pmonitor/src/config.rs @@ -5,8 +5,8 @@ use serde::{Deserialize, Serialize}; use url::Url; use uuid::Uuid; -use penumbra_keys::FullViewingKey; -use penumbra_num::Amount; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_num::Amount; #[derive(Clone, Debug, Serialize, Deserialize)] pub struct FvkEntry { diff --git a/crates/bin/pmonitor/src/genesis.rs b/crates/bin/pmonitor/src/genesis.rs index a526e2899d..3cb238e376 100644 --- a/crates/bin/pmonitor/src/genesis.rs +++ b/crates/bin/pmonitor/src/genesis.rs @@ -3,16 +3,16 @@ //! stored in the `pmonitor` config file, so that audit actions can reference it. use std::{collections::BTreeMap, str::FromStr}; -use penumbra_asset::STAKING_TOKEN_ASSET_ID; -use penumbra_compact_block::{CompactBlock, StatePayload}; -use penumbra_keys::FullViewingKey; -use penumbra_num::Amount; -use penumbra_shielded_pool::{Note, NotePayload}; -use penumbra_stake::{ +use penumbra_sdk_asset::STAKING_TOKEN_ASSET_ID; +use penumbra_sdk_compact_block::{CompactBlock, StatePayload}; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_num::Amount; +use penumbra_sdk_shielded_pool::{Note, NotePayload}; +use penumbra_sdk_stake::{ rate::{BaseRateData, RateData}, DelegationToken, }; -use penumbra_tct::StateCommitment; +use penumbra_sdk_tct::StateCommitment; #[derive(Debug, Clone)] pub struct FilteredGenesisBlock { diff --git a/crates/bin/pmonitor/src/main.rs b/crates/bin/pmonitor/src/main.rs index d8d448c0c0..fd4e315c96 100644 --- a/crates/bin/pmonitor/src/main.rs +++ b/crates/bin/pmonitor/src/main.rs @@ -19,7 +19,7 @@ use camino::Utf8PathBuf; use clap::{self, Parser}; use directories::ProjectDirs; use futures::StreamExt; -use penumbra_asset::STAKING_TOKEN_ASSET_ID; +use penumbra_sdk_asset::STAKING_TOKEN_ASSET_ID; use rustls::crypto::aws_lc_rs; use std::fs; use std::io::IsTerminal as _; @@ -32,21 +32,21 @@ use uuid::Uuid; use colored::Colorize; use pcli::config::PcliConfig; -use penumbra_compact_block::CompactBlock; -use penumbra_keys::FullViewingKey; -use penumbra_num::Amount; -use penumbra_proto::box_grpc_svc; -use penumbra_proto::view::v1::{ +use penumbra_sdk_compact_block::CompactBlock; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::box_grpc_svc; +use penumbra_sdk_proto::view::v1::{ view_service_client::ViewServiceClient, view_service_server::ViewServiceServer, }; -use penumbra_proto::{ +use penumbra_sdk_proto::{ core::component::compact_block::v1::CompactBlockRequest, core::component::stake::v1::query_service_client::QueryServiceClient as StakeQueryServiceClient, penumbra::core::component::compact_block::v1::query_service_client::QueryServiceClient as CompactBlockQueryServiceClient, }; -use penumbra_stake::rate::RateData; -use penumbra_stake::DelegationToken; -use penumbra_view::{Storage, ViewClient, ViewServer}; +use penumbra_sdk_stake::rate::RateData; +use penumbra_sdk_stake::DelegationToken; +use penumbra_sdk_view::{Storage, ViewClient, ViewServer}; mod config; mod genesis; @@ -73,7 +73,7 @@ fn init_tracing() -> anyhow::Result<()> { .with_target(true); // The `EnvFilter` layer is used to filter events based on `RUST_LOG`. let filter_layer = EnvFilter::try_from_default_env() - .or_else(|_| EnvFilter::try_new("info,penumbra_view=off"))?; + .or_else(|_| EnvFilter::try_new("info,penumbra_sdk_view=off"))?; // Register the tracing subscribers. let registry = tracing_subscriber::registry() diff --git a/crates/bin/pmonitor/tests/common/mod.rs b/crates/bin/pmonitor/tests/common/mod.rs index a1465ee712..4d37a6ec08 100644 --- a/crates/bin/pmonitor/tests/common/mod.rs +++ b/crates/bin/pmonitor/tests/common/mod.rs @@ -7,7 +7,7 @@ use anyhow::{Context, Result}; use assert_cmd::Command as AssertCommand; use once_cell::sync::Lazy; use pcli::config::PcliConfig; -use penumbra_keys::address::Address; +use penumbra_sdk_keys::address::Address; use std::fs::{create_dir_all, remove_dir_all, File}; use std::io::{BufWriter, Write}; use std::path::PathBuf; diff --git a/crates/bin/pmonitor/tests/common/pcli_helpers.rs b/crates/bin/pmonitor/tests/common/pcli_helpers.rs index c62cc4c057..6de1c65c25 100644 --- a/crates/bin/pmonitor/tests/common/pcli_helpers.rs +++ b/crates/bin/pmonitor/tests/common/pcli_helpers.rs @@ -3,7 +3,7 @@ use anyhow::{Context, Result}; use assert_cmd::Command as AssertCommand; -use penumbra_keys::{address::Address, FullViewingKey}; +use penumbra_sdk_keys::{address::Address, FullViewingKey}; use std::path::PathBuf; use std::str::FromStr; diff --git a/crates/cnidarium-component/Cargo.toml b/crates/cnidarium-component/Cargo.toml index 626c0b0595..b6e99ff5b3 100644 --- a/crates/cnidarium-component/Cargo.toml +++ b/crates/cnidarium-component/Cargo.toml @@ -1,6 +1,10 @@ [package] name = "cnidarium-component" +authors = {workspace = true} +repository = {workspace = true} +description = "Extension traits for cnidarium" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [dependencies] diff --git a/crates/cnidarium-component/src/action_handler.rs b/crates/cnidarium-component/src/action_handler.rs index abb64eae57..f0a0548d75 100644 --- a/crates/cnidarium-component/src/action_handler.rs +++ b/crates/cnidarium-component/src/action_handler.rs @@ -13,7 +13,7 @@ use cnidarium::{StateRead, StateWrite}; /// /// The `ActionHandler` trait has a top-level implementation on [`Transaction`], /// which performs any transaction-wide checks and then calls the -/// `ActionHandler` implementation for each [`Action`](penumbra_transaction::Action). +/// `ActionHandler` implementation for each [`Action`](penumbra_sdk_transaction::Action). /// /// The validation logic in the `ActionHandler` trait is split into three phases: /// diff --git a/crates/cnidarium-component/src/lib.rs b/crates/cnidarium-component/src/lib.rs index 8339bee9aa..bd3af355bc 100644 --- a/crates/cnidarium-component/src/lib.rs +++ b/crates/cnidarium-component/src/lib.rs @@ -23,14 +23,14 @@ //! The structure of the feature-gated `component` submodule allows reusing data //! structures between client and server (fullnode) code. //! -//! For instance, the `penumbra_transaction` crate depends on all of the +//! For instance, the `penumbra_sdk_transaction` crate depends on all of the //! component crates without the `component` feature, so it can assemble all of //! the actions for each component into a top-level transaction type. This //! means all async code should be confined to the `component` module, so that //! the transaction definitions don't depend on `tokio`, `mio`, etc and can be //! used without problems in wasm or other non-async contexts. //! -//! On the other hand, the `penumbra_app` crate depends on all of the component +//! On the other hand, the `penumbra_sdk_app` crate depends on all of the component //! crates with the `component` feature enabled, so it can assemble all of the //! `ActionHandler` implementations into a top-level `ActionHandler` //! implementation and call each component's `Component` implementation at the diff --git a/crates/core/app-tests/Cargo.toml b/crates/core/app-tests/Cargo.toml new file mode 100644 index 0000000000..bb1260d07d --- /dev/null +++ b/crates/core/app-tests/Cargo.toml @@ -0,0 +1,139 @@ +# Dev depedencies are considered circular. +# Previously, this test suite was located in `penumbra-sdk-app`. +# +[package] +name = "penumbra-sdk-app-tests" +version = { workspace = true } +authors = { workspace = true } +edition = { workspace = true} +repository = { workspace = true } +homepage = { workspace = true } +license = { workspace = true } +description = "Tests for the Penumbra app" +publish = false + +[features] +component = [ + "dep:cnidarium", + "dep:cnidarium-component", + "penumbra-sdk-proto/cnidarium", + "penumbra-sdk-auction/component", + "penumbra-sdk-community-pool/component", + "penumbra-sdk-compact-block/component", + "penumbra-sdk-dex/component", + "penumbra-sdk-distributions/component", + "penumbra-sdk-fee/component", + "penumbra-sdk-funding/component", + "penumbra-sdk-governance/component", + "penumbra-sdk-ibc/component", + "penumbra-sdk-ibc/rpc", + "penumbra-sdk-sct/component", + "penumbra-sdk-shielded-pool/component", + "penumbra-sdk-stake/component", + "dep:tonic", + "dep:tonic-reflection", + "dep:tonic-web" +] +default = ["std", "component"] +std = ["ark-ff/std", "ibc-types/std"] + +[dependencies] +anyhow = { workspace = true } +ark-ff = { workspace = true, default-features = false } +async-trait = { workspace = true } +base64 = { workspace = true } +bech32 = { workspace = true } +bincode = { workspace = true } +bitvec = { workspace = true } +blake2b_simd = { workspace = true } +cfg-if = "1.0" +cnidarium = { workspace = true, optional = true, features = ["migration", "rpc"], default-features = true } +cnidarium-component = { workspace = true, optional = true, default-features = true } +decaf377 = { workspace = true, default-features = true } +decaf377-rdsa = { workspace = true } +futures = { workspace = true } +hex = { workspace = true } +ibc-proto = { workspace = true, default-features = false, features = ["server"] } +ibc-types = { workspace = true, default-features = false } +ics23 = { workspace = true } +im = { workspace = true } +jmt = { workspace = true } +metrics = { workspace = true } +once_cell = { workspace = true } +parking_lot = { workspace = true } +penumbra-sdk-asset = { workspace = true, default-features = true } +penumbra-sdk-app = { workspace = true, default-features = true } +penumbra-sdk-auction = { workspace = true, default-features = false } +penumbra-sdk-community-pool = { workspace = true, default-features = false } +penumbra-sdk-compact-block = { workspace = true, default-features = false } +penumbra-sdk-dex = { workspace = true, default-features = false } +penumbra-sdk-distributions = { workspace = true, default-features = false } +penumbra-sdk-fee = { workspace = true, default-features = false } +penumbra-sdk-funding = { workspace = true, default-features = false } +penumbra-sdk-governance = { workspace = true, default-features = false } +penumbra-sdk-ibc = { workspace = true, default-features = false } +penumbra-sdk-keys = { workspace = true, default-features = true } +penumbra-sdk-num = { workspace = true, default-features = true } +penumbra-sdk-proof-params = { workspace = true, default-features = false } +penumbra-sdk-proto = { workspace = true, default-features = true } +penumbra-sdk-sct = { workspace = true, default-features = false } +penumbra-sdk-shielded-pool = { workspace = true, default-features = false } +penumbra-sdk-stake = { workspace = true, default-features = false } +penumbra-sdk-tct = { workspace = true, default-features = true } +penumbra-sdk-test-subscriber = { workspace = true } +penumbra-sdk-tower-trace = { path = "../../util/tower-trace" } +penumbra-sdk-transaction = { workspace = true, features = ["parallel"], default-features = true } +penumbra-sdk-txhash = { workspace = true, default-features = true } +prost = { workspace = true } +rand_chacha = { workspace = true } +regex = { workspace = true } +serde = { workspace = true, features = ["derive"] } +serde_json = { workspace = true } +serde_unit_struct = { workspace = true } +serde_with = { workspace = true } +sha2 = { workspace = true } +tempfile = { workspace = true } +tendermint = { workspace = true } +tendermint-light-client-verifier = { workspace = true } +tendermint-proto = { workspace = true } +tokio = { workspace = true, features = ["full", "tracing"] } +tokio-util = { workspace = true } +tonic = { workspace = true, optional = true } +tonic-reflection = { workspace = true, optional = true } +tonic-web = { workspace = true, optional = true } +tower = { workspace = true, features = ["full"] } +tower-abci = "0.11" +tower-actor = "0.1.0" +tower-service = { workspace = true } +tracing = { workspace = true } +url = { workspace = true } + +[dev-dependencies] +axum-server = { workspace = true } +camino = { workspace = true } +decaf377-fmd = { workspace = true, default-features = true } +ed25519-consensus = { workspace = true } +penumbra-sdk-mock-client = { workspace = true } +penumbra-sdk-mock-consensus = { workspace = true } +penumbra-sdk-proto = { workspace = true, features = ["box-grpc"] } +penumbra-sdk-test-subscriber = { workspace = true } +penumbra-sdk-mock-tendermint-proxy = { workspace = true } +penumbra-sdk-view = { workspace = true } +penumbra-sdk-wallet = { workspace = true } +rand = { workspace = true } +rand_chacha = { workspace = true } +rand_core = { workspace = true } +tap = { workspace = true } +tempfile = { workspace = true } +tendermint-config = { workspace = true } +tower-http = { workspace = true, features = ["cors"] } +tracing-subscriber = { workspace = true } +url = { workspace = true } + +# Enable the feature flags to get proving keys when running tests. +[dev-dependencies.penumbra-sdk-proof-params] +workspace = true +features = [ + "bundled-proving-keys", + "download-proving-keys", +] diff --git a/crates/core/app/tests/app_blocktimes_increment.rs b/crates/core/app-tests/tests/app_blocktimes_increment.rs similarity index 98% rename from crates/core/app/tests/app_blocktimes_increment.rs rename to crates/core/app-tests/tests/app_blocktimes_increment.rs index 6125e70064..35c8d112a7 100644 --- a/crates/core/app/tests/app_blocktimes_increment.rs +++ b/crates/core/app-tests/tests/app_blocktimes_increment.rs @@ -1,11 +1,11 @@ use { self::common::BuilderExt, cnidarium::TempStorage, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_mock_consensus::TestNode, + penumbra_sdk_mock_consensus::TestNode, std::time::Duration, tap::{Tap, TapFallible}, }; diff --git a/crates/core/app/tests/app_can_define_and_delegate_to_a_validator.rs b/crates/core/app-tests/tests/app_can_define_and_delegate_to_a_validator.rs similarity index 92% rename from crates/core/app/tests/app_can_define_and_delegate_to_a_validator.rs rename to crates/core/app-tests/tests/app_can_define_and_delegate_to_a_validator.rs index 0027ee1408..6e11d0bdd7 100644 --- a/crates/core/app/tests/app_can_define_and_delegate_to_a_validator.rs +++ b/crates/core/app-tests/tests/app_can_define_and_delegate_to_a_validator.rs @@ -4,15 +4,15 @@ use { cnidarium::TempStorage, common::TempStorageExt as _, decaf377_rdsa::{SigningKey, SpendAuth, VerificationKey}, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_keys::test_keys, - penumbra_mock_client::MockClient, - penumbra_mock_consensus::TestNode, - penumbra_proto::DomainType, - penumbra_stake::{ + penumbra_sdk_keys::test_keys, + penumbra_sdk_mock_client::MockClient, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_proto::DomainType, + penumbra_sdk_stake::{ component::validator_handler::ValidatorDataRead as _, validator::Validator, FundingStreams, GovernanceKey, IdentityKey, }, @@ -24,7 +24,7 @@ use { mod common; -/// The length of the [`penumbra_sct`] epoch. +/// The length of the [`penumbra_sdk_sct`] epoch. /// /// This test relies on many epochs turning over, so we will work with a shorter epoch duration. const EPOCH_DURATION: u64 = 8; @@ -73,7 +73,7 @@ async fn app_can_define_and_delegate_to_a_validator() -> anyhow::Result<()> { // Check that we are now in a new epoch. { - use penumbra_sct::{component::clock::EpochRead, epoch::Epoch}; + use penumbra_sdk_sct::{component::clock::EpochRead, epoch::Epoch}; let Epoch { index: start, .. } = snapshot_start.get_current_epoch().await?; let Epoch { index: end, .. } = snapshot_end.get_current_epoch().await?; assert_eq!(start, 0, "we should start in the first epoch"); @@ -82,7 +82,9 @@ async fn app_can_define_and_delegate_to_a_validator() -> anyhow::Result<()> { // Show that the existing validator is and was active. { - use penumbra_stake::{component::validator_handler::ValidatorDataRead, validator::State}; + use penumbra_sdk_stake::{ + component::validator_handler::ValidatorDataRead, validator::State, + }; let start = snapshot_start .get_validator_state(&existing_validator_id) .await?; @@ -95,7 +97,7 @@ async fn app_can_define_and_delegate_to_a_validator() -> anyhow::Result<()> { // Show that the validator was, and still is, in the consensus set. { - use penumbra_stake::component::ConsensusIndexRead; + use penumbra_sdk_stake::component::ConsensusIndexRead; let start = snapshot_start.get_consensus_set().await?; let end = snapshot_end.get_consensus_set().await?; let expected = [existing_validator_id]; @@ -138,8 +140,8 @@ async fn app_can_define_and_delegate_to_a_validator() -> anyhow::Result<()> { // Make a transaction that defines a new validator. let plan = { use { - penumbra_stake::validator, - penumbra_transaction::{ActionPlan, TransactionParameters, TransactionPlan}, + penumbra_sdk_stake::validator, + penumbra_sdk_transaction::{ActionPlan, TransactionParameters, TransactionPlan}, rand_core::OsRng, }; let bytes = new_validator.encode_to_vec(); @@ -174,7 +176,7 @@ async fn app_can_define_and_delegate_to_a_validator() -> anyhow::Result<()> { // Show that the set of validators looks correct. { - use penumbra_stake::{component::ConsensusIndexRead, validator::State}; + use penumbra_sdk_stake::{component::ConsensusIndexRead, validator::State}; let snapshot = post_tx_snapshot.clone(); info!("checking consensus set in block after validator definition"); // The original validator should still be active. @@ -201,7 +203,7 @@ async fn app_can_define_and_delegate_to_a_validator() -> anyhow::Result<()> { // Show that the validators have different rates. The second validator was created later, and // should thus have a different rate than a validator that has existed since genesis. { - use penumbra_stake::component::validator_handler::validator_store::ValidatorDataRead; + use penumbra_sdk_stake::component::validator_handler::validator_store::ValidatorDataRead; let snapshot = post_tx_snapshot; let existing = snapshot .get_validator_rate(&existing_validator_id) @@ -220,10 +222,10 @@ async fn app_can_define_and_delegate_to_a_validator() -> anyhow::Result<()> { // Now, create a transaction that delegates to the new validator. let plan = { use { - penumbra_asset::STAKING_TOKEN_ASSET_ID, - penumbra_sct::component::clock::EpochRead, - penumbra_shielded_pool::{OutputPlan, SpendPlan}, - penumbra_transaction::{ + penumbra_sdk_asset::STAKING_TOKEN_ASSET_ID, + penumbra_sdk_sct::component::clock::EpochRead, + penumbra_sdk_shielded_pool::{OutputPlan, SpendPlan}, + penumbra_sdk_transaction::{ memo::MemoPlaintext, plan::MemoPlan, TransactionParameters, TransactionPlan, }, }; @@ -285,7 +287,7 @@ async fn app_can_define_and_delegate_to_a_validator() -> anyhow::Result<()> { // Show that the set of validators still looks correct. We should not see any changes yet. { - use penumbra_stake::{component::ConsensusIndexRead, validator::State}; + use penumbra_sdk_stake::{component::ConsensusIndexRead, validator::State}; let snapshot = post_delegate_snapshot.clone(); info!("checking consensus set in block after delegation"); // The original validator should still be active. @@ -311,7 +313,7 @@ async fn app_can_define_and_delegate_to_a_validator() -> anyhow::Result<()> { // Confirm that the new validator's voting power has not changed immeditaly. let new_validator_original_power = { - use penumbra_sct::component::clock::EpochRead; + use penumbra_sdk_sct::component::clock::EpochRead; let pre_delegate_power = pre_delegate_snapshot .get_validator_power(&new_validator_id) .await? @@ -339,7 +341,7 @@ async fn app_can_define_and_delegate_to_a_validator() -> anyhow::Result<()> { // Show that now, after an epoch and with a delegation, the validator is marked active. { - use penumbra_stake::{component::ConsensusIndexRead, validator::State}; + use penumbra_sdk_stake::{component::ConsensusIndexRead, validator::State}; info!("checking consensus set in epoch after delegation"); let snapshot = post_delegate_next_epoch_snapshot.clone(); // The original validator should still be active. @@ -378,10 +380,10 @@ async fn app_can_define_and_delegate_to_a_validator() -> anyhow::Result<()> { // Build a transaction that will now undelegate from the validator. let plan = { use { - penumbra_sct::component::clock::EpochRead, - penumbra_shielded_pool::{OutputPlan, SpendPlan}, - penumbra_stake::DelegationToken, - penumbra_transaction::{ + penumbra_sdk_sct::component::clock::EpochRead, + penumbra_sdk_shielded_pool::{OutputPlan, SpendPlan}, + penumbra_sdk_stake::DelegationToken, + penumbra_sdk_transaction::{ memo::MemoPlaintext, plan::MemoPlan, TransactionParameters, TransactionPlan, }, }; @@ -444,7 +446,7 @@ async fn app_can_define_and_delegate_to_a_validator() -> anyhow::Result<()> { // Show that the consensus set has not changed yet. { - use penumbra_stake::{component::ConsensusIndexRead, validator::State}; + use penumbra_sdk_stake::{component::ConsensusIndexRead, validator::State}; let snapshot = post_undelegate_snapshot.clone(); info!("checking consensus set in block after undelegation"); // The original validator should still be active. @@ -485,7 +487,7 @@ async fn app_can_define_and_delegate_to_a_validator() -> anyhow::Result<()> { // Show that after undelegating, the validator is no longer marked active. { - use penumbra_stake::{component::ConsensusIndexRead, validator::State}; + use penumbra_sdk_stake::{component::ConsensusIndexRead, validator::State}; info!("checking consensus set in epoch after undelegation"); let snapshot = post_undelegate_next_epoch_snapshot.clone(); // The original validator should still be active. diff --git a/crates/core/app/tests/app_can_deposit_into_community_pool.rs b/crates/core/app-tests/tests/app_can_deposit_into_community_pool.rs similarity index 91% rename from crates/core/app/tests/app_can_deposit_into_community_pool.rs rename to crates/core/app-tests/tests/app_can_deposit_into_community_pool.rs index 895e61014e..9994fc0269 100644 --- a/crates/core/app/tests/app_can_deposit_into_community_pool.rs +++ b/crates/core/app-tests/tests/app_can_deposit_into_community_pool.rs @@ -3,19 +3,19 @@ use { anyhow::anyhow, cnidarium::TempStorage, common::TempStorageExt as _, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_asset::asset, - penumbra_community_pool::{CommunityPoolDeposit, StateReadExt}, - penumbra_keys::test_keys, - penumbra_mock_client::MockClient, - penumbra_mock_consensus::TestNode, - penumbra_num::Amount, - penumbra_proto::DomainType, - penumbra_shielded_pool::SpendPlan, - penumbra_transaction::{TransactionParameters, TransactionPlan}, + penumbra_sdk_asset::asset, + penumbra_sdk_community_pool::{CommunityPoolDeposit, StateReadExt}, + penumbra_sdk_keys::test_keys, + penumbra_sdk_mock_client::MockClient, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_num::Amount, + penumbra_sdk_proto::DomainType, + penumbra_sdk_shielded_pool::SpendPlan, + penumbra_sdk_transaction::{TransactionParameters, TransactionPlan}, rand_core::OsRng, std::collections::BTreeMap, tap::{Tap, TapFallible}, diff --git a/crates/core/app/tests/app_can_disable_community_pool_spends.rs b/crates/core/app-tests/tests/app_can_disable_community_pool_spends.rs similarity index 90% rename from crates/core/app/tests/app_can_disable_community_pool_spends.rs rename to crates/core/app-tests/tests/app_can_disable_community_pool_spends.rs index 0854e3633f..7379ce71a0 100644 --- a/crates/core/app/tests/app_can_disable_community_pool_spends.rs +++ b/crates/core/app-tests/tests/app_can_disable_community_pool_spends.rs @@ -4,34 +4,34 @@ use { cnidarium::TempStorage, common::TempStorageExt as _, decaf377_rdsa::VerificationKey, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{AppState, Content}, server::consensus::Consensus, CommunityPoolStateReadExt as _, }, - penumbra_asset::STAKING_TOKEN_ASSET_ID, - penumbra_community_pool::{ + penumbra_sdk_asset::STAKING_TOKEN_ASSET_ID, + penumbra_sdk_community_pool::{ CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend, StateReadExt as _, }, - penumbra_governance::{ + penumbra_sdk_governance::{ Proposal, ProposalSubmit, StateReadExt as _, ValidatorVote, ValidatorVoteBody, ValidatorVoteReason, }, - penumbra_keys::{ + penumbra_sdk_keys::{ keys::{SpendKey, SpendKeyBytes}, test_keys, }, - penumbra_mock_client::MockClient, - penumbra_mock_consensus::TestNode, - penumbra_num::Amount, - penumbra_proto::{ + penumbra_sdk_mock_client::MockClient, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_num::Amount, + penumbra_sdk_proto::{ core::keys::v1::{GovernanceKey, IdentityKey}, penumbra::core::component::stake::v1::Validator as PenumbraValidator, DomainType, }, - penumbra_shielded_pool::{genesis::Allocation, OutputPlan, SpendPlan}, - penumbra_stake::DelegationToken, - penumbra_transaction::{ + penumbra_sdk_shielded_pool::{genesis::Allocation, OutputPlan, SpendPlan}, + penumbra_sdk_stake::DelegationToken, + penumbra_sdk_transaction::{ memo::MemoPlaintext, plan::MemoPlan, ActionPlan, TransactionParameters, TransactionPlan, }, rand::Rng, @@ -99,7 +99,7 @@ async fn app_can_disable_community_pool_spends() -> anyhow::Result<()> { .incoming() .payment_address(0u32.into()); - let ik = penumbra_stake::IdentityKey(identity_vk.into()); + let ik = penumbra_sdk_stake::IdentityKey(identity_vk.into()); let delegation_denom = DelegationToken::from(ik).denom(); let allocation = Allocation { @@ -115,18 +115,19 @@ async fn app_can_disable_community_pool_spends() -> anyhow::Result<()> { let mut test_node = { let mut content = Content { chain_id: TestNode::<()>::CHAIN_ID.to_string(), - governance_content: penumbra_governance::genesis::Content { - governance_params: penumbra_governance::params::GovernanceParameters { + governance_content: penumbra_sdk_governance::genesis::Content { + governance_params: penumbra_sdk_governance::params::GovernanceParameters { proposal_deposit_amount: 0_u32.into(), proposal_voting_blocks: PROPOSAL_VOTING_BLOCKS, ..Default::default() }, }, - community_pool_content: penumbra_community_pool::genesis::Content { - community_pool_params: penumbra_community_pool::params::CommunityPoolParameters { - // Disable community spend proposals. - community_pool_spend_proposals_enabled: false, - }, + community_pool_content: penumbra_sdk_community_pool::genesis::Content { + community_pool_params: + penumbra_sdk_community_pool::params::CommunityPoolParameters { + // Disable community spend proposals. + community_pool_spend_proposals_enabled: false, + }, ..Default::default() }, ..Default::default() @@ -225,7 +226,7 @@ async fn app_can_disable_community_pool_spends() -> anyhow::Result<()> { id: 0_u64, title: "return test deposit".to_owned(), description: "a proposal to return the community pool deposit".to_owned(), - payload: penumbra_governance::ProposalPayload::CommunityPoolSpend { + payload: penumbra_sdk_governance::ProposalPayload::CommunityPoolSpend { transaction_plan: proposed_tx_plan.encode_to_vec(), // transaction_plan: TransactionPlan::default().encode_to_vec(), }, @@ -275,9 +276,9 @@ async fn app_can_disable_community_pool_spends() -> anyhow::Result<()> { let plan = { let body = ValidatorVoteBody { proposal: 0_u64, - vote: penumbra_governance::Vote::Yes, - identity_key: penumbra_stake::IdentityKey(identity_vk.to_bytes().into()), - governance_key: penumbra_stake::GovernanceKey(governance_vk), + vote: penumbra_sdk_governance::Vote::Yes, + identity_key: penumbra_sdk_stake::IdentityKey(identity_vk.to_bytes().into()), + governance_key: penumbra_sdk_stake::GovernanceKey(governance_vk), reason: ValidatorVoteReason("test reason".to_owned()), }; let auth_sig = governance_sk.sign(OsRng, body.encode_to_vec().as_slice()); diff --git a/crates/core/app/tests/app_can_propose_community_pool_spends.rs b/crates/core/app-tests/tests/app_can_propose_community_pool_spends.rs similarity index 91% rename from crates/core/app/tests/app_can_propose_community_pool_spends.rs rename to crates/core/app-tests/tests/app_can_propose_community_pool_spends.rs index d8af8d1b07..e7f0db8b69 100644 --- a/crates/core/app/tests/app_can_propose_community_pool_spends.rs +++ b/crates/core/app-tests/tests/app_can_propose_community_pool_spends.rs @@ -4,34 +4,34 @@ use { cnidarium::TempStorage, common::TempStorageExt as _, decaf377_rdsa::VerificationKey, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{AppState, Content}, server::consensus::Consensus, CommunityPoolStateReadExt as _, }, - penumbra_asset::STAKING_TOKEN_ASSET_ID, - penumbra_community_pool::{ + penumbra_sdk_asset::STAKING_TOKEN_ASSET_ID, + penumbra_sdk_community_pool::{ CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend, StateReadExt as _, }, - penumbra_governance::{ + penumbra_sdk_governance::{ Proposal, ProposalSubmit, StateReadExt as _, ValidatorVote, ValidatorVoteBody, ValidatorVoteReason, }, - penumbra_keys::{ + penumbra_sdk_keys::{ keys::{SpendKey, SpendKeyBytes}, test_keys, }, - penumbra_mock_client::MockClient, - penumbra_mock_consensus::TestNode, - penumbra_num::Amount, - penumbra_proto::{ + penumbra_sdk_mock_client::MockClient, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_num::Amount, + penumbra_sdk_proto::{ core::keys::v1::{GovernanceKey, IdentityKey}, penumbra::core::component::stake::v1::Validator as PenumbraValidator, DomainType, }, - penumbra_shielded_pool::{genesis::Allocation, OutputPlan, SpendPlan}, - penumbra_stake::DelegationToken, - penumbra_transaction::{ + penumbra_sdk_shielded_pool::{genesis::Allocation, OutputPlan, SpendPlan}, + penumbra_sdk_stake::DelegationToken, + penumbra_sdk_transaction::{ memo::MemoPlaintext, plan::MemoPlan, ActionPlan, TransactionParameters, TransactionPlan, }, rand::Rng, @@ -99,7 +99,7 @@ async fn app_can_propose_community_pool_spends() -> anyhow::Result<()> { .incoming() .payment_address(0u32.into()); - let ik = penumbra_stake::IdentityKey(identity_vk.into()); + let ik = penumbra_sdk_stake::IdentityKey(identity_vk.into()); let delegation_denom = DelegationToken::from(ik).denom(); let allocation = Allocation { @@ -115,8 +115,8 @@ async fn app_can_propose_community_pool_spends() -> anyhow::Result<()> { let mut test_node = { let mut content = Content { chain_id: TestNode::<()>::CHAIN_ID.to_string(), - governance_content: penumbra_governance::genesis::Content { - governance_params: penumbra_governance::params::GovernanceParameters { + governance_content: penumbra_sdk_governance::genesis::Content { + governance_params: penumbra_sdk_governance::params::GovernanceParameters { proposal_deposit_amount: 0_u32.into(), proposal_voting_blocks: PROPOSAL_VOTING_BLOCKS, ..Default::default() @@ -218,7 +218,7 @@ async fn app_can_propose_community_pool_spends() -> anyhow::Result<()> { id: 0_u64, title: "return test deposit".to_owned(), description: "a proposal to return the community pool deposit".to_owned(), - payload: penumbra_governance::ProposalPayload::CommunityPoolSpend { + payload: penumbra_sdk_governance::ProposalPayload::CommunityPoolSpend { transaction_plan: proposed_tx_plan.encode_to_vec(), // transaction_plan: TransactionPlan::default().encode_to_vec(), }, @@ -268,9 +268,9 @@ async fn app_can_propose_community_pool_spends() -> anyhow::Result<()> { let mut plan = { let body = ValidatorVoteBody { proposal: 0_u64, - vote: penumbra_governance::Vote::Yes, - identity_key: penumbra_stake::IdentityKey(identity_vk.to_bytes().into()), - governance_key: penumbra_stake::GovernanceKey(governance_vk), + vote: penumbra_sdk_governance::Vote::Yes, + identity_key: penumbra_sdk_stake::IdentityKey(identity_vk.to_bytes().into()), + governance_key: penumbra_sdk_stake::GovernanceKey(governance_vk), reason: ValidatorVoteReason("test reason".to_owned()), }; let auth_sig = governance_sk.sign(OsRng, body.encode_to_vec().as_slice()); @@ -338,7 +338,7 @@ async fn app_can_propose_community_pool_spends() -> anyhow::Result<()> { ); assert_eq!( post_proposal_state, - Some(penumbra_governance::proposal_state::State::Voting), + Some(penumbra_sdk_governance::proposal_state::State::Voting), "a new proposal should be in the voting phase" ); assert_eq!( @@ -354,7 +354,7 @@ async fn app_can_propose_community_pool_spends() -> anyhow::Result<()> { ); assert_eq!( post_vote_state, - Some(penumbra_governance::proposal_state::State::Voting), + Some(penumbra_sdk_governance::proposal_state::State::Voting), "a proposal should remain in the voting phase" ); assert_eq!( @@ -373,8 +373,8 @@ async fn app_can_propose_community_pool_spends() -> anyhow::Result<()> { ); assert_eq!( post_voting_period_state, - Some(penumbra_governance::proposal_state::State::Finished { - outcome: penumbra_governance::proposal_state::Outcome::Passed, + Some(penumbra_sdk_governance::proposal_state::State::Finished { + outcome: penumbra_sdk_governance::proposal_state::Outcome::Passed, }), "a proposal should be finished after the voting period completes" ); diff --git a/crates/core/app/tests/app_can_spend_notes_and_detect_outputs.rs b/crates/core/app-tests/tests/app_can_spend_notes_and_detect_outputs.rs similarity index 93% rename from crates/core/app/tests/app_can_spend_notes_and_detect_outputs.rs rename to crates/core/app-tests/tests/app_can_spend_notes_and_detect_outputs.rs index 49d7b93018..487227f974 100644 --- a/crates/core/app/tests/app_can_spend_notes_and_detect_outputs.rs +++ b/crates/core/app-tests/tests/app_can_spend_notes_and_detect_outputs.rs @@ -3,17 +3,17 @@ use { anyhow::anyhow, cnidarium::TempStorage, common::TempStorageExt as _, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_keys::test_keys, - penumbra_mock_client::MockClient, - penumbra_mock_consensus::TestNode, - penumbra_proto::DomainType, - penumbra_sct::component::tree::SctRead as _, - penumbra_shielded_pool::{OutputPlan, SpendPlan}, - penumbra_transaction::{ + penumbra_sdk_keys::test_keys, + penumbra_sdk_mock_client::MockClient, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_proto::DomainType, + penumbra_sdk_sct::component::tree::SctRead as _, + penumbra_sdk_shielded_pool::{OutputPlan, SpendPlan}, + penumbra_sdk_transaction::{ memo::MemoPlaintext, plan::MemoPlan, TransactionParameters, TransactionPlan, }, rand_core::OsRng, diff --git a/crates/core/app/tests/app_can_sweep_a_collection_of_small_notes.rs b/crates/core/app-tests/tests/app_can_sweep_a_collection_of_small_notes.rs similarity index 89% rename from crates/core/app/tests/app_can_sweep_a_collection_of_small_notes.rs rename to crates/core/app-tests/tests/app_can_sweep_a_collection_of_small_notes.rs index 1a2ae423cb..a32fd032aa 100644 --- a/crates/core/app/tests/app_can_sweep_a_collection_of_small_notes.rs +++ b/crates/core/app-tests/tests/app_can_sweep_a_collection_of_small_notes.rs @@ -2,24 +2,24 @@ use { anyhow::Context, cnidarium::TempStorage, common::TempStorageExt as _, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{AppState, Content}, server::consensus::Consensus, }, - penumbra_asset::{STAKING_TOKEN_ASSET_ID, STAKING_TOKEN_DENOM}, - penumbra_keys::{keys::AddressIndex, test_keys}, - penumbra_mock_client::MockClient, - penumbra_mock_consensus::TestNode, - penumbra_proto::{ + penumbra_sdk_asset::{STAKING_TOKEN_ASSET_ID, STAKING_TOKEN_DENOM}, + penumbra_sdk_keys::{keys::AddressIndex, test_keys}, + penumbra_sdk_mock_client::MockClient, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_proto::{ view::v1::{ view_service_client::ViewServiceClient, view_service_server::ViewServiceServer, StatusRequest, StatusResponse, }, DomainType, }, - penumbra_shielded_pool::genesis::Allocation, - penumbra_view::ViewClient, - penumbra_wallet::plan::SWEEP_COUNT, + penumbra_sdk_shielded_pool::genesis::Allocation, + penumbra_sdk_view::ViewClient, + penumbra_sdk_wallet::plan::SWEEP_COUNT, rand_core::OsRng, std::ops::Deref, tap::{Tap, TapFallible}, @@ -41,7 +41,7 @@ async fn app_can_sweep_a_collection_of_small_notes() -> anyhow::Result<()> { let storage = TempStorage::new_with_penumbra_prefixes().await?; // Instantiate a mock tendermint proxy, which we will connect to the test node. - let proxy = penumbra_mock_tendermint_proxy::TestNodeProxy::new::(); + let proxy = penumbra_sdk_mock_tendermint_proxy::TestNodeProxy::new::(); // Define allocations to the test address, as many small notes. let allocations = { @@ -57,7 +57,7 @@ async fn app_can_sweep_a_collection_of_small_notes() -> anyhow::Result<()> { let mut test_node = { let content = Content { chain_id: TestNode::<()>::CHAIN_ID.to_string(), - shielded_pool_content: penumbra_shielded_pool::genesis::Content { + shielded_pool_content: penumbra_sdk_shielded_pool::genesis::Content { allocations, ..Default::default() }, @@ -95,7 +95,7 @@ async fn app_can_sweep_a_collection_of_small_notes() -> anyhow::Result<()> { // Spawn the server-side view server. { - let make_svc = penumbra_app::rpc::routes( + let make_svc = penumbra_sdk_app::rpc::routes( storage.as_ref(), proxy, false, /*enable_expensive_rpc*/ @@ -115,7 +115,7 @@ async fn app_can_sweep_a_collection_of_small_notes() -> anyhow::Result<()> { // Spawn the client-side view server... let view_server = { - penumbra_view::ViewServer::load_or_initialize( + penumbra_sdk_view::ViewServer::load_or_initialize( None::<&camino::Utf8Path>, None::<&camino::Utf8Path>, &*test_keys::FULL_VIEWING_KEY, @@ -159,7 +159,7 @@ async fn app_can_sweep_a_collection_of_small_notes() -> anyhow::Result<()> { ); loop { - let plans = penumbra_wallet::plan::sweep(&mut view_client, OsRng) + let plans = penumbra_sdk_wallet::plan::sweep(&mut view_client, OsRng) .await .context("constructing sweep plans")?; if plans.is_empty() { diff --git a/crates/core/app/tests/app_can_undelegate_from_a_validator.rs b/crates/core/app-tests/tests/app_can_undelegate_from_a_validator.rs similarity index 90% rename from crates/core/app/tests/app_can_undelegate_from_a_validator.rs rename to crates/core/app-tests/tests/app_can_undelegate_from_a_validator.rs index 82ec8b14b6..739493bd9e 100644 --- a/crates/core/app/tests/app_can_undelegate_from_a_validator.rs +++ b/crates/core/app-tests/tests/app_can_undelegate_from_a_validator.rs @@ -4,18 +4,20 @@ use { cnidarium::TempStorage, common::TempStorageExt as _, decaf377_fmd::Precision, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_keys::test_keys, - penumbra_mock_client::MockClient, - penumbra_mock_consensus::TestNode, - penumbra_num::fixpoint::U128x128, - penumbra_proto::DomainType, - penumbra_sct::component::clock::EpochRead as _, - penumbra_stake::{component::validator_handler::ValidatorDataRead as _, UndelegateClaimPlan}, - penumbra_transaction::{ + penumbra_sdk_keys::test_keys, + penumbra_sdk_mock_client::MockClient, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_num::fixpoint::U128x128, + penumbra_sdk_proto::DomainType, + penumbra_sdk_sct::component::clock::EpochRead as _, + penumbra_sdk_stake::{ + component::validator_handler::ValidatorDataRead as _, UndelegateClaimPlan, + }, + penumbra_sdk_transaction::{ memo::MemoPlaintext, plan::MemoPlan, TransactionParameters, TransactionPlan, }, rand_core::OsRng, @@ -26,12 +28,12 @@ use { mod common; -/// The length of the [`penumbra_sct`] epoch. +/// The length of the [`penumbra_sdk_sct`] epoch. /// /// This test relies on many epochs turning over, so we will work with a shorter epoch duration. const EPOCH_DURATION: u64 = 3; -/// The length of the [`penumbra_stake`] unbonding_delay. +/// The length of the [`penumbra_sdk_stake`] unbonding_delay. const UNBONDING_DELAY: u64 = 4; #[tokio::test] @@ -83,7 +85,7 @@ async fn app_can_undelegate_from_a_validator() -> anyhow::Result<()> { .await? .try_into() .map_err(|keys| anyhow::anyhow!("expected one key, got: {keys:?}"))?; - let delegate_token_id = penumbra_stake::DelegationToken::new(identity_key).id(); + let delegate_token_id = penumbra_sdk_stake::DelegationToken::new(identity_key).id(); // Sync the mock client, using the test wallet's spend key, to the latest snapshot. let mut client = MockClient::new(test_keys::SPEND_KEY.clone()) @@ -110,13 +112,13 @@ async fn app_can_undelegate_from_a_validator() -> anyhow::Result<()> { .tap(|rate| tracing::info!(?rate, "got validator rate")); let (plan, staking_note, staking_note_nullifier) = { use { - penumbra_shielded_pool::{OutputPlan, SpendPlan}, - penumbra_transaction::{ + penumbra_sdk_shielded_pool::{OutputPlan, SpendPlan}, + penumbra_sdk_transaction::{ memo::MemoPlaintext, plan::MemoPlan, TransactionParameters, TransactionPlan, }, }; let note = client - .notes_by_asset(*penumbra_asset::STAKING_TOKEN_ASSET_ID) + .notes_by_asset(*penumbra_sdk_asset::STAKING_TOKEN_ASSET_ID) .cloned() .next() .expect("should get staking note"); @@ -174,7 +176,7 @@ async fn app_can_undelegate_from_a_validator() -> anyhow::Result<()> { .await?; // Show that the client now has a single note for some delegation tokens. - let delegate_note: penumbra_shielded_pool::Note = { + let delegate_note: penumbra_sdk_shielded_pool::Note = { let mut notes: Vec<_> = client.notes_by_asset(delegate_token_id).cloned().collect(); assert_eq!(notes.len(), 1, "client should now have delegation tokens"); notes.pop().unwrap() @@ -182,7 +184,7 @@ async fn app_can_undelegate_from_a_validator() -> anyhow::Result<()> { // Show that the staking note has a nullifier that has now been spent. { - use penumbra_sct::component::tree::VerificationExt; + use penumbra_sdk_sct::component::tree::VerificationExt; let snapshot = storage.latest_snapshot(); let Err(_) = snapshot .check_nullifier_unspent(staking_note_nullifier) @@ -204,9 +206,9 @@ async fn app_can_undelegate_from_a_validator() -> anyhow::Result<()> { .tap(|rate| tracing::info!(?rate, "got new validator rate")); let (plan, undelegate_token_id) = { use { - penumbra_shielded_pool::{OutputPlan, SpendPlan}, - penumbra_stake::DelegationToken, - penumbra_transaction::{ + penumbra_sdk_shielded_pool::{OutputPlan, SpendPlan}, + penumbra_sdk_stake::DelegationToken, + penumbra_sdk_transaction::{ memo::MemoPlaintext, plan::MemoPlan, TransactionParameters, TransactionPlan, }, }; @@ -274,7 +276,7 @@ async fn app_can_undelegate_from_a_validator() -> anyhow::Result<()> { .expect("snapshot should have a block height"); // Show that we immediately receive unbonding tokens after undelegating. - let undelegate_note: penumbra_shielded_pool::Note = { + let undelegate_note: penumbra_sdk_shielded_pool::Note = { client.sync_to_latest(post_undelegate_snapshot).await?; let mut undelegate_notes: Vec<_> = client .notes_by_asset(undelegate_token_id) @@ -304,7 +306,7 @@ async fn app_can_undelegate_from_a_validator() -> anyhow::Result<()> { // Build a transaction that will now reclaim staking tokens from the validator. let plan = { client.sync_to_latest(storage.latest_snapshot()).await?; - let penalty = penumbra_stake::Penalty::from_percent(0); + let penalty = penumbra_sdk_stake::Penalty::from_percent(0); let note = client .notes .values() @@ -350,7 +352,7 @@ async fn app_can_undelegate_from_a_validator() -> anyhow::Result<()> { { client.sync_to_latest(post_claim_snapshot.clone()).await?; let notes: Vec<_> = client - .notes_by_asset(*penumbra_asset::STAKING_TOKEN_ASSET_ID) + .notes_by_asset(*penumbra_sdk_asset::STAKING_TOKEN_ASSET_ID) .cloned() .collect(); assert_eq!(notes.len(), 1, "client should still have staking notes"); @@ -368,7 +370,7 @@ async fn app_can_undelegate_from_a_validator() -> anyhow::Result<()> { // Lets make some assertions that the note amounts respect the validator rates. { - use penumbra_stake::BPS_SQUARED_SCALING_FACTOR; + use penumbra_sdk_stake::BPS_SQUARED_SCALING_FACTOR; use std::ops::Deref; let staking_note_amount: U128x128 = staking_note.amount().into(); @@ -382,7 +384,7 @@ async fn app_can_undelegate_from_a_validator() -> anyhow::Result<()> { (undelegate_exchange_rate / BPS_SQUARED_SCALING_FACTOR.deref())?; // Compute the expected amount of delegation tokens we should have received. - let expected: penumbra_num::Amount = staking_note_amount + let expected: penumbra_sdk_num::Amount = staking_note_amount .checked_div(&scaled_delegate_rate)? .round_down() .try_into()?; @@ -394,7 +396,7 @@ async fn app_can_undelegate_from_a_validator() -> anyhow::Result<()> { ); // Compute the expected amount of undelegation tokens we should have received. - let expected: penumbra_num::Amount = delegate_note_amount + let expected: penumbra_sdk_num::Amount = delegate_note_amount .checked_mul(&scaled_undelegate_rate)? .round_down() .try_into()?; diff --git a/crates/core/app/tests/app_check_dex_vcb.rs b/crates/core/app-tests/tests/app_check_dex_vcb.rs similarity index 92% rename from crates/core/app/tests/app_check_dex_vcb.rs rename to crates/core/app-tests/tests/app_check_dex_vcb.rs index 85d6a87f5a..5eece0d73b 100644 --- a/crates/core/app/tests/app_check_dex_vcb.rs +++ b/crates/core/app-tests/tests/app_check_dex_vcb.rs @@ -3,16 +3,16 @@ mod common; use self::common::TempStorageExt; use cnidarium::{ArcStateDeltaExt, StateDelta, TempStorage}; use cnidarium_component::ActionHandler; -use penumbra_asset::asset; -use penumbra_dex::{ +use penumbra_sdk_asset::asset; +use penumbra_sdk_dex::{ component::ValueCircuitBreakerRead, swap::{SwapPlaintext, SwapPlan}, TradingPair, }; -use penumbra_fee::Fee; -use penumbra_keys::{test_keys, Address}; -use penumbra_num::Amount; -use penumbra_sct::component::source::SourceContext; +use penumbra_sdk_fee::Fee; +use penumbra_sdk_keys::{test_keys, Address}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_sct::component::source::SourceContext; use rand_core::SeedableRng; use std::{ops::Deref, sync::Arc}; diff --git a/crates/core/app/tests/app_rejects_validator_definitions_with_invalid_auth_sigs.rs b/crates/core/app-tests/tests/app_rejects_validator_definitions_with_invalid_auth_sigs.rs similarity index 93% rename from crates/core/app/tests/app_rejects_validator_definitions_with_invalid_auth_sigs.rs rename to crates/core/app-tests/tests/app_rejects_validator_definitions_with_invalid_auth_sigs.rs index 5bc71e50ed..d09178db42 100644 --- a/crates/core/app/tests/app_rejects_validator_definitions_with_invalid_auth_sigs.rs +++ b/crates/core/app-tests/tests/app_rejects_validator_definitions_with_invalid_auth_sigs.rs @@ -3,15 +3,15 @@ use { cnidarium::TempStorage, common::TempStorageExt as _, decaf377_rdsa::{SigningKey, SpendAuth, VerificationKey}, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_keys::test_keys, - penumbra_mock_client::MockClient, - penumbra_mock_consensus::TestNode, - penumbra_proto::DomainType, - penumbra_stake::{validator::Validator, FundingStreams, GovernanceKey, IdentityKey}, + penumbra_sdk_keys::test_keys, + penumbra_sdk_mock_client::MockClient, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_proto::DomainType, + penumbra_sdk_stake::{validator::Validator, FundingStreams, GovernanceKey, IdentityKey}, rand_core::OsRng, tap::Tap, tracing::{error_span, info, Instrument}, @@ -92,8 +92,8 @@ async fn app_rejects_validator_definitions_with_invalid_auth_sigs() -> anyhow::R // Make a transaction that defines a new validator, providing an invalid signature. let plan = { use { - penumbra_stake::validator, - penumbra_transaction::{ActionPlan, TransactionParameters, TransactionPlan}, + penumbra_sdk_stake::validator, + penumbra_sdk_transaction::{ActionPlan, TransactionParameters, TransactionPlan}, rand_core::OsRng, }; let bytes = new_validator.encode_to_vec(); diff --git a/crates/core/app/tests/app_reproduce_testnet_75_vcb_close.rs b/crates/core/app-tests/tests/app_reproduce_testnet_75_vcb_close.rs similarity index 95% rename from crates/core/app/tests/app_reproduce_testnet_75_vcb_close.rs rename to crates/core/app-tests/tests/app_reproduce_testnet_75_vcb_close.rs index fcf7a4e21e..011b46e150 100644 --- a/crates/core/app/tests/app_reproduce_testnet_75_vcb_close.rs +++ b/crates/core/app-tests/tests/app_reproduce_testnet_75_vcb_close.rs @@ -3,12 +3,12 @@ use { anyhow::anyhow, cnidarium::TempStorage, common::TempStorageExt as _, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_asset::{Value, STAKING_TOKEN_ASSET_ID}, - penumbra_auction::{ + penumbra_sdk_asset::{Value, STAKING_TOKEN_ASSET_ID}, + penumbra_sdk_auction::{ auction::{ dutch::{ActionDutchAuctionEnd, ActionDutchAuctionSchedule, DutchAuctionDescription}, AuctionNft, @@ -16,12 +16,12 @@ use { component::AuctionStoreRead, StateReadExt as _, }, - penumbra_keys::test_keys, - penumbra_mock_client::MockClient, - penumbra_mock_consensus::TestNode, - penumbra_proto::DomainType, - penumbra_shielded_pool::{Note, OutputPlan, SpendPlan}, - penumbra_transaction::{ + penumbra_sdk_keys::test_keys, + penumbra_sdk_mock_client::MockClient, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_proto::DomainType, + penumbra_sdk_shielded_pool::{Note, OutputPlan, SpendPlan}, + penumbra_sdk_transaction::{ memo::MemoPlaintext, plan::MemoPlan, ActionPlan, TransactionParameters, TransactionPlan, }, rand_core::OsRng, diff --git a/crates/core/app/tests/app_tracks_uptime_for_genesis_validator_missing_blocks.rs b/crates/core/app-tests/tests/app_tracks_uptime_for_genesis_validator_missing_blocks.rs similarity index 94% rename from crates/core/app/tests/app_tracks_uptime_for_genesis_validator_missing_blocks.rs rename to crates/core/app-tests/tests/app_tracks_uptime_for_genesis_validator_missing_blocks.rs index 4678141941..6ed014bf77 100644 --- a/crates/core/app/tests/app_tracks_uptime_for_genesis_validator_missing_blocks.rs +++ b/crates/core/app-tests/tests/app_tracks_uptime_for_genesis_validator_missing_blocks.rs @@ -3,12 +3,12 @@ use { anyhow::Context, cnidarium::TempStorage, common::TempStorageExt as _, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_mock_consensus::TestNode, - penumbra_stake::component::validator_handler::validator_store::ValidatorDataRead, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_stake::component::validator_handler::validator_store::ValidatorDataRead, tap::Tap, tracing::{error_span, trace, Instrument}, }; diff --git a/crates/core/app/tests/app_tracks_uptime_for_genesis_validator_signing_blocks.rs b/crates/core/app-tests/tests/app_tracks_uptime_for_genesis_validator_signing_blocks.rs similarity index 93% rename from crates/core/app/tests/app_tracks_uptime_for_genesis_validator_signing_blocks.rs rename to crates/core/app-tests/tests/app_tracks_uptime_for_genesis_validator_signing_blocks.rs index 309afa4256..ee5ef2e29f 100644 --- a/crates/core/app/tests/app_tracks_uptime_for_genesis_validator_signing_blocks.rs +++ b/crates/core/app-tests/tests/app_tracks_uptime_for_genesis_validator_signing_blocks.rs @@ -3,12 +3,12 @@ use { anyhow::Context, cnidarium::TempStorage, common::TempStorageExt as _, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_mock_consensus::TestNode, - penumbra_stake::component::validator_handler::validator_store::ValidatorDataRead, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_stake::component::validator_handler::validator_store::ValidatorDataRead, tap::Tap, tracing::{error_span, Instrument}, }; diff --git a/crates/core/app/tests/app_tracks_uptime_for_validators_only_once_active.rs b/crates/core/app-tests/tests/app_tracks_uptime_for_validators_only_once_active.rs similarity index 94% rename from crates/core/app/tests/app_tracks_uptime_for_validators_only_once_active.rs rename to crates/core/app-tests/tests/app_tracks_uptime_for_validators_only_once_active.rs index de687b1356..85c3806bbd 100644 --- a/crates/core/app/tests/app_tracks_uptime_for_validators_only_once_active.rs +++ b/crates/core/app-tests/tests/app_tracks_uptime_for_validators_only_once_active.rs @@ -3,16 +3,16 @@ use { cnidarium::TempStorage, common::TempStorageExt as _, decaf377_rdsa::{SigningKey, SpendAuth, VerificationKey}, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_keys::test_keys, - penumbra_mock_client::MockClient, - penumbra_mock_consensus::TestNode, - penumbra_proto::DomainType, - penumbra_sct::component::clock::EpochRead, - penumbra_stake::{ + penumbra_sdk_keys::test_keys, + penumbra_sdk_mock_client::MockClient, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_proto::DomainType, + penumbra_sdk_sct::component::clock::EpochRead, + penumbra_sdk_stake::{ component::validator_handler::validator_store::ValidatorDataRead, validator::Validator, FundingStreams, GovernanceKey, IdentityKey, Uptime, }, @@ -26,7 +26,7 @@ mod common; #[tokio::test] async fn app_tracks_uptime_for_validators_only_once_active() -> anyhow::Result<()> { - /// The length of the [`penumbra_sct`] epoch. + /// The length of the [`penumbra_sdk_sct`] epoch. /// /// This test relies on many epochs turning over, so we will work with a shorter epoch duration. const EPOCH_DURATION: u64 = 8; @@ -66,7 +66,7 @@ async fn app_tracks_uptime_for_validators_only_once_active() -> anyhow::Result<( // Helper function, count the validators in the current consensus set. let get_latest_consensus_set = || async { - use penumbra_stake::component::ConsensusIndexRead; + use penumbra_sdk_stake::component::ConsensusIndexRead; storage .latest_snapshot() .get_consensus_set() @@ -114,8 +114,8 @@ async fn app_tracks_uptime_for_validators_only_once_active() -> anyhow::Result<( // Make a transaction that defines the new validator. let plan = { use { - penumbra_stake::validator, - penumbra_transaction::{ActionPlan, TransactionParameters, TransactionPlan}, + penumbra_sdk_stake::validator, + penumbra_sdk_transaction::{ActionPlan, TransactionParameters, TransactionPlan}, rand_core::OsRng, }; let bytes = new_validator.encode_to_vec(); @@ -160,10 +160,10 @@ async fn app_tracks_uptime_for_validators_only_once_active() -> anyhow::Result<( // Now, create a transaction that delegates to the new validator. let plan = { use { - penumbra_asset::STAKING_TOKEN_ASSET_ID, - penumbra_sct::component::clock::EpochRead, - penumbra_shielded_pool::{OutputPlan, SpendPlan}, - penumbra_transaction::{ + penumbra_sdk_asset::STAKING_TOKEN_ASSET_ID, + penumbra_sdk_sct::component::clock::EpochRead, + penumbra_sdk_shielded_pool::{OutputPlan, SpendPlan}, + penumbra_sdk_transaction::{ memo::MemoPlaintext, plan::MemoPlan, TransactionParameters, TransactionPlan, }, }; @@ -280,10 +280,10 @@ async fn app_tracks_uptime_for_validators_only_once_active() -> anyhow::Result<( // Build a transaction that will now undelegate from the validator. let plan = { use { - penumbra_sct::component::clock::EpochRead, - penumbra_shielded_pool::{OutputPlan, SpendPlan}, - penumbra_stake::DelegationToken, - penumbra_transaction::{ + penumbra_sdk_sct::component::clock::EpochRead, + penumbra_sdk_shielded_pool::{OutputPlan, SpendPlan}, + penumbra_sdk_stake::DelegationToken, + penumbra_sdk_transaction::{ memo::MemoPlaintext, plan::MemoPlan, TransactionParameters, TransactionPlan, }, }; diff --git a/crates/core/app/tests/common/ibc_tests/mod.rs b/crates/core/app-tests/tests/common/ibc_tests/mod.rs similarity index 94% rename from crates/core/app/tests/common/ibc_tests/mod.rs rename to crates/core/app-tests/tests/common/ibc_tests/mod.rs index 4c03e8a44c..1cbbe9b781 100644 --- a/crates/core/app/tests/common/ibc_tests/mod.rs +++ b/crates/core/app-tests/tests/common/ibc_tests/mod.rs @@ -3,15 +3,15 @@ use {anyhow::Result, std::time::Duration}; mod relayer; use anyhow::Context as _; use decaf377_rdsa::{SigningKey, SpendAuth, VerificationKey}; -use penumbra_app::{ +use penumbra_sdk_app::{ app::{MAX_BLOCK_TXS_PAYLOAD_BYTES, MAX_EVIDENCE_SIZE_BYTES}, genesis, }; -use penumbra_keys::keys::{SpendKey, SpendKeyBytes}; -use penumbra_mock_consensus::TestNode; -use penumbra_proto::core::component::stake::v1::Validator; -use penumbra_shielded_pool::genesis::Allocation; -use penumbra_stake::{DelegationToken, GovernanceKey, IdentityKey}; +use penumbra_sdk_keys::keys::{SpendKey, SpendKeyBytes}; +use penumbra_sdk_mock_consensus::TestNode; +use penumbra_sdk_proto::core::component::stake::v1::Validator; +use penumbra_sdk_shielded_pool::genesis::Allocation; +use penumbra_sdk_stake::{DelegationToken, GovernanceKey, IdentityKey}; #[allow(unused_imports)] pub use relayer::MockRelayer; @@ -179,7 +179,7 @@ pub fn get_verified_genesis() -> Result { // always empty in genesis json app_hash: tendermint::AppHash::default(), // app_state: genesis_contents.into(), - app_state: serde_json::value::to_value(penumbra_app::genesis::AppState::Content( + app_state: serde_json::value::to_value(penumbra_sdk_app::genesis::AppState::Content( genesis_contents, )) .unwrap(), diff --git a/crates/core/app/tests/common/ibc_tests/node.rs b/crates/core/app-tests/tests/common/ibc_tests/node.rs similarity index 94% rename from crates/core/app/tests/common/ibc_tests/node.rs rename to crates/core/app-tests/tests/common/ibc_tests/node.rs index 971b798bed..b1fdaecced 100644 --- a/crates/core/app/tests/common/ibc_tests/node.rs +++ b/crates/core/app-tests/tests/common/ibc_tests/node.rs @@ -20,15 +20,15 @@ use { consensus_state::ConsensusState, header::Header as TendermintHeader, }, }, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_ibc::{component::ClientStateReadExt as _, IBC_COMMITMENT_PREFIX}, - penumbra_keys::test_keys, - penumbra_mock_client::MockClient, - penumbra_mock_consensus::TestNode, - penumbra_proto::util::tendermint_proxy::v1::{ + penumbra_sdk_ibc::{component::ClientStateReadExt as _, IBC_COMMITMENT_PREFIX}, + penumbra_sdk_keys::test_keys, + penumbra_sdk_mock_client::MockClient, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_proto::util::tendermint_proxy::v1::{ tendermint_proxy_service_client::TendermintProxyServiceClient, GetStatusRequest, }, std::error::Error, @@ -80,7 +80,7 @@ impl TestNodeWithIBC { // Use the correct substores let storage = TempStorage::new_with_penumbra_prefixes().await?; // Instantiate a mock tendermint proxy, which we will connect to the test node. - let proxy = penumbra_mock_tendermint_proxy::TestNodeProxy::new::(); + let proxy = penumbra_sdk_mock_tendermint_proxy::TestNodeProxy::new::(); let node = { let app_state = @@ -112,7 +112,7 @@ impl TestNodeWithIBC { tracing::info!("spawning gRPC..."); // Spawn the node's RPC server. let _rpc_server = { - let make_svc = penumbra_app::rpc::routes( + let make_svc = penumbra_sdk_app::rpc::routes( storage.as_ref(), proxy, false, /*enable_expensive_rpc*/ @@ -193,7 +193,7 @@ impl TestNodeWithIBC { } pub async fn get_latest_height(&mut self) -> Result { - let status: penumbra_proto::util::tendermint_proxy::v1::GetStatusResponse = self + let status: penumbra_sdk_proto::util::tendermint_proxy::v1::GetStatusResponse = self .tendermint_proxy_service_client .get_status(GetStatusRequest {}) .await? @@ -212,7 +212,10 @@ impl TestNodeWithIBC { pub fn create_tendermint_header( &self, trusted_height: Option, - penumbra_proto::util::tendermint_proxy::v1::GetBlockByHeightResponse{block_id: _, block}: penumbra_proto::util::tendermint_proxy::v1::GetBlockByHeightResponse, + penumbra_sdk_proto::util::tendermint_proxy::v1::GetBlockByHeightResponse { + block_id: _, + block, + }: penumbra_sdk_proto::util::tendermint_proxy::v1::GetBlockByHeightResponse, ) -> Result { let pk = self .node diff --git a/crates/core/app/tests/common/ibc_tests/relayer.rs b/crates/core/app-tests/tests/common/ibc_tests/relayer.rs similarity index 99% rename from crates/core/app/tests/common/ibc_tests/relayer.rs rename to crates/core/app-tests/tests/common/ibc_tests/relayer.rs index 49e8307362..1d5f72b1fc 100644 --- a/crates/core/app/tests/common/ibc_tests/relayer.rs +++ b/crates/core/app-tests/tests/common/ibc_tests/relayer.rs @@ -41,17 +41,17 @@ use { timestamp::Timestamp, DomainType as _, }, - penumbra_asset::{asset::Cache, Value}, - penumbra_ibc::{ + penumbra_sdk_asset::{asset::Cache, Value}, + penumbra_sdk_ibc::{ component::{ChannelStateReadExt as _, ConnectionStateReadExt as _}, IbcRelay, IbcToken, IBC_COMMITMENT_PREFIX, IBC_PROOF_SPECS, }, - penumbra_keys::keys::AddressIndex, - penumbra_num::Amount, - penumbra_proto::{util::tendermint_proxy::v1::GetBlockByHeightRequest, DomainType}, - penumbra_shielded_pool::{Ics20Withdrawal, OutputPlan, SpendPlan}, - penumbra_stake::state_key::chain, - penumbra_transaction::{ + penumbra_sdk_keys::keys::AddressIndex, + penumbra_sdk_num::Amount, + penumbra_sdk_proto::{util::tendermint_proxy::v1::GetBlockByHeightRequest, DomainType}, + penumbra_sdk_shielded_pool::{Ics20Withdrawal, OutputPlan, SpendPlan}, + penumbra_sdk_stake::state_key::chain, + penumbra_sdk_transaction::{ memo::MemoPlaintext, plan::MemoPlan, TransactionParameters, TransactionPlan, }, prost::Message as _, @@ -332,7 +332,7 @@ impl MockRelayer { // The latest_height is for chain B latest_height: chain_b_ibc.get_latest_height().await?, // The ICS02 validation is hardcoded to expect 2 proof specs - // (root and substore, see [`penumbra_ibc::component::ics02_validation`]). + // (root and substore, see [`penumbra_sdk_ibc::component::ics02_validation`]). proof_specs: IBC_PROOF_SPECS.to_vec(), upgrade_path: vec!["upgrade".to_string(), "upgradedIBCState".to_string()], allow_update: AllowUpdate { @@ -1625,7 +1625,7 @@ impl MockRelayer { }; let plan = { - let ics20_msg = penumbra_transaction::ActionPlan::IbcAction( + let ics20_msg = penumbra_sdk_transaction::ActionPlan::IbcAction( IbcRelay::RecvPacket(msg_recv_packet), ) .into(); @@ -1745,7 +1745,7 @@ impl MockRelayer { }; let plan = { - let ics20_msg = penumbra_transaction::ActionPlan::IbcAction( + let ics20_msg = penumbra_sdk_transaction::ActionPlan::IbcAction( IbcRelay::Acknowledgement(msg_ack), ) .into(); @@ -1791,7 +1791,7 @@ async fn _build_and_send_update_client( chain_b_ibc: &mut TestNodeWithIBC, ) -> Result { let chain_b_height = chain_b_ibc.get_latest_height().await?; - let chain_b_latest_block: penumbra_proto::util::tendermint_proxy::v1::GetBlockByHeightResponse = + let chain_b_latest_block: penumbra_sdk_proto::util::tendermint_proxy::v1::GetBlockByHeightResponse = chain_b_ibc .tendermint_proxy_service_client .get_block_by_height(GetBlockByHeightRequest { diff --git a/crates/core/app/tests/common/mod.rs b/crates/core/app-tests/tests/common/mod.rs similarity index 79% rename from crates/core/app/tests/common/mod.rs rename to crates/core/app-tests/tests/common/mod.rs index 36179b5cd7..58b1e162ab 100644 --- a/crates/core/app/tests/common/mod.rs +++ b/crates/core/app-tests/tests/common/mod.rs @@ -7,7 +7,9 @@ pub use { temp_storage_ext::TempStorageExt, test_node_builder_ext::BuilderExt, test_node_ext::TestNodeExt, validator_read_ext::ValidatorDataReadExt, }, - penumbra_test_subscriber::{set_tracing_subscriber, set_tracing_subscriber_with_env_filter}, + penumbra_sdk_test_subscriber::{ + set_tracing_subscriber, set_tracing_subscriber_with_env_filter, + }, }; /// Penumbra-specific extensions to the mock consensus builder. @@ -25,7 +27,7 @@ mod test_node_ext; /// Helpful additions for reading validator information. /// -/// See [`ValidatorDataRead`][penumbra_stake::component::validator_handler::ValidatorDataRead], +/// See [`ValidatorDataRead`][penumbra_sdk_stake::component::validator_handler::ValidatorDataRead], /// and [`ValidatorDataReadExt`]. mod validator_read_ext; diff --git a/crates/core/app/tests/common/temp_storage_ext.rs b/crates/core/app-tests/tests/common/temp_storage_ext.rs similarity index 94% rename from crates/core/app/tests/common/temp_storage_ext.rs rename to crates/core/app-tests/tests/common/temp_storage_ext.rs index f1a2496ded..bc93e826d8 100644 --- a/crates/core/app/tests/common/temp_storage_ext.rs +++ b/crates/core/app-tests/tests/common/temp_storage_ext.rs @@ -1,7 +1,7 @@ use { async_trait::async_trait, cnidarium::TempStorage, - penumbra_app::{app::App, genesis::AppState, SUBSTORE_PREFIXES}, + penumbra_sdk_app::{app::App, genesis::AppState, SUBSTORE_PREFIXES}, std::ops::Deref, }; diff --git a/crates/core/app/tests/common/test_node_builder_ext.rs b/crates/core/app-tests/tests/common/test_node_builder_ext.rs similarity index 89% rename from crates/core/app/tests/common/test_node_builder_ext.rs rename to crates/core/app-tests/tests/common/test_node_builder_ext.rs index 93bf7f7fee..f44619f5e2 100644 --- a/crates/core/app/tests/common/test_node_builder_ext.rs +++ b/crates/core/app-tests/tests/common/test_node_builder_ext.rs @@ -1,14 +1,14 @@ use { decaf377_rdsa::VerificationKey, - penumbra_app::genesis::AppState, - penumbra_keys::keys::{SpendKey, SpendKeyBytes}, - penumbra_mock_consensus::builder::Builder, - penumbra_proto::{ + penumbra_sdk_app::genesis::AppState, + penumbra_sdk_keys::keys::{SpendKey, SpendKeyBytes}, + penumbra_sdk_mock_consensus::builder::Builder, + penumbra_sdk_proto::{ core::keys::v1::{GovernanceKey, IdentityKey}, penumbra::core::component::stake::v1::Validator as PenumbraValidator, }, - penumbra_shielded_pool::genesis::Allocation, - penumbra_stake::DelegationToken, + penumbra_sdk_shielded_pool::genesis::Allocation, + penumbra_sdk_stake::DelegationToken, rand::Rng, rand_core::OsRng, tracing::trace, @@ -40,7 +40,7 @@ impl BuilderExt for Builder { // Generate a penumbra validator with this consensus key, and a corresponding // allocation of delegation tokens. - let (validator, allocation) = generate_penumbra_validator(consensus_vk, seed); + let (validator, allocation) = generate_penumbra_sdk_validator(consensus_vk, seed); // Add the validator to the staking component's genesis content. trace!(?validator, "adding validator to staking genesis content"); @@ -68,7 +68,7 @@ impl BuilderExt for Builder { } /// Generates a [`Validator`][PenumbraValidator] given a consensus verification key. -fn generate_penumbra_validator( +fn generate_penumbra_sdk_validator( consensus_key: &ed25519_consensus::VerificationKey, seed: Option, ) -> (PenumbraValidator, Allocation) { @@ -100,7 +100,7 @@ fn generate_penumbra_validator( .incoming() .payment_address(0u32.into()); - let ik = penumbra_stake::IdentityKey(validator_id_vk.into()); + let ik = penumbra_sdk_stake::IdentityKey(validator_id_vk.into()); let delegation_denom = DelegationToken::from(ik).denom(); let allocation = Allocation { diff --git a/crates/core/app/tests/common/test_node_ext.rs b/crates/core/app-tests/tests/common/test_node_ext.rs similarity index 80% rename from crates/core/app/tests/common/test_node_ext.rs rename to crates/core/app-tests/tests/common/test_node_ext.rs index 241c3c25f6..edeb3d855e 100644 --- a/crates/core/app/tests/common/test_node_ext.rs +++ b/crates/core/app-tests/tests/common/test_node_ext.rs @@ -2,8 +2,8 @@ #![allow(dead_code)] use { - async_trait::async_trait, cnidarium::TempStorage, penumbra_mock_consensus::TestNode, - penumbra_sct::component::clock::EpochRead as _, tap::Tap, + async_trait::async_trait, cnidarium::TempStorage, penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_sct::component::clock::EpochRead as _, tap::Tap, }; #[async_trait] @@ -11,7 +11,7 @@ pub trait TestNodeExt: Sized { async fn fast_forward_to_next_epoch( &mut self, storage: &TempStorage, - ) -> anyhow::Result; + ) -> anyhow::Result; } #[async_trait] @@ -30,7 +30,7 @@ where async fn fast_forward_to_next_epoch( &mut self, storage: &TempStorage, - ) -> Result { + ) -> Result { let get_epoch = || async { storage.latest_snapshot().get_current_epoch().await }; let start = get_epoch() .await? diff --git a/crates/core/app/tests/common/validator_read_ext.rs b/crates/core/app-tests/tests/common/validator_read_ext.rs similarity index 96% rename from crates/core/app/tests/common/validator_read_ext.rs rename to crates/core/app-tests/tests/common/validator_read_ext.rs index a88b4836ac..0379e70b4e 100644 --- a/crates/core/app/tests/common/validator_read_ext.rs +++ b/crates/core/app-tests/tests/common/validator_read_ext.rs @@ -4,8 +4,8 @@ use { async_trait::async_trait, futures::TryStreamExt, - penumbra_proto::StateReadProto, - penumbra_stake::{ + penumbra_sdk_proto::StateReadProto, + penumbra_sdk_stake::{ component::validator_handler::ValidatorDataRead, state_key, validator::Validator, IdentityKey, }, diff --git a/crates/core/app/tests/ics23_transfer.rs b/crates/core/app-tests/tests/ics23_transfer.rs similarity index 98% rename from crates/core/app/tests/ics23_transfer.rs rename to crates/core/app-tests/tests/ics23_transfer.rs index 14dc459db2..a4705b9884 100644 --- a/crates/core/app/tests/ics23_transfer.rs +++ b/crates/core/app-tests/tests/ics23_transfer.rs @@ -2,9 +2,9 @@ use { anyhow::anyhow, common::ibc_tests::{MockRelayer, TestNodeWithIBC, ValidatorKeys}, once_cell::sync::Lazy, - penumbra_asset::{asset::Cache, Value}, - penumbra_ibc::IbcToken, - penumbra_num::Amount, + penumbra_sdk_asset::{asset::Cache, Value}, + penumbra_sdk_ibc::IbcToken, + penumbra_sdk_num::Amount, std::time::Duration, tap::Tap as _, }; diff --git a/crates/core/app/tests/mock_consensus_block_proving.rs b/crates/core/app-tests/tests/mock_consensus_block_proving.rs similarity index 94% rename from crates/core/app/tests/mock_consensus_block_proving.rs rename to crates/core/app-tests/tests/mock_consensus_block_proving.rs index 6966ba96f3..d6e7ef9e5c 100644 --- a/crates/core/app/tests/mock_consensus_block_proving.rs +++ b/crates/core/app-tests/tests/mock_consensus_block_proving.rs @@ -17,22 +17,22 @@ use { path::ClientStatePath, DomainType as _, }, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_ibc::{IbcRelay, MerklePrefixExt as _, IBC_COMMITMENT_PREFIX, IBC_PROOF_SPECS}, - penumbra_keys::test_keys, - penumbra_mock_client::MockClient, - penumbra_mock_consensus::TestNode, - penumbra_proto::{ + penumbra_sdk_ibc::{IbcRelay, MerklePrefixExt as _, IBC_COMMITMENT_PREFIX, IBC_PROOF_SPECS}, + penumbra_sdk_keys::test_keys, + penumbra_sdk_mock_client::MockClient, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_proto::{ util::tendermint_proxy::v1::{ tendermint_proxy_service_client::TendermintProxyServiceClient, GetBlockByHeightRequest, }, DomainType, Message as _, }, - penumbra_test_subscriber::set_tracing_subscriber, - penumbra_transaction::{TransactionParameters, TransactionPlan}, + penumbra_sdk_test_subscriber::set_tracing_subscriber, + penumbra_sdk_transaction::{TransactionParameters, TransactionPlan}, std::{str::FromStr as _, time::Duration}, tap::{Tap as _, TapFallible as _}, tendermint::Hash, @@ -51,7 +51,7 @@ async fn verify_storage_proof_simple() -> anyhow::Result<()> { let start_time = tendermint::Time::parse_from_rfc3339("2022-02-11T17:30:50.425417198Z")?; - let proxy = penumbra_mock_tendermint_proxy::TestNodeProxy::new::(); + let proxy = penumbra_sdk_mock_tendermint_proxy::TestNodeProxy::new::(); let mut node = { let app_state = AppState::Content( genesis::Content::default().with_chain_id(TestNode::<()>::CHAIN_ID.to_string()), @@ -190,7 +190,7 @@ async fn verify_storage_proof_simple() -> anyhow::Result<()> { // Spawn the node's RPC server. let _rpc_server = { let make_svc = - penumbra_app::rpc::routes(&storage, proxy, false /*enable_expensive_rpc*/)? + penumbra_sdk_app::rpc::routes(&storage, proxy, false /*enable_expensive_rpc*/)? .into_axum_router() .layer(tower_http::cors::CorsLayer::permissive()) .into_make_service() @@ -284,7 +284,7 @@ async fn verify_storage_proof_simple() -> anyhow::Result<()> { .revision_height ); - let proof_block: penumbra_proto::util::tendermint_proxy::v1::GetBlockByHeightResponse = + let proof_block: penumbra_sdk_proto::util::tendermint_proxy::v1::GetBlockByHeightResponse = tendermint_proxy_service_client .get_block_by_height(GetBlockByHeightRequest { height: ibc_client_state_response @@ -306,7 +306,7 @@ async fn verify_storage_proof_simple() -> anyhow::Result<()> { // We should be able to get the block from the proof_height associated with // the proof and use the app_hash as the jmt root and succeed in proving: - let proof_block: penumbra_proto::util::tendermint_proxy::v1::GetBlockByHeightResponse = + let proof_block: penumbra_sdk_proto::util::tendermint_proxy::v1::GetBlockByHeightResponse = tendermint_proxy_service_client .get_block_by_height(GetBlockByHeightRequest { height: ibc_client_state_response diff --git a/crates/core/app/tests/mock_consensus_can_define_a_genesis_validator.rs b/crates/core/app-tests/tests/mock_consensus_can_define_a_genesis_validator.rs similarity index 90% rename from crates/core/app/tests/mock_consensus_can_define_a_genesis_validator.rs rename to crates/core/app-tests/tests/mock_consensus_can_define_a_genesis_validator.rs index a0077ae8f8..7429e93438 100644 --- a/crates/core/app/tests/mock_consensus_can_define_a_genesis_validator.rs +++ b/crates/core/app-tests/tests/mock_consensus_can_define_a_genesis_validator.rs @@ -3,12 +3,12 @@ use { anyhow::anyhow, cnidarium::TempStorage, common::TempStorageExt as _, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_mock_consensus::TestNode, - penumbra_stake::component::validator_handler::ValidatorDataRead as _, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_stake::component::validator_handler::ValidatorDataRead as _, tap::{Tap, TapFallible}, tracing::info, }; @@ -48,7 +48,7 @@ async fn mock_consensus_can_define_a_genesis_validator() -> anyhow::Result<()> { .ok_or_else(|| anyhow!("could not find validator status"))?; assert_eq!( status, - penumbra_stake::validator::State::Active, + penumbra_sdk_stake::validator::State::Active, "validator should be active" ); } diff --git a/crates/core/app/tests/mock_consensus_can_send_a_sequence_of_empty_blocks.rs b/crates/core/app-tests/tests/mock_consensus_can_send_a_sequence_of_empty_blocks.rs similarity index 92% rename from crates/core/app/tests/mock_consensus_can_send_a_sequence_of_empty_blocks.rs rename to crates/core/app-tests/tests/mock_consensus_can_send_a_sequence_of_empty_blocks.rs index b0461b3d69..ac55d3bd3e 100644 --- a/crates/core/app/tests/mock_consensus_can_send_a_sequence_of_empty_blocks.rs +++ b/crates/core/app-tests/tests/mock_consensus_can_send_a_sequence_of_empty_blocks.rs @@ -2,12 +2,12 @@ use { self::common::BuilderExt, cnidarium::TempStorage, common::TempStorageExt as _, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_mock_consensus::TestNode, - penumbra_sct::component::clock::EpochRead as _, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_sct::component::clock::EpochRead as _, tap::TapFallible, }; diff --git a/crates/core/app/tests/spend.rs b/crates/core/app-tests/tests/spend.rs similarity index 95% rename from crates/core/app/tests/spend.rs rename to crates/core/app-tests/tests/spend.rs index 94c9f63caf..bbdba236a6 100644 --- a/crates/core/app/tests/spend.rs +++ b/crates/core/app-tests/tests/spend.rs @@ -5,19 +5,19 @@ use cnidarium::{ArcStateDeltaExt, StateDelta, TempStorage}; use cnidarium_component::{ActionHandler as _, Component}; use decaf377::{Fq, Fr}; use decaf377_rdsa::{SpendAuth, VerificationKey}; -use penumbra_asset::Value; -use penumbra_compact_block::component::CompactBlockManager; -use penumbra_keys::{keys::NullifierKey, test_keys}; -use penumbra_mock_client::MockClient; -use penumbra_num::Amount; -use penumbra_sct::{ +use penumbra_sdk_asset::Value; +use penumbra_sdk_compact_block::component::CompactBlockManager; +use penumbra_sdk_keys::{keys::NullifierKey, test_keys}; +use penumbra_sdk_mock_client::MockClient; +use penumbra_sdk_num::Amount; +use penumbra_sdk_sct::{ component::{clock::EpochManager, source::SourceContext}, epoch::Epoch, }; -use penumbra_shielded_pool::{ +use penumbra_sdk_shielded_pool::{ component::ShieldedPool, Note, SpendPlan, SpendProof, SpendProofPrivate, SpendProofPublic, }; -use penumbra_txhash::{EffectHash, TransactionContext}; +use penumbra_sdk_txhash::{EffectHash, TransactionContext}; use rand_core::{OsRng, SeedableRng}; use std::{ops::Deref, sync::Arc}; use tendermint::abci; @@ -178,7 +178,7 @@ async fn invalid_dummy_spend() { let bad_proof = SpendProof::prove( Fq::rand(&mut OsRng), Fq::rand(&mut OsRng), - &penumbra_proof_params::SPEND_PROOF_PROVING_KEY, + &penumbra_sdk_proof_params::SPEND_PROOF_PROVING_KEY, public, private, ) @@ -354,7 +354,7 @@ async fn spend_duplicate_nullifier_same_transaction() { asset_id: note.asset_id(), }; let output_plan = - penumbra_shielded_pool::OutputPlan::new(&mut rng, value, *test_keys::ADDRESS_1); + penumbra_sdk_shielded_pool::OutputPlan::new(&mut rng, value, *test_keys::ADDRESS_1); let fvk = &test_keys::FULL_VIEWING_KEY; let memo_key = PayloadKey::random_key(&mut rng); let output = output_plan.output(fvk.outgoing(), &memo_key); @@ -363,9 +363,9 @@ async fn spend_duplicate_nullifier_same_transaction() { // 5. Construct a transaction with both spends that use the same note/nullifier. let transaction_body = TransactionBody { actions: vec![ - penumbra_transaction::Action::Spend(spend_1), - penumbra_transaction::Action::Spend(spend_2), - penumbra_transaction::Action::Output(output), + penumbra_sdk_transaction::Action::Spend(spend_1), + penumbra_sdk_transaction::Action::Spend(spend_2), + penumbra_sdk_transaction::Action::Output(output), ], transaction_parameters: TransactionParameters::default(), detection_data: None, diff --git a/crates/core/app/tests/swap_and_swap_claim.rs b/crates/core/app-tests/tests/swap_and_swap_claim.rs similarity index 96% rename from crates/core/app/tests/swap_and_swap_claim.rs rename to crates/core/app-tests/tests/swap_and_swap_claim.rs index 6cf1d8de45..6d24d949bb 100644 --- a/crates/core/app/tests/swap_and_swap_claim.rs +++ b/crates/core/app-tests/tests/swap_and_swap_claim.rs @@ -4,24 +4,24 @@ use self::common::TempStorageExt; use cnidarium::{ArcStateDeltaExt, StateDelta, TempStorage}; use cnidarium_component::{ActionHandler, Component}; use decaf377::Fq; -use penumbra_asset::asset; -use penumbra_compact_block::component::CompactBlockManager as _; -use penumbra_dex::{ +use penumbra_sdk_asset::asset; +use penumbra_sdk_compact_block::component::CompactBlockManager as _; +use penumbra_sdk_dex::{ component::{Dex, StateReadExt as _}, swap::{SwapPlaintext, SwapPlan}, swap_claim::SwapClaimPlan, TradingPair, }; -use penumbra_fee::Fee; -use penumbra_keys::{test_keys, Address}; -use penumbra_mock_client::MockClient; -use penumbra_num::Amount; -use penumbra_sct::{ +use penumbra_sdk_fee::Fee; +use penumbra_sdk_keys::{test_keys, Address}; +use penumbra_sdk_mock_client::MockClient; +use penumbra_sdk_num::Amount; +use penumbra_sdk_sct::{ component::{clock::EpochManager, source::SourceContext as _, StateReadExt as _}, epoch::Epoch, }; -use penumbra_shielded_pool::component::ShieldedPool; -use penumbra_transaction::Transaction; +use penumbra_sdk_shielded_pool::component::ShieldedPool; +use penumbra_sdk_transaction::Transaction; use rand_core::SeedableRng; use std::{ops::Deref, sync::Arc}; use tendermint::abci; diff --git a/crates/core/app/tests/view_server_can_be_served_on_localhost.rs b/crates/core/app-tests/tests/view_server_can_be_served_on_localhost.rs similarity index 93% rename from crates/core/app/tests/view_server_can_be_served_on_localhost.rs rename to crates/core/app-tests/tests/view_server_can_be_served_on_localhost.rs index 4603aadf1c..501f3bd2d8 100644 --- a/crates/core/app/tests/view_server_can_be_served_on_localhost.rs +++ b/crates/core/app-tests/tests/view_server_can_be_served_on_localhost.rs @@ -3,22 +3,22 @@ use { anyhow::Context, cnidarium::TempStorage, common::TempStorageExt as _, - penumbra_app::{ + penumbra_sdk_app::{ genesis::{self, AppState}, server::consensus::Consensus, }, - penumbra_asset::STAKING_TOKEN_ASSET_ID, - penumbra_keys::{keys::AddressIndex, test_keys}, - penumbra_mock_client::MockClient, - penumbra_mock_consensus::TestNode, - penumbra_proto::{ + penumbra_sdk_asset::STAKING_TOKEN_ASSET_ID, + penumbra_sdk_keys::{keys::AddressIndex, test_keys}, + penumbra_sdk_mock_client::MockClient, + penumbra_sdk_mock_consensus::TestNode, + penumbra_sdk_proto::{ view::v1::{ view_service_client::ViewServiceClient, view_service_server::ViewServiceServer, GasPricesRequest, StatusRequest, StatusResponse, }, DomainType, }, - penumbra_view::{Planner, SpendableNoteRecord, ViewClient}, + penumbra_sdk_view::{Planner, SpendableNoteRecord, ViewClient}, std::ops::Deref, tap::{Tap, TapFallible}, }; @@ -34,7 +34,7 @@ async fn view_server_can_be_served_on_localhost() -> anyhow::Result<()> { let storage = TempStorage::new_with_penumbra_prefixes().await?; // Instantiate a mock tendermint proxy, which we will connect to the test node. - let proxy = penumbra_mock_tendermint_proxy::TestNodeProxy::new::(); + let proxy = penumbra_sdk_mock_tendermint_proxy::TestNodeProxy::new::(); // Start the test node. let mut test_node = { @@ -71,7 +71,7 @@ async fn view_server_can_be_served_on_localhost() -> anyhow::Result<()> { // Spawn the server-side view server. { - let make_svc = penumbra_app::rpc::routes( + let make_svc = penumbra_sdk_app::rpc::routes( storage.as_ref(), proxy, false, /*enable_expensive_rpc*/ @@ -91,7 +91,7 @@ async fn view_server_can_be_served_on_localhost() -> anyhow::Result<()> { // Spawn the client-side view server... let view_server = { - penumbra_view::ViewServer::load_or_initialize( + penumbra_sdk_view::ViewServer::load_or_initialize( None::<&camino::Utf8Path>, None::<&camino::Utf8Path>, &*test_keys::FULL_VIEWING_KEY, @@ -167,7 +167,7 @@ async fn view_server_can_be_served_on_localhost() -> anyhow::Result<()> { // Check that the nullifiers were spent as a result of the transaction: for nf in tx.spent_nullifiers() { - use penumbra_sct::component::tree::SctRead as _; + use penumbra_sdk_sct::component::tree::SctRead as _; assert!(pre_tx_snapshot.spend_info(nf).await?.is_none()); assert!(post_tx_snapshot.spend_info(nf).await?.is_some()); } diff --git a/crates/core/app/Cargo.toml b/crates/core/app/Cargo.toml index 002ec2f651..775eb22f8b 100644 --- a/crates/core/app/Cargo.toml +++ b/crates/core/app/Cargo.toml @@ -1,31 +1,32 @@ [package] -name = "penumbra-app" +name = "penumbra-sdk-app" version = { workspace = true } authors = { workspace = true } edition = { workspace = true} repository = { workspace = true } homepage = { workspace = true } license = { workspace = true } -publish = false +description = "A stack of components implementing the Penumbra protocol" +publish = true [features] component = [ "dep:cnidarium", "dep:cnidarium-component", - "penumbra-proto/cnidarium", - "penumbra-auction/component", - "penumbra-community-pool/component", - "penumbra-compact-block/component", - "penumbra-dex/component", - "penumbra-distributions/component", - "penumbra-fee/component", - "penumbra-funding/component", - "penumbra-governance/component", - "penumbra-ibc/component", - "penumbra-ibc/rpc", - "penumbra-sct/component", - "penumbra-shielded-pool/component", - "penumbra-stake/component", + "penumbra-sdk-proto/cnidarium", + "penumbra-sdk-auction/component", + "penumbra-sdk-community-pool/component", + "penumbra-sdk-compact-block/component", + "penumbra-sdk-dex/component", + "penumbra-sdk-distributions/component", + "penumbra-sdk-fee/component", + "penumbra-sdk-funding/component", + "penumbra-sdk-governance/component", + "penumbra-sdk-ibc/component", + "penumbra-sdk-ibc/rpc", + "penumbra-sdk-sct/component", + "penumbra-sdk-shielded-pool/component", + "penumbra-sdk-stake/component", "dep:tonic", "dep:tonic-reflection", "dep:tonic-web" @@ -57,28 +58,28 @@ jmt = { workspace = true } metrics = { workspace = true } once_cell = { workspace = true } parking_lot = { workspace = true } -penumbra-asset = { workspace = true, default-features = true } -penumbra-auction = { workspace = true, default-features = false } -penumbra-community-pool = { workspace = true, default-features = false } -penumbra-compact-block = { workspace = true, default-features = false } -penumbra-dex = { workspace = true, default-features = false } -penumbra-distributions = { workspace = true, default-features = false } -penumbra-fee = { workspace = true, default-features = false } -penumbra-funding = { workspace = true, default-features = false } -penumbra-governance = { workspace = true, default-features = false } -penumbra-ibc = { workspace = true, default-features = false } -penumbra-keys = { workspace = true, default-features = true } -penumbra-num = { workspace = true, default-features = true } -penumbra-proof-params = { workspace = true, default-features = false } -penumbra-proto = { workspace = true, default-features = true } -penumbra-sct = { workspace = true, default-features = false } -penumbra-shielded-pool = { workspace = true, default-features = false } -penumbra-stake = { workspace = true, default-features = false } -penumbra-tct = { workspace = true, default-features = true } -penumbra-test-subscriber = { workspace = true } -penumbra-tower-trace = { path = "../../util/tower-trace" } -penumbra-transaction = { workspace = true, features = ["parallel"], default-features = true } -penumbra-txhash = { workspace = true, default-features = true } +penumbra-sdk-asset = { workspace = true, default-features = true } +penumbra-sdk-auction = { workspace = true, default-features = false } +penumbra-sdk-community-pool = { workspace = true, default-features = false } +penumbra-sdk-compact-block = { workspace = true, default-features = false } +penumbra-sdk-dex = { workspace = true, default-features = false } +penumbra-sdk-distributions = { workspace = true, default-features = false } +penumbra-sdk-fee = { workspace = true, default-features = false } +penumbra-sdk-funding = { workspace = true, default-features = false } +penumbra-sdk-governance = { workspace = true, default-features = false } +penumbra-sdk-ibc = { workspace = true, default-features = false } +penumbra-sdk-keys = { workspace = true, default-features = true } +penumbra-sdk-num = { workspace = true, default-features = true } +penumbra-sdk-proof-params = { workspace = true, default-features = false } +penumbra-sdk-proto = { workspace = true, default-features = true } +penumbra-sdk-sct = { workspace = true, default-features = false } +penumbra-sdk-shielded-pool = { workspace = true, default-features = false } +penumbra-sdk-stake = { workspace = true, default-features = false } +penumbra-sdk-tct = { workspace = true, default-features = true } +penumbra-sdk-test-subscriber = { workspace = true } +penumbra-sdk-tower-trace = { version = "0.82.0-alpha.0", path = "../../util/tower-trace" } +penumbra-sdk-transaction = { workspace = true, features = ["parallel"], default-features = true } +penumbra-sdk-txhash = { workspace = true, default-features = true } prost = { workspace = true } rand_chacha = { workspace = true } regex = { workspace = true } @@ -108,13 +109,11 @@ axum-server = { workspace = true } camino = { workspace = true } decaf377-fmd = { workspace = true, default-features = true } ed25519-consensus = { workspace = true } -penumbra-mock-client = { workspace = true } -penumbra-mock-consensus = { workspace = true } -penumbra-proto = { workspace = true, features = ["box-grpc"] } -penumbra-test-subscriber = { workspace = true } -penumbra-mock-tendermint-proxy = { workspace = true } -penumbra-view = { workspace = true } -penumbra-wallet = { workspace = true } +penumbra-sdk-mock-client = { workspace = true } +penumbra-sdk-mock-consensus = { workspace = true } +penumbra-sdk-proto = { workspace = true, features = ["box-grpc"] } +penumbra-sdk-test-subscriber = { workspace = true } +penumbra-sdk-mock-tendermint-proxy = { workspace = true } rand = { workspace = true } rand_chacha = { workspace = true } rand_core = { workspace = true } @@ -124,11 +123,3 @@ tendermint-config = { workspace = true } tower-http = { workspace = true, features = ["cors"] } tracing-subscriber = { workspace = true } url = { workspace = true } - -# Enable the feature flags to get proving keys when running tests. -[dev-dependencies.penumbra-proof-params] -workspace = true -features = [ - "bundled-proving-keys", - "download-proving-keys", -] diff --git a/crates/core/app/src/action_handler/actions.rs b/crates/core/app/src/action_handler/actions.rs index 52b3465772..402932b12f 100644 --- a/crates/core/app/src/action_handler/actions.rs +++ b/crates/core/app/src/action_handler/actions.rs @@ -3,9 +3,9 @@ use std::sync::Arc; use anyhow::Result; use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; -use penumbra_shielded_pool::component::Ics20Transfer; -use penumbra_transaction::Action; -use penumbra_txhash::TransactionContext; +use penumbra_sdk_shielded_pool::component::Ics20Transfer; +use penumbra_sdk_transaction::Action; +use penumbra_sdk_txhash::TransactionContext; mod submit; diff --git a/crates/core/app/src/action_handler/actions/submit.rs b/crates/core/app/src/action_handler/actions/submit.rs index 3d39681999..f6abb3b636 100644 --- a/crates/core/app/src/action_handler/actions/submit.rs +++ b/crates/core/app/src/action_handler/actions/submit.rs @@ -8,22 +8,22 @@ use ibc_types::core::client::ClientId; use once_cell::sync::Lazy; use cnidarium::StateWrite; -use penumbra_asset::STAKING_TOKEN_DENOM; -use penumbra_community_pool::component::StateReadExt as _; -use penumbra_governance::{ +use penumbra_sdk_asset::STAKING_TOKEN_DENOM; +use penumbra_sdk_community_pool::component::StateReadExt as _; +use penumbra_sdk_governance::{ component::{StateReadExt as _, StateWriteExt as _}, event, proposal::{Proposal, ProposalPayload}, proposal_state::State as ProposalState, ProposalNft, ProposalSubmit, VotingReceiptToken, }; -use penumbra_ibc::component::ClientStateReadExt; -use penumbra_keys::keys::{FullViewingKey, NullifierKey}; -use penumbra_proto::{DomainType, StateWriteProto as _}; -use penumbra_sct::component::clock::EpochRead; -use penumbra_sct::component::tree::SctRead; -use penumbra_shielded_pool::component::AssetRegistry; -use penumbra_transaction::{AuthorizationData, Transaction, TransactionPlan, WitnessData}; +use penumbra_sdk_ibc::component::ClientStateReadExt; +use penumbra_sdk_keys::keys::{FullViewingKey, NullifierKey}; +use penumbra_sdk_proto::{DomainType, StateWriteProto as _}; +use penumbra_sdk_sct::component::clock::EpochRead; +use penumbra_sdk_sct::component::tree::SctRead; +use penumbra_sdk_shielded_pool::component::AssetRegistry; +use penumbra_sdk_transaction::{AuthorizationData, Transaction, TransactionPlan, WitnessData}; use crate::app::StateReadExt; use crate::community_pool_ext::CommunityPoolStateWriteExt; @@ -67,7 +67,7 @@ impl AppActionHandler for ProposalSubmit { ); } - use penumbra_governance::ProposalPayload::*; + use penumbra_sdk_governance::ProposalPayload::*; match payload { Signaling { commit: _ } => { /* all signaling proposals are valid */ } Emergency { halt_chain: _ } => { /* all emergency proposals are valid */ } @@ -75,7 +75,7 @@ impl AppActionHandler for ProposalSubmit { CommunityPoolSpend { transaction_plan } => { // Check to make sure that the transaction plan contains only valid actions for the // Community Pool (none of them should require proving to build): - use penumbra_transaction::plan::ActionPlan::*; + use penumbra_sdk_transaction::plan::ActionPlan::*; let parsed_transaction_plan = TransactionPlan::decode(&transaction_plan[..]) .context("transaction plan was malformed")?; @@ -349,7 +349,7 @@ async fn build_community_pool_transaction( transaction_plan.build( &COMMUNITY_POOL_FULL_VIEWING_KEY, &WitnessData { - anchor: penumbra_tct::Tree::new().root(), + anchor: penumbra_sdk_tct::Tree::new().root(), state_commitment_proofs: Default::default(), }, &AuthorizationData { diff --git a/crates/core/app/src/action_handler/transaction.rs b/crates/core/app/src/action_handler/transaction.rs index 3806c86b12..0a4b6a6cb1 100644 --- a/crates/core/app/src/action_handler/transaction.rs +++ b/crates/core/app/src/action_handler/transaction.rs @@ -3,10 +3,10 @@ use std::sync::Arc; use anyhow::Result; use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; -use penumbra_fee::component::FeePay as _; -use penumbra_sct::{component::source::SourceContext, CommitmentSource}; -use penumbra_shielded_pool::component::ClueManager; -use penumbra_transaction::{gas::GasCost as _, Transaction}; +use penumbra_sdk_fee::component::FeePay as _; +use penumbra_sdk_sct::{component::source::SourceContext, CommitmentSource}; +use penumbra_sdk_shielded_pool::component::ClueManager; +use penumbra_sdk_transaction::{gas::GasCost as _, Transaction}; use tokio::task::JoinSet; use tracing::{instrument, Instrument}; @@ -150,12 +150,12 @@ mod tests { use std::ops::Deref; use anyhow::Result; - use penumbra_asset::{Value, STAKING_TOKEN_ASSET_ID}; - use penumbra_fee::Fee; - use penumbra_keys::test_keys; - use penumbra_shielded_pool::{Note, OutputPlan, SpendPlan}; - use penumbra_tct as tct; - use penumbra_transaction::{ + use penumbra_sdk_asset::{Value, STAKING_TOKEN_ASSET_ID}; + use penumbra_sdk_fee::Fee; + use penumbra_sdk_keys::test_keys; + use penumbra_sdk_shielded_pool::{Note, OutputPlan, SpendPlan}; + use penumbra_sdk_tct as tct; + use penumbra_sdk_transaction::{ plan::{CluePlan, DetectionDataPlan, TransactionPlan}, TransactionParameters, WitnessData, }; diff --git a/crates/core/app/src/action_handler/transaction/stateful.rs b/crates/core/app/src/action_handler/transaction/stateful.rs index 6aac2c9d50..27036bc619 100644 --- a/crates/core/app/src/action_handler/transaction/stateful.rs +++ b/crates/core/app/src/action_handler/transaction/stateful.rs @@ -1,10 +1,10 @@ use anyhow::{ensure, Result}; use cnidarium::StateRead; -use penumbra_sct::component::clock::EpochRead; -use penumbra_sct::component::tree::VerificationExt; -use penumbra_shielded_pool::component::StateReadExt as _; -use penumbra_shielded_pool::fmd; -use penumbra_transaction::{Transaction, TransactionParameters}; +use penumbra_sdk_sct::component::clock::EpochRead; +use penumbra_sdk_sct::component::tree::VerificationExt; +use penumbra_sdk_shielded_pool::component::StateReadExt as _; +use penumbra_sdk_shielded_pool::fmd; +use penumbra_sdk_transaction::{Transaction, TransactionParameters}; use crate::app::StateReadExt; diff --git a/crates/core/app/src/action_handler/transaction/stateless.rs b/crates/core/app/src/action_handler/transaction/stateless.rs index 6ba541753d..5ce6e3402c 100644 --- a/crates/core/app/src/action_handler/transaction/stateless.rs +++ b/crates/core/app/src/action_handler/transaction/stateless.rs @@ -1,6 +1,6 @@ use anyhow::{Context, Result}; -use penumbra_transaction::Transaction; -use penumbra_txhash::AuthorizingData; +use penumbra_sdk_transaction::Transaction; +use penumbra_sdk_txhash::AuthorizingData; #[tracing::instrument(skip(tx))] pub(super) fn valid_binding_signature(tx: &Transaction) -> Result<()> { diff --git a/crates/core/app/src/app/mod.rs b/crates/core/app/src/app/mod.rs index cec052d4ea..db113e46e2 100644 --- a/crates/core/app/src/app/mod.rs +++ b/crates/core/app/src/app/mod.rs @@ -8,30 +8,30 @@ use cnidarium::{ArcStateDeltaExt, Snapshot, StateDelta, StateRead, StateWrite, S use cnidarium_component::Component; use ibc_types::core::connection::ChainId; use jmt::RootHash; -use penumbra_auction::component::{Auction, StateReadExt as _, StateWriteExt as _}; -use penumbra_community_pool::component::{CommunityPool, StateWriteExt as _}; -use penumbra_community_pool::StateReadExt as _; -use penumbra_compact_block::component::CompactBlockManager; -use penumbra_dex::component::StateReadExt as _; -use penumbra_dex::component::{Dex, StateWriteExt as _}; -use penumbra_distributions::component::{Distributions, StateReadExt as _, StateWriteExt as _}; -use penumbra_fee::component::{FeeComponent, StateReadExt as _, StateWriteExt as _}; -use penumbra_funding::component::Funding; -use penumbra_funding::component::{StateReadExt as _, StateWriteExt as _}; -use penumbra_governance::component::{Governance, StateReadExt as _, StateWriteExt as _}; -use penumbra_ibc::component::{Ibc, StateWriteExt as _}; -use penumbra_ibc::StateReadExt as _; -use penumbra_proto::core::app::v1::TransactionsByHeightResponse; -use penumbra_proto::DomainType; -use penumbra_sct::component::clock::EpochRead; -use penumbra_sct::component::sct::Sct; -use penumbra_sct::component::{StateReadExt as _, StateWriteExt as _}; -use penumbra_sct::epoch::Epoch; -use penumbra_shielded_pool::component::{ShieldedPool, StateReadExt as _, StateWriteExt as _}; -use penumbra_stake::component::{ +use penumbra_sdk_auction::component::{Auction, StateReadExt as _, StateWriteExt as _}; +use penumbra_sdk_community_pool::component::{CommunityPool, StateWriteExt as _}; +use penumbra_sdk_community_pool::StateReadExt as _; +use penumbra_sdk_compact_block::component::CompactBlockManager; +use penumbra_sdk_dex::component::StateReadExt as _; +use penumbra_sdk_dex::component::{Dex, StateWriteExt as _}; +use penumbra_sdk_distributions::component::{Distributions, StateReadExt as _, StateWriteExt as _}; +use penumbra_sdk_fee::component::{FeeComponent, StateReadExt as _, StateWriteExt as _}; +use penumbra_sdk_funding::component::Funding; +use penumbra_sdk_funding::component::{StateReadExt as _, StateWriteExt as _}; +use penumbra_sdk_governance::component::{Governance, StateReadExt as _, StateWriteExt as _}; +use penumbra_sdk_ibc::component::{Ibc, StateWriteExt as _}; +use penumbra_sdk_ibc::StateReadExt as _; +use penumbra_sdk_proto::core::app::v1::TransactionsByHeightResponse; +use penumbra_sdk_proto::DomainType; +use penumbra_sdk_sct::component::clock::EpochRead; +use penumbra_sdk_sct::component::sct::Sct; +use penumbra_sdk_sct::component::{StateReadExt as _, StateWriteExt as _}; +use penumbra_sdk_sct::epoch::Epoch; +use penumbra_sdk_shielded_pool::component::{ShieldedPool, StateReadExt as _, StateWriteExt as _}; +use penumbra_sdk_stake::component::{ stake::ConsensusUpdateRead, Staking, StateReadExt as _, StateWriteExt as _, }; -use penumbra_transaction::Transaction; +use penumbra_sdk_transaction::Transaction; use prost::Message as _; use tendermint::abci::{self, Event}; @@ -555,7 +555,7 @@ impl App { .expect("must be able to finish compact block"); // set the epoch for the next block - penumbra_sct::component::clock::EpochManager::put_epoch_by_height( + penumbra_sdk_sct::component::clock::EpochManager::put_epoch_by_height( &mut state_tx, current_height + 1, Epoch { @@ -567,7 +567,7 @@ impl App { self.apply(state_tx) } else { // set the epoch for the next block - penumbra_sct::component::clock::EpochManager::put_epoch_by_height( + penumbra_sdk_sct::component::clock::EpochManager::put_epoch_by_height( &mut state_tx, current_height + 1, current_epoch, @@ -685,7 +685,7 @@ pub trait StateReadExt: StateRead { /// Returns the set of app parameters async fn get_app_params(&self) -> Result { let chain_id = self.get_chain_id().await?; - let community_pool_params: penumbra_community_pool::params::CommunityPoolParameters = + let community_pool_params: penumbra_sdk_community_pool::params::CommunityPoolParameters = self.get_community_pool_params().await?; let distributions_params = self.get_distributions_params().await?; let ibc_params = self.get_ibc_params().await?; @@ -738,13 +738,13 @@ pub trait StateReadExt: StateRead { impl< T: StateRead - + penumbra_stake::StateReadExt - + penumbra_governance::component::StateReadExt - + penumbra_fee::component::StateReadExt - + penumbra_community_pool::component::StateReadExt - + penumbra_sct::component::clock::EpochRead - + penumbra_ibc::component::StateReadExt - + penumbra_distributions::component::StateReadExt + + penumbra_sdk_stake::StateReadExt + + penumbra_sdk_governance::component::StateReadExt + + penumbra_sdk_fee::component::StateReadExt + + penumbra_sdk_community_pool::component::StateReadExt + + penumbra_sdk_sct::component::clock::EpochRead + + penumbra_sdk_ibc::component::StateReadExt + + penumbra_sdk_distributions::component::StateReadExt + ?Sized, > StateReadExt for T { @@ -764,7 +764,7 @@ pub trait StateWriteExt: StateWrite { async fn put_block_transaction( &mut self, height: u64, - transaction: penumbra_proto::core::transaction::v1::Transaction, + transaction: penumbra_sdk_proto::core::transaction::v1::Transaction, ) -> Result<()> { // Extend the existing transactions with the new one. let mut transactions_response = self.transactions_by_height(height).await?; diff --git a/crates/core/app/src/app_version/component.rs b/crates/core/app/src/app_version/component.rs index 891ee61882..84328fff1a 100644 --- a/crates/core/app/src/app_version/component.rs +++ b/crates/core/app/src/app_version/component.rs @@ -2,7 +2,7 @@ use std::fmt::Write as _; use anyhow::{anyhow, Context}; use cnidarium::{StateDelta, Storage}; -use penumbra_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; use super::APP_VERSION; diff --git a/crates/core/app/src/community_pool_ext.rs b/crates/core/app/src/community_pool_ext.rs index 080f3b27f3..4894b6edcd 100644 --- a/crates/core/app/src/community_pool_ext.rs +++ b/crates/core/app/src/community_pool_ext.rs @@ -3,17 +3,17 @@ use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; use futures::{StreamExt, TryStreamExt}; -use penumbra_governance::state_key; -use penumbra_proto::{StateReadProto, StateWriteProto}; -use penumbra_sct::component::clock::EpochRead; -use penumbra_transaction::Transaction; +use penumbra_sdk_governance::state_key; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_sct::component::clock::EpochRead; +use penumbra_sdk_transaction::Transaction; // Note: These should live in `penumbra-governance` in the `StateReadExt` and `StateWriteExt` // traits, however that would result in a circular dependency since the below methods // require use of `penumbra-transaction::Transaction`, which has `penumbra-governance` as a // dependency. #[async_trait] -pub trait CommunityPoolStateReadExt: StateRead + penumbra_stake::StateReadExt { +pub trait CommunityPoolStateReadExt: StateRead + penumbra_sdk_stake::StateReadExt { /// Get all the transactions set to be delivered in this block (scheduled in last block). async fn pending_community_pool_transactions(&self) -> Result> { // Get the proposal IDs of the Community Pool transactions we are about to deliver. @@ -41,7 +41,7 @@ pub trait CommunityPoolStateReadExt: StateRead + penumbra_stake::StateReadExt { } } -impl CommunityPoolStateReadExt for T {} +impl CommunityPoolStateReadExt for T {} #[async_trait] pub trait CommunityPoolStateWriteExt: StateWrite { diff --git a/crates/core/app/src/genesis.rs b/crates/core/app/src/genesis.rs index becf38cb84..2a7bcf3403 100644 --- a/crates/core/app/src/genesis.rs +++ b/crates/core/app/src/genesis.rs @@ -1,15 +1,15 @@ -use penumbra_auction::genesis::Content as AuctionContent; -use penumbra_community_pool::genesis::Content as CommunityPoolContent; -use penumbra_dex::genesis::Content as DexContent; -use penumbra_distributions::genesis::Content as DistributionsContent; -use penumbra_fee::genesis::Content as FeeContent; -use penumbra_funding::genesis::Content as FundingContent; -use penumbra_governance::genesis::Content as GovernanceContent; -use penumbra_ibc::genesis::Content as IBCContent; -use penumbra_proto::{penumbra::core::app::v1 as pb, DomainType}; -use penumbra_sct::genesis::Content as SctContent; -use penumbra_shielded_pool::genesis::Content as ShieldedPoolContent; -use penumbra_stake::genesis::Content as StakeContent; +use penumbra_sdk_auction::genesis::Content as AuctionContent; +use penumbra_sdk_community_pool::genesis::Content as CommunityPoolContent; +use penumbra_sdk_dex::genesis::Content as DexContent; +use penumbra_sdk_distributions::genesis::Content as DistributionsContent; +use penumbra_sdk_fee::genesis::Content as FeeContent; +use penumbra_sdk_funding::genesis::Content as FundingContent; +use penumbra_sdk_governance::genesis::Content as GovernanceContent; +use penumbra_sdk_ibc::genesis::Content as IBCContent; +use penumbra_sdk_proto::{penumbra::core::app::v1 as pb, DomainType}; +use penumbra_sdk_sct::genesis::Content as SctContent; +use penumbra_sdk_shielded_pool::genesis::Content as ShieldedPoolContent; +use penumbra_sdk_stake::genesis::Content as StakeContent; use serde::{Deserialize, Serialize}; /// The application state at genesis. @@ -188,8 +188,8 @@ impl Content { pub fn with_epoch_duration(self, epoch_duration: u64) -> Self { Self { - sct_content: penumbra_sct::genesis::Content { - sct_params: penumbra_sct::params::SctParameters { epoch_duration }, + sct_content: penumbra_sdk_sct::genesis::Content { + sct_params: penumbra_sdk_sct::params::SctParameters { epoch_duration }, }, ..self } @@ -197,8 +197,8 @@ impl Content { pub fn with_unbonding_delay(self, unbonding_delay: u64) -> Self { Self { - stake_content: penumbra_stake::genesis::Content { - stake_params: penumbra_stake::params::StakeParameters { + stake_content: penumbra_sdk_stake::genesis::Content { + stake_params: penumbra_sdk_stake::params::StakeParameters { unbonding_delay, ..self.stake_content.stake_params }, diff --git a/crates/core/app/src/lib.rs b/crates/core/app/src/lib.rs index 46fc1f1d84..d2bbc61839 100644 --- a/crates/core/app/src/lib.rs +++ b/crates/core/app/src/lib.rs @@ -5,7 +5,7 @@ use once_cell::sync::Lazy; pub static SUBSTORE_PREFIXES: Lazy> = Lazy::new(|| { vec![ - penumbra_ibc::IBC_SUBSTORE_PREFIX.to_string(), + penumbra_sdk_ibc::IBC_SUBSTORE_PREFIX.to_string(), COMETBFT_SUBSTORE_PREFIX.to_string(), ] }); diff --git a/crates/core/app/src/metrics.rs b/crates/core/app/src/metrics.rs index cd7b74d563..ebe673927b 100644 --- a/crates/core/app/src/metrics.rs +++ b/crates/core/app/src/metrics.rs @@ -16,13 +16,13 @@ pub use metrics::*; /// Registers all metrics used by this crate. pub fn register_metrics() { cnidarium::register_metrics(); - penumbra_stake::component::register_metrics(); - penumbra_funding::component::register_metrics(); - penumbra_dex::component::register_metrics(); + penumbra_sdk_stake::component::register_metrics(); + penumbra_sdk_funding::component::register_metrics(); + penumbra_sdk_dex::component::register_metrics(); // TODO: this should be under component:: - penumbra_governance::register_metrics(); - penumbra_ibc::component::register_metrics(); - penumbra_shielded_pool::component::register_metrics(); + penumbra_sdk_governance::register_metrics(); + penumbra_sdk_ibc::component::register_metrics(); + penumbra_sdk_shielded_pool::component::register_metrics(); describe_counter!( MEMPOOL_CHECKTX_TOTAL, diff --git a/crates/core/app/src/params.rs b/crates/core/app/src/params.rs index 691999fb42..dd0d105f42 100644 --- a/crates/core/app/src/params.rs +++ b/crates/core/app/src/params.rs @@ -1,17 +1,17 @@ -use penumbra_auction::params::AuctionParameters; -use penumbra_community_pool::params::CommunityPoolParameters; -use penumbra_dex::DexParameters; -use penumbra_distributions::DistributionsParameters; -use penumbra_fee::FeeParameters; -use penumbra_funding::FundingParameters; -use penumbra_governance::params::GovernanceParameters; -use penumbra_ibc::params::IBCParameters; -use penumbra_proto::core::app::v1 as pb; -use penumbra_proto::view::v1 as pb_view; -use penumbra_proto::DomainType; -use penumbra_sct::params::SctParameters; -use penumbra_shielded_pool::params::ShieldedPoolParameters; -use penumbra_stake::params::StakeParameters; +use penumbra_sdk_auction::params::AuctionParameters; +use penumbra_sdk_community_pool::params::CommunityPoolParameters; +use penumbra_sdk_dex::DexParameters; +use penumbra_sdk_distributions::DistributionsParameters; +use penumbra_sdk_fee::FeeParameters; +use penumbra_sdk_funding::FundingParameters; +use penumbra_sdk_governance::params::GovernanceParameters; +use penumbra_sdk_ibc::params::IBCParameters; +use penumbra_sdk_proto::core::app::v1 as pb; +use penumbra_sdk_proto::view::v1 as pb_view; +use penumbra_sdk_proto::DomainType; +use penumbra_sdk_sct::params::SctParameters; +use penumbra_sdk_shielded_pool::params::ShieldedPoolParameters; +use penumbra_sdk_stake::params::StakeParameters; use serde::{Deserialize, Serialize}; pub mod change; diff --git a/crates/core/app/src/params/change.rs b/crates/core/app/src/params/change.rs index a537efd735..6a88269091 100644 --- a/crates/core/app/src/params/change.rs +++ b/crates/core/app/src/params/change.rs @@ -2,18 +2,18 @@ use std::fmt::Display; use anyhow::Context; use anyhow::Result; -use penumbra_auction::params::AuctionParameters; -use penumbra_community_pool::params::CommunityPoolParameters; -use penumbra_dex::DexParameters; -use penumbra_distributions::params::DistributionsParameters; -use penumbra_fee::FeeParameters; -use penumbra_funding::params::FundingParameters; -use penumbra_governance::change::ParameterChange; -use penumbra_governance::{params::GovernanceParameters, tally::Ratio}; -use penumbra_ibc::params::IBCParameters; -use penumbra_sct::params::SctParameters; -use penumbra_shielded_pool::params::ShieldedPoolParameters; -use penumbra_stake::params::StakeParameters; +use penumbra_sdk_auction::params::AuctionParameters; +use penumbra_sdk_community_pool::params::CommunityPoolParameters; +use penumbra_sdk_dex::DexParameters; +use penumbra_sdk_distributions::params::DistributionsParameters; +use penumbra_sdk_fee::FeeParameters; +use penumbra_sdk_funding::params::FundingParameters; +use penumbra_sdk_governance::change::ParameterChange; +use penumbra_sdk_governance::{params::GovernanceParameters, tally::Ratio}; +use penumbra_sdk_ibc::params::IBCParameters; +use penumbra_sdk_sct::params::SctParameters; +use penumbra_sdk_shielded_pool::params::ShieldedPoolParameters; +use penumbra_sdk_stake::params::StakeParameters; use super::AppParameters; diff --git a/crates/core/app/src/penumbra_host_chain.rs b/crates/core/app/src/penumbra_host_chain.rs index 0336762576..ae20c5a783 100644 --- a/crates/core/app/src/penumbra_host_chain.rs +++ b/crates/core/app/src/penumbra_host_chain.rs @@ -1,10 +1,10 @@ use async_trait::async_trait; -use penumbra_ibc::component::HostInterface; -use penumbra_sct::component::clock::EpochRead; +use penumbra_sdk_ibc::component::HostInterface; +use penumbra_sdk_sct::component::clock::EpochRead; use crate::app::StateReadExt; -/// The implementation of [`penumbra_ibc::component::HostInterface`] for Penumbra. +/// The implementation of [`penumbra_sdk_ibc::component::HostInterface`] for Penumbra. /// It encapsulates all of the chain-specific data that the ibc implementation needs. #[derive(Clone)] pub struct PenumbraHost {} diff --git a/crates/core/app/src/rpc.rs b/crates/core/app/src/rpc.rs index c8a0d9ea32..eec4d504bc 100644 --- a/crates/core/app/src/rpc.rs +++ b/crates/core/app/src/rpc.rs @@ -23,12 +23,12 @@ use { }, }, }, - penumbra_auction::component::rpc::Server as AuctionServer, - penumbra_compact_block::component::rpc::Server as CompactBlockServer, - penumbra_dex::component::rpc::Server as DexServer, - penumbra_fee::component::rpc::Server as FeeServer, - penumbra_governance::component::rpc::Server as GovernanceServer, - penumbra_proto::{ + penumbra_sdk_auction::component::rpc::Server as AuctionServer, + penumbra_sdk_compact_block::component::rpc::Server as CompactBlockServer, + penumbra_sdk_dex::component::rpc::Server as DexServer, + penumbra_sdk_fee::component::rpc::Server as FeeServer, + penumbra_sdk_governance::component::rpc::Server as GovernanceServer, + penumbra_sdk_proto::{ core::{ app::v1::query_service_server::QueryServiceServer as AppQueryServiceServer, component::{ @@ -49,9 +49,9 @@ use { TendermintProxyService, TendermintProxyServiceServer, }, }, - penumbra_sct::component::rpc::Server as SctServer, - penumbra_shielded_pool::component::rpc::Server as ShieldedPoolServer, - penumbra_stake::component::rpc::Server as StakeServer, + penumbra_sdk_sct::component::rpc::Server as SctServer, + penumbra_sdk_shielded_pool::component::rpc::Server as ShieldedPoolServer, + penumbra_sdk_stake::component::rpc::Server as StakeServer, tonic::service::Routes, tonic_web::enable as we, }; @@ -61,7 +61,7 @@ pub fn routes( tm_proxy: impl TendermintProxyService, _enable_expensive_rpc: bool, ) -> anyhow::Result { - let ibc = penumbra_ibc::component::rpc::IbcQuery::::new(storage.clone()); + let ibc = penumbra_sdk_ibc::component::rpc::IbcQuery::::new(storage.clone()); let mut builder = Routes::builder(); builder @@ -117,7 +117,7 @@ pub fn routes( storage.clone(), )))) .add_service(we(tonic_reflection::server::Builder::configure() - .register_encoded_file_descriptor_set(penumbra_proto::FILE_DESCRIPTOR_SET) + .register_encoded_file_descriptor_set(penumbra_sdk_proto::FILE_DESCRIPTOR_SET) .build_v1() .with_context(|| "could not configure grpc reflection service")?)); Ok(builder.routes().prepare()) diff --git a/crates/core/app/src/rpc/query.rs b/crates/core/app/src/rpc/query.rs index ef5ff4ffeb..8b2a789d55 100644 --- a/crates/core/app/src/rpc/query.rs +++ b/crates/core/app/src/rpc/query.rs @@ -1,7 +1,7 @@ use { crate::app::StateReadExt as _, cnidarium::Storage, - penumbra_proto::core::app::v1::{ + penumbra_sdk_proto::core::app::v1::{ query_service_server::QueryService, AppParametersRequest, AppParametersResponse, TransactionsByHeightRequest, TransactionsByHeightResponse, }, diff --git a/crates/core/app/src/server.rs b/crates/core/app/src/server.rs index 6753e670c0..f8cccf391c 100644 --- a/crates/core/app/src/server.rs +++ b/crates/core/app/src/server.rs @@ -6,7 +6,7 @@ use { snapshot::Snapshot, }, cnidarium::Storage, - penumbra_tower_trace::trace::request_span, + penumbra_sdk_tower_trace::trace::request_span, tendermint::v0_37::abci::{ ConsensusRequest, ConsensusResponse, MempoolRequest, MempoolResponse, }, @@ -46,14 +46,14 @@ pub fn new( > { let consensus = tower::ServiceBuilder::new() .layer(request_span::layer(|req: &ConsensusRequest| { - use penumbra_tower_trace::v037::RequestExt; + use penumbra_sdk_tower_trace::v037::RequestExt; req.create_span() })) .layer(EventIndexLayer::index_all()) .service(Consensus::new(storage.clone())); let mempool = tower::ServiceBuilder::new() .layer(request_span::layer(|req: &MempoolRequest| { - use penumbra_tower_trace::v037::RequestExt; + use penumbra_sdk_tower_trace::v037::RequestExt; req.create_span() })) .service(tower_actor::Actor::new(10, |queue: _| { diff --git a/crates/core/app/src/server/info.rs b/crates/core/app/src/server/info.rs index 63c3c7ae88..75b3047fd4 100644 --- a/crates/core/app/src/server/info.rs +++ b/crates/core/app/src/server/info.rs @@ -28,10 +28,10 @@ use ibc_types::core::channel::{ChannelId, PortId}; use ibc_types::core::client::ClientId; use ibc_types::core::connection::ConnectionId; use ibc_types::core::connection::IdentifiedConnectionEnd; -use penumbra_ibc::component::ChannelStateReadExt as _; -use penumbra_ibc::component::ClientStateReadExt as _; -use penumbra_ibc::component::ConnectionStateReadExt as _; -use penumbra_ibc::component::HostInterface; +use penumbra_sdk_ibc::component::ChannelStateReadExt as _; +use penumbra_sdk_ibc::component::ClientStateReadExt as _; +use penumbra_sdk_ibc::component::ConnectionStateReadExt as _; +use penumbra_sdk_ibc::component::HostInterface; use prost::Message; use std::str::FromStr; use tendermint::v0_37::abci::{ @@ -42,7 +42,7 @@ use tendermint::v0_37::abci::{ use tower_abci::BoxError; use tracing::Instrument; -use penumbra_tower_trace::v037::RequestExt; +use penumbra_sdk_tower_trace::v037::RequestExt; const ABCI_INFO_VERSION: &str = env!("CARGO_PKG_VERSION"); diff --git a/crates/core/asset/Cargo.toml b/crates/core/asset/Cargo.toml index 76a5d2a2bb..a1e8b94354 100644 --- a/crates/core/asset/Cargo.toml +++ b/crates/core/asset/Cargo.toml @@ -1,6 +1,10 @@ [package] -name = "penumbra-asset" +name = "penumbra-sdk-asset" +authors = {workspace = true} +repository = {workspace = true} +description = "Core asset data structures for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] @@ -35,8 +39,8 @@ hex = {workspace = true} ibig = {workspace = true} num-bigint = {workspace = true} once_cell = {workspace = true} -penumbra-num = {workspace = true, default-features = true} -penumbra-proto = {workspace = true, default-features = true} +penumbra-sdk-num = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, default-features = true} poseidon377 = {workspace = true, features = ["r1cs"]} rand = {workspace = true} rand_core = {workspace = true, features = ["getrandom"]} diff --git a/crates/core/asset/src/asset.rs b/crates/core/asset/src/asset.rs index 59745565eb..a672021f60 100644 --- a/crates/core/asset/src/asset.rs +++ b/crates/core/asset/src/asset.rs @@ -109,28 +109,31 @@ mod tests { #[test] fn test_displaydenom_format_value() { // with exponent 6, 1782000 formats to 1.782 - let penumbra_display_denom = REGISTRY.parse_unit("penumbra"); + let penumbra_sdk_display_denom = REGISTRY.parse_unit("penumbra"); assert_eq!( - penumbra_display_denom.format_value(1782000u64.into()), + penumbra_sdk_display_denom.format_value(1782000u64.into()), "1.782" ); assert_eq!( - penumbra_display_denom.format_value(6700001u64.into()), + penumbra_sdk_display_denom.format_value(6700001u64.into()), "6.700001" ); - assert_eq!(penumbra_display_denom.format_value(1u64.into()), "0.000001"); + assert_eq!( + penumbra_sdk_display_denom.format_value(1u64.into()), + "0.000001" + ); // with exponent 3, 1782000 formats to 1782 - let mpenumbra_display_denom = REGISTRY.parse_unit("mpenumbra"); + let mpenumbra_sdk_display_denom = REGISTRY.parse_unit("mpenumbra"); assert_eq!( - mpenumbra_display_denom.format_value(1782000u64.into()), + mpenumbra_sdk_display_denom.format_value(1782000u64.into()), "1782" ); // with exponent 0, 1782000 formats to 1782000 - let upenumbra_display_denom = REGISTRY.parse_unit("upenumbra"); + let upenumbra_sdk_display_denom = REGISTRY.parse_unit("upenumbra"); assert_eq!( - upenumbra_display_denom.format_value(1782000u64.into()), + upenumbra_sdk_display_denom.format_value(1782000u64.into()), "1782000" ); } @@ -166,28 +169,30 @@ mod tests { #[test] fn test_displaydenom_parse_value() { - let penumbra_display_denom = REGISTRY.parse_unit("penumbra"); - assert!(penumbra_display_denom.parse_value("1.2.3").is_err()); + let penumbra_sdk_display_denom = REGISTRY.parse_unit("penumbra"); + assert!(penumbra_sdk_display_denom.parse_value("1.2.3").is_err()); assert_eq!( - penumbra_display_denom.parse_value("1.782").unwrap(), + penumbra_sdk_display_denom.parse_value("1.782").unwrap(), 1782000u64.into() ); assert_eq!( - penumbra_display_denom.parse_value("6.700001").unwrap(), + penumbra_sdk_display_denom.parse_value("6.700001").unwrap(), 6700001u64.into() ); - let mpenumbra_display_denom = REGISTRY.parse_unit("mpenumbra"); + let mpenumbra_sdk_display_denom = REGISTRY.parse_unit("mpenumbra"); assert_eq!( - mpenumbra_display_denom.parse_value("1782").unwrap(), + mpenumbra_sdk_display_denom.parse_value("1782").unwrap(), 1782000u64.into() ); - assert!(mpenumbra_display_denom.parse_value("1782.0001").is_err()); + assert!(mpenumbra_sdk_display_denom + .parse_value("1782.0001") + .is_err()); - let upenumbra_display_denom = REGISTRY.parse_unit("upenumbra"); + let upenumbra_sdk_display_denom = REGISTRY.parse_unit("upenumbra"); assert_eq!( - upenumbra_display_denom.parse_value("1782000").unwrap(), + upenumbra_sdk_display_denom.parse_value("1782000").unwrap(), 1782000u64.into() ); } @@ -204,14 +209,14 @@ mod tests { fn displaydenom_parsing_formatting_roundtrip( v: u128 ) { - let penumbra_display_denom = REGISTRY.parse_unit("penumbra"); - let formatted = penumbra_display_denom.format_value(v.into()); - let parsed = penumbra_display_denom.parse_value(&formatted); + let penumbra_sdk_display_denom = REGISTRY.parse_unit("penumbra"); + let formatted = penumbra_sdk_display_denom.format_value(v.into()); + let parsed = penumbra_sdk_display_denom.parse_value(&formatted); assert_eq!(v, u128::from(parsed.unwrap())); - let mpenumbra_display_denom = REGISTRY.parse_unit("mpenumbra"); - let formatted = mpenumbra_display_denom.format_value(v.into()); - let parsed = mpenumbra_display_denom.parse_value(&formatted); + let mpenumbra_sdk_display_denom = REGISTRY.parse_unit("mpenumbra"); + let formatted = mpenumbra_sdk_display_denom.format_value(v.into()); + let parsed = mpenumbra_sdk_display_denom.parse_value(&formatted); assert_eq!(v, u128::from(parsed.unwrap())); } } diff --git a/crates/core/asset/src/asset/denom.rs b/crates/core/asset/src/asset/denom.rs index b67fe90ccc..fd2f77fd8d 100644 --- a/crates/core/asset/src/asset/denom.rs +++ b/crates/core/asset/src/asset/denom.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{penumbra::core::asset::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::asset::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; /// An asset denomination. /// diff --git a/crates/core/asset/src/asset/denom_metadata.rs b/crates/core/asset/src/asset/denom_metadata.rs index 8d67bcb756..13866de43c 100644 --- a/crates/core/asset/src/asset/denom_metadata.rs +++ b/crates/core/asset/src/asset/denom_metadata.rs @@ -7,8 +7,8 @@ use std::{ use anyhow::{ensure, Context}; use decaf377::Fq; -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::asset::v1 as pb, view::v1::AssetsResponse, DomainType}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::asset::v1 as pb, view::v1::AssetsResponse, DomainType}; use regex::Regex; use serde::{Deserialize, Serialize}; diff --git a/crates/core/asset/src/asset/id.rs b/crates/core/asset/src/asset/id.rs index f02e63b270..c073660b92 100644 --- a/crates/core/asset/src/asset/id.rs +++ b/crates/core/asset/src/asset/id.rs @@ -4,8 +4,8 @@ use ark_serialize::CanonicalDeserialize; use base64::Engine; use decaf377::Fq; use once_cell::sync::Lazy; -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::asset::v1 as pb, serializers::bech32str, DomainType}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::asset::v1 as pb, serializers::bech32str, DomainType}; use serde::{Deserialize, Serialize}; /// An identifier for an IBC asset type. @@ -184,7 +184,7 @@ mod tests { let id2 = Id::from_str(&bech32m_id).expect("can decode valid asset id"); - use penumbra_proto::Message; + use penumbra_sdk_proto::Message; let proto = id.encode_to_vec(); let proto2 = pb::AssetId { diff --git a/crates/core/asset/src/balance.rs b/crates/core/asset/src/balance.rs index 8b8e290dba..983fbd460d 100644 --- a/crates/core/asset/src/balance.rs +++ b/crates/core/asset/src/balance.rs @@ -2,7 +2,7 @@ use anyhow::anyhow; use ark_r1cs_std::prelude::*; use ark_r1cs_std::uint8::UInt8; use ark_relations::r1cs::SynthesisError; -use penumbra_num::{Amount, AmountVar}; +use penumbra_sdk_num::{Amount, AmountVar}; use serde::{Deserialize, Serialize}; use std::{ collections::{btree_map, BTreeMap}, @@ -29,7 +29,7 @@ use decaf377::{r1cs::ElementVar, Fq, Fr}; use imbalance::{Imbalance, Sign}; use self::commitment::BalanceCommitmentVar; -use penumbra_proto::{penumbra::core::asset::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::asset::v1 as pb, DomainType}; /// A `Balance` is a "vector of [`Value`]s", where some values may be required, while others may be /// provided. For a transaction to be valid, its balance must be zero. @@ -470,7 +470,7 @@ mod test { use ark_ff::Zero; use decaf377::Fr; use once_cell::sync::Lazy; - use penumbra_proto::core::num::v1::Amount as ProtoAmount; + use penumbra_sdk_proto::core::num::v1::Amount as ProtoAmount; use proptest::prelude::*; use rand_core::OsRng; diff --git a/crates/core/asset/src/balance/commitment.rs b/crates/core/asset/src/balance/commitment.rs index e857b3479a..647cedb634 100644 --- a/crates/core/asset/src/balance/commitment.rs +++ b/crates/core/asset/src/balance/commitment.rs @@ -7,8 +7,8 @@ use decaf377::r1cs::ElementVar; use decaf377::Fq; use decaf377::Fr; use once_cell::sync::Lazy; -use penumbra_proto::penumbra::core::asset::v1 as pb; -use penumbra_proto::DomainType; +use penumbra_sdk_proto::penumbra::core::asset::v1 as pb; +use penumbra_sdk_proto::DomainType; use crate::value::ValueVar; use crate::Value; diff --git a/crates/core/asset/src/equivalent_value.rs b/crates/core/asset/src/equivalent_value.rs index 688f989c13..9092f0b8e9 100644 --- a/crates/core/asset/src/equivalent_value.rs +++ b/crates/core/asset/src/equivalent_value.rs @@ -1,6 +1,6 @@ use crate::asset::Metadata; -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::asset::v1 as pb, DomainType}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::asset::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; /// An equivalent value in terms of a different numeraire. diff --git a/crates/core/asset/src/estimated_price.rs b/crates/core/asset/src/estimated_price.rs index 6f8df75a2f..ecbc52f2a1 100644 --- a/crates/core/asset/src/estimated_price.rs +++ b/crates/core/asset/src/estimated_price.rs @@ -1,5 +1,5 @@ use crate::asset; -use penumbra_proto::{penumbra::core::asset::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::asset::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; /// The estimated price of one asset in terms of another. diff --git a/crates/core/asset/src/value.rs b/crates/core/asset/src/value.rs index a8b6b1e9c9..c1b85e4b22 100644 --- a/crates/core/asset/src/value.rs +++ b/crates/core/asset/src/value.rs @@ -11,8 +11,8 @@ use std::{ }; use anyhow::Context; -use penumbra_num::{Amount, AmountVar}; -use penumbra_proto::{penumbra::core::asset::v1 as pb, DomainType}; +use penumbra_sdk_num::{Amount, AmountVar}; +use penumbra_sdk_proto::{penumbra::core::asset::v1 as pb, DomainType}; use regex::Regex; use serde::{Deserialize, Serialize}; @@ -498,7 +498,7 @@ mod tests { #[test] fn value_parsing_happy() { - let upenumbra_base_denom = crate::asset::Cache::with_known_assets() + let upenumbra_sdk_base_denom = crate::asset::Cache::with_known_assets() .get_unit("upenumbra") .unwrap() .base(); @@ -506,19 +506,19 @@ mod tests { .get_unit("unala") .unwrap() .base(); - let cache = [upenumbra_base_denom.clone(), nala_base_denom.clone()] + let cache = [upenumbra_sdk_base_denom.clone(), nala_base_denom.clone()] .into_iter() .collect::(); let v1: Value = "1823.298penumbra".parse().unwrap(); assert_eq!(v1.amount, 1823298000u64.into()); - assert_eq!(v1.asset_id, upenumbra_base_denom.id()); + assert_eq!(v1.asset_id, upenumbra_sdk_base_denom.id()); // Check that we can also parse the output of try_format assert_eq!(v1, v1.format(&cache).parse().unwrap()); let v2: Value = "3930upenumbra".parse().unwrap(); assert_eq!(v2.amount, 3930u64.into()); - assert_eq!(v2.asset_id, upenumbra_base_denom.id()); + assert_eq!(v2.asset_id, upenumbra_sdk_base_denom.id()); assert_eq!(v2, v2.format(&cache).parse().unwrap()); let v1: Value = "1unala".parse().unwrap(); @@ -535,11 +535,11 @@ mod tests { #[test] fn format_picks_best_unit() { - let upenumbra_base_denom = crate::asset::Cache::with_known_assets() + let upenumbra_sdk_base_denom = crate::asset::Cache::with_known_assets() .get_unit("upenumbra") .unwrap() .base(); - let cache = [upenumbra_base_denom].into_iter().collect::(); + let cache = [upenumbra_sdk_base_denom].into_iter().collect::(); let v1: Value = "999upenumbra".parse().unwrap(); let v2: Value = "1000upenumbra".parse().unwrap(); diff --git a/crates/core/component/auction/Cargo.toml b/crates/core/component/auction/Cargo.toml index 65cc933d2f..b9748d3aad 100644 --- a/crates/core/component/auction/Cargo.toml +++ b/crates/core/component/auction/Cargo.toml @@ -1,19 +1,23 @@ [package] -name = "penumbra-auction" +name = "penumbra-sdk-auction" +authors = {workspace = true} +repository = {workspace = true} +description = "Auction component implementation for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] component = [ "cnidarium-component", "cnidarium", - "penumbra-sct/component", - "penumbra-shielded-pool/component", - "penumbra-dex/component", + "penumbra-sdk-sct/component", + "penumbra-sdk-shielded-pool/component", + "penumbra-sdk-dex/component", "tokio", "tonic", - "penumbra-proto/cnidarium", - "penumbra-proto/rpc", + "penumbra-sdk-proto/cnidarium", + "penumbra-sdk-proto/rpc", "futures", "async-stream", @@ -22,7 +26,7 @@ component = [ default = ["component"] docsrs = [] parallel = [ - "penumbra-tct/parallel", + "penumbra-sdk-tct/parallel", "ark-ff/parallel", "decaf377-rdsa/parallel", "ark-groth16/parallel", @@ -56,16 +60,16 @@ im = {workspace = true, optional = true} metrics = {workspace = true} once_cell = {workspace = true} pbjson-types = { workspace = true } -penumbra-asset = {workspace = true, default-features = false} -penumbra-keys = {workspace = true, default-features = false} -penumbra-num = {workspace = true, default-features = false} -penumbra-proof-params = {workspace = true, default-features = true} -penumbra-proto = {workspace = true, default-features = true} -penumbra-sct = {workspace = true, default-features = false} -penumbra-dex = {workspace = true, default-features = false} -penumbra-shielded-pool = {workspace = true, default-features = false} -penumbra-tct = {workspace = true, default-features = true} -penumbra-txhash = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = false} +penumbra-sdk-keys = {workspace = true, default-features = false} +penumbra-sdk-num = {workspace = true, default-features = false} +penumbra-sdk-proof-params = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, default-features = true} +penumbra-sdk-sct = {workspace = true, default-features = false} +penumbra-sdk-dex = {workspace = true, default-features = false} +penumbra-sdk-shielded-pool = {workspace = true, default-features = false} +penumbra-sdk-tct = {workspace = true, default-features = true} +penumbra-sdk-txhash = {workspace = true, default-features = false} rand_chacha = {workspace = true} rand_core = {workspace = true} regex = {workspace = true} diff --git a/crates/core/component/auction/src/auction/dutch.rs b/crates/core/component/auction/src/auction/dutch.rs index 804fdef667..bd82262d3f 100644 --- a/crates/core/component/auction/src/auction/dutch.rs +++ b/crates/core/component/auction/src/auction/dutch.rs @@ -1,10 +1,10 @@ use std::num::NonZeroU64; use anyhow::anyhow; -use penumbra_asset::{asset, Value}; -use penumbra_dex::lp::position::{self}; -use penumbra_num::Amount; -use penumbra_proto::{core::component::auction::v1 as pb, DomainType}; +use penumbra_sdk_asset::{asset, Value}; +use penumbra_sdk_dex::lp::position::{self}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{core::component::auction::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::auction::AuctionId; diff --git a/crates/core/component/auction/src/auction/dutch/actions/end.rs b/crates/core/component/auction/src/auction/dutch/actions/end.rs index 8bc436c42c..1e29fd6f4c 100644 --- a/crates/core/component/auction/src/auction/dutch/actions/end.rs +++ b/crates/core/component/auction/src/auction/dutch/actions/end.rs @@ -1,7 +1,7 @@ use anyhow::anyhow; -use penumbra_asset::{Balance, Value}; -use penumbra_proto::{core::component::auction::v1 as pb, DomainType}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_asset::{Balance, Value}; +use penumbra_sdk_proto::{core::component::auction::v1 as pb, DomainType}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; use crate::auction::{id::AuctionId, AuctionNft}; diff --git a/crates/core/component/auction/src/auction/dutch/actions/plan.rs b/crates/core/component/auction/src/auction/dutch/actions/plan.rs index dca1265ba1..f92ea08340 100644 --- a/crates/core/component/auction/src/auction/dutch/actions/plan.rs +++ b/crates/core/component/auction/src/auction/dutch/actions/plan.rs @@ -1,7 +1,7 @@ use ark_ff::Zero; use decaf377::Fr; -use penumbra_asset::{balance, Balance, Value}; -use penumbra_proto::{penumbra::core::component::auction::v1 as pb, DomainType}; +use penumbra_sdk_asset::{balance, Balance, Value}; +use penumbra_sdk_proto::{penumbra::core::component::auction::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::auction::{dutch::ActionDutchAuctionWithdraw, AuctionId, AuctionNft}; diff --git a/crates/core/component/auction/src/auction/dutch/actions/schedule.rs b/crates/core/component/auction/src/auction/dutch/actions/schedule.rs index 349371041f..1ae2163188 100644 --- a/crates/core/component/auction/src/auction/dutch/actions/schedule.rs +++ b/crates/core/component/auction/src/auction/dutch/actions/schedule.rs @@ -1,8 +1,8 @@ use crate::auction::{dutch::DutchAuctionDescription, nft::AuctionNft}; use anyhow::anyhow; -use penumbra_asset::{Balance, Value}; -use penumbra_proto::{core::component::auction::v1 as pb, DomainType}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_asset::{Balance, Value}; +use penumbra_sdk_proto::{core::component::auction::v1 as pb, DomainType}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; /// The maximum amount of input/output in a Dutch auction description. diff --git a/crates/core/component/auction/src/auction/dutch/actions/view.rs b/crates/core/component/auction/src/auction/dutch/actions/view.rs index b1a3861750..a764a41e1c 100644 --- a/crates/core/component/auction/src/auction/dutch/actions/view.rs +++ b/crates/core/component/auction/src/auction/dutch/actions/view.rs @@ -6,8 +6,8 @@ use crate::auction::{ id::AuctionId, }; use anyhow::anyhow; -use penumbra_asset::ValueView; -use penumbra_proto::{core::component::auction::v1 as pb, DomainType}; +use penumbra_sdk_asset::ValueView; +use penumbra_sdk_proto::{core::component::auction::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; /* Domain type definitions */ diff --git a/crates/core/component/auction/src/auction/dutch/actions/withdraw.rs b/crates/core/component/auction/src/auction/dutch/actions/withdraw.rs index 6266b8e836..555971689b 100644 --- a/crates/core/component/auction/src/auction/dutch/actions/withdraw.rs +++ b/crates/core/component/auction/src/auction/dutch/actions/withdraw.rs @@ -2,9 +2,9 @@ use crate::auction::{id::AuctionId, AuctionNft}; use anyhow::anyhow; use ark_ff::Zero; use decaf377_rdsa::Fr; -use penumbra_asset::{balance, Balance, Value}; -use penumbra_proto::{core::component::auction::v1 as pb, DomainType}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_asset::{balance, Balance, Value}; +use penumbra_sdk_proto::{core::component::auction::v1 as pb, DomainType}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Serialize, Deserialize)] diff --git a/crates/core/component/auction/src/auction/id.rs b/crates/core/component/auction/src/auction/id.rs index 767b6ffc1f..5b561a8531 100644 --- a/crates/core/component/auction/src/auction/id.rs +++ b/crates/core/component/auction/src/auction/id.rs @@ -1,5 +1,5 @@ use anyhow::{bail, Context}; -use penumbra_proto::{ +use penumbra_sdk_proto::{ penumbra::core::component::auction::v1 as pb, serializers::bech32str, DomainType, }; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/auction/src/auction/nft.rs b/crates/core/component/auction/src/auction/nft.rs index f5dc11d22a..a324c04c51 100644 --- a/crates/core/component/auction/src/auction/nft.rs +++ b/crates/core/component/auction/src/auction/nft.rs @@ -1,7 +1,7 @@ use crate::auction::id::AuctionId; use anyhow::{anyhow, Result}; -use penumbra_asset::asset::{self, Metadata}; -use penumbra_proto::{core::component::auction::v1 as pb, DomainType}; +use penumbra_sdk_asset::asset::{self, Metadata}; +use penumbra_sdk_proto::{core::component::auction::v1 as pb, DomainType}; use regex::Regex; /// An non-fungible token (NFT) tracking the state and ownership of an auction. diff --git a/crates/core/component/auction/src/component/action_handler/dutch/end.rs b/crates/core/component/auction/src/component/action_handler/dutch/end.rs index 529ea7e853..a20ee84ede 100644 --- a/crates/core/component/auction/src/component/action_handler/dutch/end.rs +++ b/crates/core/component/auction/src/component/action_handler/dutch/end.rs @@ -2,7 +2,7 @@ use anyhow::{ensure, Result}; use async_trait::async_trait; use cnidarium::StateWrite; use cnidarium_component::ActionHandler; -use penumbra_proto::StateWriteProto; +use penumbra_sdk_proto::StateWriteProto; use tracing::instrument; use crate::auction::dutch::ActionDutchAuctionEnd; diff --git a/crates/core/component/auction/src/component/action_handler/dutch/schedule.rs b/crates/core/component/auction/src/component/action_handler/dutch/schedule.rs index 2652a0e7f6..03ea6f1356 100644 --- a/crates/core/component/auction/src/component/action_handler/dutch/schedule.rs +++ b/crates/core/component/auction/src/component/action_handler/dutch/schedule.rs @@ -5,8 +5,8 @@ use anyhow::{ensure, Result}; use async_trait::async_trait; use cnidarium::StateWrite; use cnidarium_component::ActionHandler; -use penumbra_num::Amount; -use penumbra_sct::component::clock::EpochRead; +use penumbra_sdk_num::Amount; +use penumbra_sdk_sct::component::clock::EpochRead; use crate::auction::dutch::ActionDutchAuctionSchedule; use crate::component::DutchAuctionManager; diff --git a/crates/core/component/auction/src/component/auction.rs b/crates/core/component/auction/src/component/auction.rs index 2bf431db16..5e3bbc0abf 100644 --- a/crates/core/component/auction/src/component/auction.rs +++ b/crates/core/component/auction/src/component/auction.rs @@ -4,11 +4,11 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; use cnidarium_component::Component; -use penumbra_asset::asset; -use penumbra_asset::Value; -use penumbra_num::Amount; -use penumbra_proto::StateReadProto; -use penumbra_proto::StateWriteProto; +use penumbra_sdk_asset::asset; +use penumbra_sdk_asset::Value; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::StateReadProto; +use penumbra_sdk_proto::StateWriteProto; use std::sync::Arc; use tap::Tap; use tendermint::v0_37::abci; diff --git a/crates/core/component/auction/src/component/auction_store.rs b/crates/core/component/auction/src/component/auction_store.rs index 75301a170b..2ed645f694 100644 --- a/crates/core/component/auction/src/component/auction_store.rs +++ b/crates/core/component/auction/src/component/auction_store.rs @@ -2,10 +2,10 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::StateRead; use pbjson_types::Any; -use penumbra_proto::core::component::auction::v1 as pb; -use penumbra_proto::DomainType; -use penumbra_proto::Name; -use penumbra_proto::StateReadProto; +use penumbra_sdk_proto::core::component::auction::v1 as pb; +use penumbra_sdk_proto::DomainType; +use penumbra_sdk_proto::Name; +use penumbra_sdk_proto::StateReadProto; use crate::{ auction::{dutch::DutchAuction, id::AuctionId}, diff --git a/crates/core/component/auction/src/component/dutch_auction.rs b/crates/core/component/auction/src/component/dutch_auction.rs index a91c501b31..f6b49458b7 100644 --- a/crates/core/component/auction/src/component/dutch_auction.rs +++ b/crates/core/component/auction/src/component/dutch_auction.rs @@ -11,15 +11,15 @@ use anyhow::{Context, Result}; use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; use futures::StreamExt; -use penumbra_asset::{Balance, Value}; -use penumbra_dex::component::{PositionManager, PositionRead, StateReadExt as _}; -use penumbra_dex::lp::position::{self, Position}; -use penumbra_dex::lp::Reserves; -use penumbra_dex::DirectedTradingPair; -use penumbra_num::Amount; -use penumbra_proto::core::component::auction::v1 as pb; -use penumbra_proto::StateWriteProto; -use penumbra_sct::component::clock::EpochRead; +use penumbra_sdk_asset::{Balance, Value}; +use penumbra_sdk_dex::component::{PositionManager, PositionRead, StateReadExt as _}; +use penumbra_sdk_dex::lp::position::{self, Position}; +use penumbra_sdk_dex::lp::Reserves; +use penumbra_sdk_dex::DirectedTradingPair; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::core::component::auction::v1 as pb; +use penumbra_sdk_proto::StateWriteProto; +use penumbra_sdk_sct::component::clock::EpochRead; use prost::{Message, Name}; use tracing::instrument; @@ -456,7 +456,7 @@ pub(crate) trait DutchAuctionData: StateRead { &self, trigger_height: u64, ) -> Pin + Send + 'static>> { - use penumbra_proto::StateReadProto; + use penumbra_sdk_proto::StateReadProto; let prefix_key = state_key::dutch::trigger::by_height(trigger_height) .as_bytes() .to_vec(); diff --git a/crates/core/component/auction/src/component/rpc.rs b/crates/core/component/auction/src/component/rpc.rs index 203266006c..4a8626830f 100755 --- a/crates/core/component/auction/src/component/rpc.rs +++ b/crates/core/component/auction/src/component/rpc.rs @@ -1,7 +1,7 @@ #![allow(unused)] // TODO: remove this when filling in the RPCs -use penumbra_dex::{component::PositionRead, lp::position}; -use penumbra_proto::{ +use penumbra_sdk_dex::{component::PositionRead, lp::position}; +use penumbra_sdk_proto::{ core::component::auction::v1 as pb, core::component::auction::v1::{ query_service_server::QueryService, AuctionStateByIdRequest, AuctionStateByIdResponse, @@ -12,7 +12,7 @@ use penumbra_proto::{ use async_stream::try_stream; use futures::{StreamExt, TryStreamExt}; -use penumbra_proto::Message; +use penumbra_sdk_proto::Message; use prost::Name; use std::pin::Pin; use tonic::Status; diff --git a/crates/core/component/auction/src/event.rs b/crates/core/component/auction/src/event.rs index 5463856c47..495c715ce0 100644 --- a/crates/core/component/auction/src/event.rs +++ b/crates/core/component/auction/src/event.rs @@ -1,8 +1,8 @@ use crate::auction::dutch::{DutchAuctionDescription, DutchAuctionState}; use crate::auction::AuctionId; -use penumbra_asset::asset; -use penumbra_num::Amount; -use penumbra_proto::penumbra::core::component::auction::v1 as pb; +use penumbra_sdk_asset::asset; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::penumbra::core::component::auction::v1 as pb; /// Event for a Dutch auction that has been scheduled. pub fn dutch_auction_schedule_event( diff --git a/crates/core/component/auction/src/genesis.rs b/crates/core/component/auction/src/genesis.rs index 52f78277d5..82da0e7ce2 100644 --- a/crates/core/component/auction/src/genesis.rs +++ b/crates/core/component/auction/src/genesis.rs @@ -2,7 +2,7 @@ use crate::params::AuctionParameters; use anyhow::Context; use serde::{Deserialize, Serialize}; -use penumbra_proto::{penumbra::core::component::auction::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::auction::v1 as pb, DomainType}; #[derive(Deserialize, Serialize, Debug, Clone, Default)] #[serde(try_from = "pb::GenesisContent", into = "pb::GenesisContent")] diff --git a/crates/core/component/auction/src/params.rs b/crates/core/component/auction/src/params.rs index dded262c56..7270d7decc 100644 --- a/crates/core/component/auction/src/params.rs +++ b/crates/core/component/auction/src/params.rs @@ -1,5 +1,5 @@ -use penumbra_proto::core::component::auction::v1 as pb; -use penumbra_proto::DomainType; +use penumbra_sdk_proto::core::component::auction::v1 as pb; +use penumbra_sdk_proto::DomainType; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] diff --git a/crates/core/component/auction/src/state_key.rs b/crates/core/component/auction/src/state_key.rs index 7a3f70ce93..e349b877e4 100644 --- a/crates/core/component/auction/src/state_key.rs +++ b/crates/core/component/auction/src/state_key.rs @@ -9,7 +9,7 @@ pub mod parameters { } pub mod value_balance { - use penumbra_asset::asset; + use penumbra_sdk_asset::asset; #[allow(dead_code)] // For some reason, this shows up as unused pub fn prefix() -> &'static str { diff --git a/crates/core/component/community-pool/Cargo.toml b/crates/core/component/community-pool/Cargo.toml index a0c7509c30..6a5460ef37 100644 --- a/crates/core/component/community-pool/Cargo.toml +++ b/crates/core/component/community-pool/Cargo.toml @@ -1,14 +1,18 @@ [package] -name = "penumbra-community-pool" +name = "penumbra-sdk-community-pool" +authors = {workspace = true} +repository = {workspace = true} +description = "Community Pool component implementation for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] component = [ "cnidarium-component", "cnidarium", - "penumbra-proto/cnidarium", - "penumbra-shielded-pool/component", + "penumbra-sdk-proto/cnidarium", + "penumbra-sdk-shielded-pool/component", ] default = ["component"] docsrs = [] @@ -26,13 +30,13 @@ hex = {workspace = true} metrics = {workspace = true} once_cell = {workspace = true} pbjson-types = {workspace = true} -penumbra-asset = {workspace = true, default-features = false} -penumbra-keys = {workspace = true, default-features = false} -penumbra-num = {workspace = true, default-features = false} -penumbra-proto = {workspace = true, default-features = false} -penumbra-sct = {workspace = true, default-features = false} -penumbra-shielded-pool = {workspace = true, default-features = false} -penumbra-txhash = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = false} +penumbra-sdk-keys = {workspace = true, default-features = false} +penumbra-sdk-num = {workspace = true, default-features = false} +penumbra-sdk-proto = {workspace = true, default-features = false} +penumbra-sdk-sct = {workspace = true, default-features = false} +penumbra-sdk-shielded-pool = {workspace = true, default-features = false} +penumbra-sdk-txhash = {workspace = true, default-features = false} prost = {workspace = true} serde = {workspace = true, features = ["derive"]} sha2 = {workspace = true} diff --git a/crates/core/component/community-pool/src/action/community_pool_deposit.rs b/crates/core/component/community-pool/src/action/community_pool_deposit.rs index 5208cd829d..3c5f1a01fa 100644 --- a/crates/core/component/community-pool/src/action/community_pool_deposit.rs +++ b/crates/core/component/community-pool/src/action/community_pool_deposit.rs @@ -1,11 +1,11 @@ use anyhow::{Context, Error}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; use std::convert::{TryFrom, TryInto}; -use penumbra_asset::{Balance, Value}; +use penumbra_sdk_asset::{Balance, Value}; // TODO: why are the CommunityPool actions not in the Community Pool protos? -use penumbra_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; #[derive(Clone, Debug, Serialize, Deserialize)] #[serde( diff --git a/crates/core/component/community-pool/src/action/community_pool_output.rs b/crates/core/component/community-pool/src/action/community_pool_output.rs index e44721a424..de2d0fc4b3 100644 --- a/crates/core/component/community-pool/src/action/community_pool_output.rs +++ b/crates/core/component/community-pool/src/action/community_pool_output.rs @@ -2,10 +2,10 @@ use anyhow::{Context, Error}; use serde::{Deserialize, Serialize}; use std::convert::{TryFrom, TryInto}; -use penumbra_asset::{Balance, Value}; -use penumbra_keys::Address; -use penumbra_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_asset::{Balance, Value}; +use penumbra_sdk_keys::Address; +use penumbra_sdk_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(try_from = "pb::CommunityPoolOutput", into = "pb::CommunityPoolOutput")] diff --git a/crates/core/component/community-pool/src/action/community_pool_spend.rs b/crates/core/component/community-pool/src/action/community_pool_spend.rs index 0e0fa3a06f..bef155868f 100644 --- a/crates/core/component/community-pool/src/action/community_pool_spend.rs +++ b/crates/core/component/community-pool/src/action/community_pool_spend.rs @@ -2,9 +2,9 @@ use anyhow::{Context, Error}; use serde::{Deserialize, Serialize}; use std::convert::TryFrom; -use penumbra_asset::{Balance, Value}; -use penumbra_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_asset::{Balance, Value}; +use penumbra_sdk_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(try_from = "pb::CommunityPoolSpend", into = "pb::CommunityPoolSpend")] diff --git a/crates/core/component/community-pool/src/component/action_handler/community_pool_output.rs b/crates/core/component/community-pool/src/component/action_handler/community_pool_output.rs index e0259bab4b..4accebfd7a 100644 --- a/crates/core/component/community-pool/src/component/action_handler/community_pool_output.rs +++ b/crates/core/component/community-pool/src/component/action_handler/community_pool_output.rs @@ -2,8 +2,8 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::StateWrite; use cnidarium_component::ActionHandler; -use penumbra_sct::CommitmentSource; -use penumbra_shielded_pool::component::NoteManager; +use penumbra_sdk_sct::CommitmentSource; +use penumbra_sdk_shielded_pool::component::NoteManager; use crate::CommunityPoolOutput; diff --git a/crates/core/component/community-pool/src/component/state_key.rs b/crates/core/component/community-pool/src/component/state_key.rs index 593be88f2d..2a60f36bdb 100644 --- a/crates/core/component/community-pool/src/component/state_key.rs +++ b/crates/core/component/community-pool/src/component/state_key.rs @@ -1,4 +1,4 @@ -use penumbra_asset::asset; +use penumbra_sdk_asset::asset; pub fn community_pool_params() -> &'static str { "community_pool/params" diff --git a/crates/core/component/community-pool/src/component/view.rs b/crates/core/component/community-pool/src/component/view.rs index c36cb3d928..bb0e1f8262 100644 --- a/crates/core/component/community-pool/src/component/view.rs +++ b/crates/core/component/community-pool/src/component/view.rs @@ -5,9 +5,9 @@ use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; use futures::{StreamExt, TryStreamExt}; -use penumbra_asset::{asset, Value}; -use penumbra_num::Amount; -use penumbra_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_asset::{asset, Value}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; use crate::params::CommunityPoolParameters; diff --git a/crates/core/component/community-pool/src/genesis.rs b/crates/core/component/community-pool/src/genesis.rs index 1b5f5b159d..ae828576fc 100644 --- a/crates/core/component/community-pool/src/genesis.rs +++ b/crates/core/component/community-pool/src/genesis.rs @@ -1,6 +1,6 @@ use anyhow::Context; -use penumbra_asset::{Value, STAKING_TOKEN_ASSET_ID}; -use penumbra_proto::{penumbra::core::component::community_pool::v1 as pb, DomainType}; +use penumbra_sdk_asset::{Value, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_proto::{penumbra::core::component::community_pool::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::params::CommunityPoolParameters; diff --git a/crates/core/component/community-pool/src/params.rs b/crates/core/component/community-pool/src/params.rs index 25a61b5be8..0e793b4fd3 100644 --- a/crates/core/component/community-pool/src/params.rs +++ b/crates/core/component/community-pool/src/params.rs @@ -1,5 +1,5 @@ -use penumbra_proto::core::component::community_pool::v1 as pb; -use penumbra_proto::DomainType; +use penumbra_sdk_proto::core::component::community_pool::v1 as pb; +use penumbra_sdk_proto::DomainType; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] diff --git a/crates/core/component/compact-block/Cargo.toml b/crates/core/component/compact-block/Cargo.toml index 121840e2e1..c8b1e3b389 100644 --- a/crates/core/component/compact-block/Cargo.toml +++ b/crates/core/component/compact-block/Cargo.toml @@ -1,20 +1,24 @@ [package] -name = "penumbra-compact-block" +name = "penumbra-sdk-compact-block" +authors = {workspace = true} +repository = {workspace = true} +description = "Compact block component implementation for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] component = [ "cnidarium-component", "cnidarium", - "penumbra-proto/cnidarium", + "penumbra-sdk-proto/cnidarium", "tonic", "tokio-stream", "tokio", - "penumbra-governance/component", - "penumbra-dex/component", + "penumbra-sdk-governance/component", + "penumbra-sdk-dex/component", ] -# proving-keys = ["penumbra-proof-params/proving-keys"] +# proving-keys = ["penumbra-sdk-proof-params/proving-keys"] default = ["std", "component"] std = ["ark-ff/std"] docsrs = [] @@ -31,16 +35,16 @@ decaf377-rdsa = {workspace = true} futures = {workspace = true} im = {workspace = true} metrics = {workspace = true} -penumbra-dex = {workspace = true, default-features = false} -penumbra-fee = {workspace = true, default-features = false} -penumbra-governance = {workspace = true, default-features = false} -penumbra-ibc = {workspace = true, default-features = false} -penumbra-proof-params = {workspace = true, default-features = false} -penumbra-proto = {workspace = true, default-features = false} -penumbra-sct = {workspace = true, default-features = false} -penumbra-shielded-pool = {workspace = true, default-features = false} -penumbra-stake = {workspace = true, default-features = false} -penumbra-tct = {workspace = true, default-features = true} +penumbra-sdk-dex = {workspace = true, default-features = false} +penumbra-sdk-fee = {workspace = true, default-features = false} +penumbra-sdk-governance = {workspace = true, default-features = false} +penumbra-sdk-ibc = {workspace = true, default-features = false} +penumbra-sdk-proof-params = {workspace = true, default-features = false} +penumbra-sdk-proto = {workspace = true, default-features = false} +penumbra-sdk-sct = {workspace = true, default-features = false} +penumbra-sdk-shielded-pool = {workspace = true, default-features = false} +penumbra-sdk-stake = {workspace = true, default-features = false} +penumbra-sdk-tct = {workspace = true, default-features = true} rand = {workspace = true} rand_core = {workspace = true, features = ["getrandom"]} serde = {workspace = true, features = ["derive"]} diff --git a/crates/core/component/compact-block/src/compact_block.rs b/crates/core/component/compact-block/src/compact_block.rs index 0e5a8d2d2b..9051212f1e 100644 --- a/crates/core/component/compact-block/src/compact_block.rs +++ b/crates/core/component/compact-block/src/compact_block.rs @@ -1,15 +1,15 @@ use std::{collections::BTreeMap, convert::TryFrom}; use anyhow::Result; -use penumbra_dex::{BatchSwapOutputData, TradingPair}; -use penumbra_fee::GasPrices; -use penumbra_proto::{ +use penumbra_sdk_dex::{BatchSwapOutputData, TradingPair}; +use penumbra_sdk_fee::GasPrices; +use penumbra_sdk_proto::{ core::component::compact_block::v1::CompactBlockRangeResponse, penumbra::core::component::compact_block::v1 as pb, DomainType, }; -use penumbra_sct::Nullifier; -use penumbra_shielded_pool::fmd; -use penumbra_tct::builder::{block, epoch}; +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_shielded_pool::fmd; +use penumbra_sdk_tct::builder::{block, epoch}; use serde::{Deserialize, Serialize}; use super::StatePayload; diff --git a/crates/core/component/compact-block/src/component/manager.rs b/crates/core/component/compact-block/src/component/manager.rs index 2d38177ebe..607b0e303f 100644 --- a/crates/core/component/compact-block/src/component/manager.rs +++ b/crates/core/component/compact-block/src/component/manager.rs @@ -2,13 +2,13 @@ use anyhow::{Context, Result}; use async_trait::async_trait; use cnidarium::StateWrite; #[cfg(feature = "component")] -use penumbra_dex::component::SwapDataRead; -use penumbra_fee::component::StateReadExt as _; -use penumbra_governance::StateReadExt as _; -use penumbra_proto::DomainType; -use penumbra_sct::component::clock::EpochRead; -use penumbra_sct::component::tree::{SctManager as _, SctRead}; -use penumbra_shielded_pool::component::NoteManager as _; +use penumbra_sdk_dex::component::SwapDataRead; +use penumbra_sdk_fee::component::StateReadExt as _; +use penumbra_sdk_governance::StateReadExt as _; +use penumbra_sdk_proto::DomainType; +use penumbra_sdk_sct::component::clock::EpochRead; +use penumbra_sdk_sct::component::tree::{SctManager as _, SctRead}; +use penumbra_sdk_shielded_pool::component::NoteManager as _; use tracing::instrument; use crate::{state_key, CompactBlock}; @@ -32,7 +32,7 @@ impl CompactBlockManager for T {} trait Inner: StateWrite { #[instrument(skip_all)] async fn finalize_compact_block(&mut self, end_epoch: bool) -> Result<()> { - use penumbra_shielded_pool::component::StateReadExt as _; + use penumbra_sdk_shielded_pool::component::StateReadExt as _; // Find out what our block height is (this is set even during the genesis block) let height = self .get_block_height() @@ -51,7 +51,7 @@ trait Inner: StateWrite { app_parameters_updated = app_parameters_updated || height == 0; // Check to see if the gas prices have changed, and include them in the compact block - // if they have (this is signaled by `penumbra_fee::StateWriteExt::put_gas_prices`): + // if they have (this is signaled by `penumbra_sdk_fee::StateWriteExt::put_gas_prices`): let (gas_prices, alt_gas_prices) = if self.gas_prices_changed() || height == 0 { ( Some( diff --git a/crates/core/component/compact-block/src/component/rpc.rs b/crates/core/component/compact-block/src/component/rpc.rs index b277e3a6bf..0f70ff112c 100644 --- a/crates/core/component/compact-block/src/component/rpc.rs +++ b/crates/core/component/compact-block/src/component/rpc.rs @@ -3,11 +3,11 @@ use std::pin::Pin; use anyhow::bail; use cnidarium::Storage; use futures::{StreamExt, TryFutureExt, TryStreamExt}; -use penumbra_proto::core::component::compact_block::v1::{ +use penumbra_sdk_proto::core::component::compact_block::v1::{ query_service_server::QueryService, CompactBlock, CompactBlockRangeRequest, CompactBlockRangeResponse, CompactBlockRequest, CompactBlockResponse, }; -use penumbra_sct::component::clock::EpochRead; +use penumbra_sdk_sct::component::clock::EpochRead; use tokio::sync::mpsc; use tonic::Status; use tracing::{instrument, Instrument}; diff --git a/crates/core/component/compact-block/src/component/view.rs b/crates/core/component/compact-block/src/component/view.rs index 431ccf1f44..907a95d759 100644 --- a/crates/core/component/compact-block/src/component/view.rs +++ b/crates/core/component/compact-block/src/component/view.rs @@ -6,14 +6,14 @@ use async_trait::async_trait; use cnidarium::StateRead; use futures::Stream; use futures::StreamExt; -use penumbra_proto::{penumbra::core::component::compact_block::v1::CompactBlock, Message}; +use penumbra_sdk_proto::{penumbra::core::component::compact_block::v1::CompactBlock, Message}; use std::pin::Pin; #[async_trait] pub trait StateReadExt: StateRead { /// Returns a stream of [`CompactBlock`]s starting from `start_height`. /// - /// Note: this method returns the proto type from `penumbra_proto`, rather + /// Note: this method returns the proto type from `penumbra_sdk_proto`, rather /// than deserializing into the domain type, because the primary use is in /// serving RPC requests, where the proto type will be re-serialized and /// sent to clients. @@ -38,7 +38,7 @@ pub trait StateReadExt: StateRead { /// Returns a single [`CompactBlock`] at the given `height`. /// - /// Note: this method returns the proto type from `penumbra_proto`, rather + /// Note: this method returns the proto type from `penumbra_sdk_proto`, rather /// than deserializing into the domain type, because the primary use is in /// serving RPC requests, where the proto type will be re-serialized and /// sent to clients. diff --git a/crates/core/component/compact-block/src/state_payload.rs b/crates/core/component/compact-block/src/state_payload.rs index a249dd3037..f400b789da 100644 --- a/crates/core/component/compact-block/src/state_payload.rs +++ b/crates/core/component/compact-block/src/state_payload.rs @@ -1,13 +1,13 @@ use std::convert::TryFrom; use anyhow::{Context, Result}; -use penumbra_dex::swap::SwapPayload; -use penumbra_proto::penumbra::core::component::compact_block::v1::{self as pb}; -use penumbra_shielded_pool::{note, NotePayload}; +use penumbra_sdk_dex::swap::SwapPayload; +use penumbra_sdk_proto::penumbra::core::component::compact_block::v1::{self as pb}; +use penumbra_sdk_shielded_pool::{note, NotePayload}; use serde::{Deserialize, Serialize}; -use penumbra_sct::CommitmentSource; +use penumbra_sdk_sct::CommitmentSource; /// A note payload annotated with the source of the note. #[derive(Clone, Debug, Serialize, Deserialize)] diff --git a/crates/core/component/dex/Cargo.toml b/crates/core/component/dex/Cargo.toml index 4c70f895b7..57f455d317 100644 --- a/crates/core/component/dex/Cargo.toml +++ b/crates/core/component/dex/Cargo.toml @@ -1,10 +1,14 @@ [package] -name = "penumbra-dex" +name = "penumbra-sdk-dex" +authors = {workspace = true} +repository = {workspace = true} +description = "DEX engine component implementation for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [[test]] -name = "penumbra-dex-integration-tests" +name = "penumbra-sdk-dex-integration-tests" path = "tests/integration/mod.rs" [features] @@ -12,17 +16,17 @@ component = [ "cnidarium-component", "cnidarium", "metrics-exporter-prometheus", - "penumbra-proto/cnidarium", - "penumbra-shielded-pool/component", - "penumbra-fee/component", + "penumbra-sdk-proto/cnidarium", + "penumbra-sdk-shielded-pool/component", + "penumbra-sdk-fee/component", "tokio", "tonic", ] default = ["component"] docsrs = [] -# proving-keys = ["penumbra-proof-params/proving-keys"] +# proving-keys = ["penumbra-sdk-proof-params/proving-keys"] parallel = [ - "penumbra-tct/parallel", + "penumbra-sdk-tct/parallel", "ark-ff/parallel", "poseidon377/parallel", "decaf377-rdsa/parallel", @@ -58,16 +62,16 @@ metrics-exporter-prometheus = {workspace = true, optional = true} once_cell = {workspace = true} parking_lot = {workspace = true} pbjson-types = {workspace = true} -penumbra-asset = {workspace = true, default-features = false} -penumbra-fee = {workspace = true, default-features = false} -penumbra-keys = {workspace = true, default-features = false} -penumbra-num = {workspace = true, default-features = false} -penumbra-proof-params = {workspace = true, default-features = true} -penumbra-proto = {workspace = true, default-features = false} -penumbra-sct = {workspace = true, default-features = false} -penumbra-shielded-pool = {workspace = true, default-features = false} -penumbra-tct = {workspace = true, default-features = false} -penumbra-txhash = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = false} +penumbra-sdk-fee = {workspace = true, default-features = false} +penumbra-sdk-keys = {workspace = true, default-features = false} +penumbra-sdk-num = {workspace = true, default-features = false} +penumbra-sdk-proof-params = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, default-features = false} +penumbra-sdk-sct = {workspace = true, default-features = false} +penumbra-sdk-shielded-pool = {workspace = true, default-features = false} +penumbra-sdk-tct = {workspace = true, default-features = false} +penumbra-sdk-txhash = {workspace = true, default-features = false} poseidon377 = {workspace = true, features = ["r1cs"]} prost = {workspace = true} rand_core = {workspace = true} diff --git a/crates/core/component/dex/src/batch_swap_output_data.rs b/crates/core/component/dex/src/batch_swap_output_data.rs index 33afb327f5..90df57723b 100644 --- a/crates/core/component/dex/src/batch_swap_output_data.rs +++ b/crates/core/component/dex/src/batch_swap_output_data.rs @@ -7,12 +7,12 @@ use ark_r1cs_std::{ }; use ark_relations::r1cs::{ConstraintSystemRef, SynthesisError}; use decaf377::{r1cs::FqVar, Fq}; -use penumbra_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; -use penumbra_tct::Position; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_tct::Position; use serde::{Deserialize, Serialize}; -use penumbra_num::fixpoint::{bit_constrain, U128x128, U128x128Var}; -use penumbra_num::{Amount, AmountVar}; +use penumbra_sdk_num::fixpoint::{bit_constrain, U128x128, U128x128Var}; +use penumbra_sdk_num::{Amount, AmountVar}; use crate::TradingPairVar; @@ -346,8 +346,8 @@ mod tests { use ark_relations::r1cs::ConstraintSynthesizer; use ark_snark::SNARK; use decaf377::Bls12_377; - use penumbra_asset::asset; - use penumbra_proof_params::{generate_test_parameters, DummyWitness}; + use penumbra_sdk_asset::asset; + use penumbra_sdk_proof_params::{generate_test_parameters, DummyWitness}; use rand_core::OsRng; use super::*; diff --git a/crates/core/component/dex/src/candlestick.rs b/crates/core/component/dex/src/candlestick.rs index 6ff7a7a013..366202dca4 100644 --- a/crates/core/component/dex/src/candlestick.rs +++ b/crates/core/component/dex/src/candlestick.rs @@ -1,7 +1,7 @@ use anyhow::Result; use serde::{Deserialize, Serialize}; -use penumbra_proto::{core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_proto::{core::component::dex::v1 as pb, DomainType}; #[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)] #[serde(try_from = "pb::CandlestickData", into = "pb::CandlestickData")] diff --git a/crates/core/component/dex/src/component/action_handler/position/close.rs b/crates/core/component/dex/src/component/action_handler/position/close.rs index 744b51c17c..00be79b676 100644 --- a/crates/core/component/dex/src/component/action_handler/position/close.rs +++ b/crates/core/component/dex/src/component/action_handler/position/close.rs @@ -2,6 +2,7 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::StateWrite; use cnidarium_component::ActionHandler; +// use penumbra_sdk_proto::{DomainType as _, StateWriteProto as _}; use crate::{component::PositionManager, lp::action::PositionClose}; diff --git a/crates/core/component/dex/src/component/action_handler/swap.rs b/crates/core/component/dex/src/component/action_handler/swap.rs index 8b69289ba0..1ca8de7fda 100644 --- a/crates/core/component/dex/src/component/action_handler/swap.rs +++ b/crates/core/component/dex/src/component/action_handler/swap.rs @@ -4,9 +4,9 @@ use anyhow::{ensure, Result}; use async_trait::async_trait; use cnidarium::StateWrite; use cnidarium_component::ActionHandler; -use penumbra_proof_params::SWAP_PROOF_VERIFICATION_KEY; -use penumbra_proto::{DomainType as _, StateWriteProto}; -use penumbra_sct::component::source::SourceContext; +use penumbra_sdk_proof_params::SWAP_PROOF_VERIFICATION_KEY; +use penumbra_sdk_proto::{DomainType as _, StateWriteProto}; +use penumbra_sdk_sct::component::source::SourceContext; use crate::{ component::{InternalDexWrite, StateReadExt, SwapDataWrite, SwapManager}, diff --git a/crates/core/component/dex/src/component/action_handler/swap_claim.rs b/crates/core/component/dex/src/component/action_handler/swap_claim.rs index cf5408f305..4b83ee9e7e 100644 --- a/crates/core/component/dex/src/component/action_handler/swap_claim.rs +++ b/crates/core/component/dex/src/component/action_handler/swap_claim.rs @@ -3,17 +3,17 @@ use std::sync::Arc; use anyhow::{Context, Result}; use async_trait::async_trait; use cnidarium_component::ActionHandler; -use penumbra_txhash::TransactionContext; +use penumbra_sdk_txhash::TransactionContext; use cnidarium::{StateRead, StateWrite}; -use penumbra_proof_params::SWAPCLAIM_PROOF_VERIFICATION_KEY; -use penumbra_proto::{DomainType as _, StateWriteProto}; -use penumbra_sct::component::{ +use penumbra_sdk_proof_params::SWAPCLAIM_PROOF_VERIFICATION_KEY; +use penumbra_sdk_proto::{DomainType as _, StateWriteProto}; +use penumbra_sdk_sct::component::{ source::SourceContext, tree::{SctManager, VerificationExt}, StateReadExt as _, }; -use penumbra_shielded_pool::component::NoteManager; +use penumbra_sdk_shielded_pool::component::NoteManager; use crate::{ component::StateReadExt, diff --git a/crates/core/component/dex/src/component/arb.rs b/crates/core/component/dex/src/component/arb.rs index c6618d5756..2e3e9a00f7 100644 --- a/crates/core/component/dex/src/component/arb.rs +++ b/crates/core/component/dex/src/component/arb.rs @@ -4,9 +4,9 @@ use crate::component::{metrics, StateReadExt}; use anyhow::Result; use async_trait::async_trait; use cnidarium::{StateDelta, StateWrite}; -use penumbra_asset::{asset, Value}; -use penumbra_proto::{DomainType as _, StateWriteProto as _}; -use penumbra_sct::component::clock::EpochRead; +use penumbra_sdk_asset::{asset, Value}; +use penumbra_sdk_proto::{DomainType as _, StateWriteProto as _}; +use penumbra_sdk_sct::component::clock::EpochRead; use tracing::instrument; use crate::{ diff --git a/crates/core/component/dex/src/component/chandelier.rs b/crates/core/component/dex/src/component/chandelier.rs index a169aa0b30..411dac897b 100644 --- a/crates/core/component/dex/src/component/chandelier.rs +++ b/crates/core/component/dex/src/component/chandelier.rs @@ -3,9 +3,9 @@ use anyhow::{Context as _, Result}; use cnidarium::{StateRead, StateWrite}; use futures::{StreamExt, TryStreamExt as _}; -use penumbra_num::fixpoint::U128x128; -use penumbra_proto::{DomainType, StateReadProto, StateWriteProto}; -use penumbra_sct::component::clock::EpochRead as _; +use penumbra_sdk_num::fixpoint::U128x128; +use penumbra_sdk_proto::{DomainType, StateReadProto, StateWriteProto}; +use penumbra_sdk_sct::component::clock::EpochRead as _; use tonic::async_trait; use crate::event::EventCandlestickData; @@ -272,8 +272,8 @@ mod tests { use cnidarium::{ArcStateDeltaExt as _, StateDelta, TempStorage}; use cnidarium_component::Component as _; - use penumbra_asset::asset; - use penumbra_sct::{component::clock::EpochManager as _, epoch::Epoch}; + use penumbra_sdk_asset::asset; + use penumbra_sdk_sct::{component::clock::EpochManager as _, epoch::Epoch}; use tendermint::abci; use crate::{ @@ -298,7 +298,7 @@ mod tests { state_tx.put_block_height(0); state_tx.put_epoch_by_height( 0, - penumbra_sct::epoch::Epoch { + penumbra_sdk_sct::epoch::Epoch { index: 0, start_height: 0, }, diff --git a/crates/core/component/dex/src/component/circuit_breaker/value.rs b/crates/core/component/dex/src/component/circuit_breaker/value.rs index bbe9785bad..b8d150e0a6 100644 --- a/crates/core/component/dex/src/component/circuit_breaker/value.rs +++ b/crates/core/component/dex/src/component/circuit_breaker/value.rs @@ -1,8 +1,8 @@ use anyhow::{anyhow, Result}; use cnidarium::{StateRead, StateWrite}; -use penumbra_asset::{asset, Value}; -use penumbra_num::Amount; -use penumbra_proto::{DomainType, StateReadProto, StateWriteProto}; +use penumbra_sdk_asset::{asset, Value}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{DomainType, StateReadProto, StateWriteProto}; use tonic::async_trait; use tracing::instrument; @@ -97,12 +97,12 @@ mod tests { use crate::{BatchSwapOutputData, PositionOpen}; use cnidarium::{ArcStateDeltaExt as _, StateDelta, TempStorage}; use cnidarium_component::ActionHandler as _; - use penumbra_asset::asset; - use penumbra_num::Amount; - use penumbra_proto::StateWriteProto as _; - use penumbra_sct::component::clock::EpochManager as _; - use penumbra_sct::component::source::SourceContext as _; - use penumbra_sct::epoch::Epoch; + use penumbra_sdk_asset::asset; + use penumbra_sdk_num::Amount; + use penumbra_sdk_proto::StateWriteProto as _; + use penumbra_sdk_sct::component::clock::EpochManager as _; + use penumbra_sdk_sct::component::source::SourceContext as _; + use penumbra_sdk_sct::epoch::Epoch; use super::*; diff --git a/crates/core/component/dex/src/component/dex.rs b/crates/core/component/dex/src/component/dex.rs index 816a79f965..ddb7c86d3e 100644 --- a/crates/core/component/dex/src/component/dex.rs +++ b/crates/core/component/dex/src/component/dex.rs @@ -5,12 +5,12 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; use cnidarium_component::Component; -use penumbra_asset::asset; -use penumbra_asset::{Value, STAKING_TOKEN_ASSET_ID}; -use penumbra_fee::component::StateWriteExt as _; -use penumbra_fee::Fee; -use penumbra_num::Amount; -use penumbra_proto::{DomainType as _, StateReadProto, StateWriteProto}; +use penumbra_sdk_asset::asset; +use penumbra_sdk_asset::{Value, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_fee::component::StateWriteExt as _; +use penumbra_sdk_fee::Fee; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{DomainType as _, StateReadProto, StateWriteProto}; use tendermint::v0_37::abci; use tracing::instrument; diff --git a/crates/core/component/dex/src/component/flow.rs b/crates/core/component/dex/src/component/flow.rs index cda0a36abe..13a5e329d8 100644 --- a/crates/core/component/dex/src/component/flow.rs +++ b/crates/core/component/dex/src/component/flow.rs @@ -1,6 +1,6 @@ use std::ops::{Deref, DerefMut}; -use penumbra_num::Amount; +use penumbra_sdk_num::Amount; // Tuple represents: // ((amount of asset 1 being exchanged for asset 2), diff --git a/crates/core/component/dex/src/component/position_manager.rs b/crates/core/component/dex/src/component/position_manager.rs index b869e2e502..bb042013d4 100644 --- a/crates/core/component/dex/src/component/position_manager.rs +++ b/crates/core/component/dex/src/component/position_manager.rs @@ -7,9 +7,9 @@ use async_trait::async_trait; use cnidarium::{EscapedByteSlice, StateRead, StateWrite}; use futures::Stream; use futures::StreamExt; -use penumbra_asset::{asset, Balance}; -use penumbra_proto::DomainType; -use penumbra_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_asset::{asset, Balance}; +use penumbra_sdk_proto::DomainType; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; use tap::Tap; use tracing::instrument; diff --git a/crates/core/component/dex/src/component/position_manager/base_liquidity_index.rs b/crates/core/component/dex/src/component/position_manager/base_liquidity_index.rs index 5e8b8ffaa3..4677ea1064 100644 --- a/crates/core/component/dex/src/component/position_manager/base_liquidity_index.rs +++ b/crates/core/component/dex/src/component/position_manager/base_liquidity_index.rs @@ -1,6 +1,6 @@ use anyhow::Result; use cnidarium::StateWrite; -use penumbra_num::Amount; +use penumbra_sdk_num::Amount; use position::State::*; use tracing::instrument; @@ -8,7 +8,7 @@ use crate::lp::position::{self, Position}; use crate::state_key::engine; use crate::DirectedTradingPair; use async_trait::async_trait; -use penumbra_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; #[async_trait] pub(crate) trait AssetByLiquidityIndex: StateWrite { diff --git a/crates/core/component/dex/src/component/position_manager/counter.rs b/crates/core/component/dex/src/component/position_manager/counter.rs index 67ffad31af..115e2cc579 100644 --- a/crates/core/component/dex/src/component/position_manager/counter.rs +++ b/crates/core/component/dex/src/component/position_manager/counter.rs @@ -96,7 +96,7 @@ impl Inner for T {} #[allow(unused_imports)] mod tests { use cnidarium::{StateDelta, StateWrite, TempStorage}; - use penumbra_asset::{asset::REGISTRY, Value}; + use penumbra_sdk_asset::{asset::REGISTRY, Value}; use crate::component::position_manager::counter::{ Inner, PositionCounter, PositionCounterRead, diff --git a/crates/core/component/dex/src/component/position_manager/price_index.rs b/crates/core/component/dex/src/component/position_manager/price_index.rs index ac373e9851..a0452fae04 100644 --- a/crates/core/component/dex/src/component/position_manager/price_index.rs +++ b/crates/core/component/dex/src/component/position_manager/price_index.rs @@ -1,5 +1,5 @@ use cnidarium::StateWrite; -use penumbra_proto::StateWriteProto; +use penumbra_sdk_proto::StateWriteProto; use crate::{ lp::position::{self, Position}, diff --git a/crates/core/component/dex/src/component/router/fill_route.rs b/crates/core/component/dex/src/component/router/fill_route.rs index 4e3c24af0a..ea38f7f67d 100644 --- a/crates/core/component/dex/src/component/router/fill_route.rs +++ b/crates/core/component/dex/src/component/router/fill_route.rs @@ -7,8 +7,8 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::{StateDelta, StateRead, StateWrite}; use futures::{Stream, StreamExt}; -use penumbra_asset::{asset, Value}; -use penumbra_num::{ +use penumbra_sdk_asset::{asset, Value}; +use penumbra_sdk_num::{ fixpoint::{Error, U128x128}, Amount, }; diff --git a/crates/core/component/dex/src/component/router/params.rs b/crates/core/component/dex/src/component/router/params.rs index 6d18a9c2c7..20f70e4199 100644 --- a/crates/core/component/dex/src/component/router/params.rs +++ b/crates/core/component/dex/src/component/router/params.rs @@ -1,7 +1,7 @@ use std::sync::Arc; -use penumbra_asset::asset; -use penumbra_num::fixpoint::U128x128; +use penumbra_sdk_asset::asset; +use penumbra_sdk_num::fixpoint::U128x128; use crate::DexParameters; diff --git a/crates/core/component/dex/src/component/router/path.rs b/crates/core/component/dex/src/component/router/path.rs index dde86045aa..9bc5056dc9 100644 --- a/crates/core/component/dex/src/component/router/path.rs +++ b/crates/core/component/dex/src/component/router/path.rs @@ -1,8 +1,8 @@ use anyhow::Result; use cnidarium::{StateDelta, StateRead}; -use penumbra_asset::asset; -use penumbra_num::fixpoint::U128x128; +use penumbra_sdk_asset::asset; +use penumbra_sdk_num::fixpoint::U128x128; use std::cmp::Ordering; use tracing::Instrument; diff --git a/crates/core/component/dex/src/component/router/path_cache.rs b/crates/core/component/dex/src/component/router/path_cache.rs index a8b5cebf51..556b00136a 100644 --- a/crates/core/component/dex/src/component/router/path_cache.rs +++ b/crates/core/component/dex/src/component/router/path_cache.rs @@ -2,7 +2,7 @@ use std::{collections::BTreeMap, sync::Arc}; use cnidarium::{StateDelta, StateRead}; use parking_lot::Mutex; -use penumbra_asset::asset; +use penumbra_sdk_asset::asset; use super::Path; diff --git a/crates/core/component/dex/src/component/router/path_search.rs b/crates/core/component/dex/src/component/router/path_search.rs index 27667ec7a9..6fe4e98fde 100644 --- a/crates/core/component/dex/src/component/router/path_search.rs +++ b/crates/core/component/dex/src/component/router/path_search.rs @@ -4,8 +4,8 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::{StateDelta, StateRead}; use futures::StreamExt; -use penumbra_asset::asset; -use penumbra_num::fixpoint::U128x128; +use penumbra_sdk_asset::asset; +use penumbra_sdk_num::fixpoint::U128x128; use tap::Tap; use tokio::task::JoinSet; use tracing::{instrument, Instrument}; diff --git a/crates/core/component/dex/src/component/router/route_and_fill.rs b/crates/core/component/dex/src/component/router/route_and_fill.rs index 4d7b5476a8..81d24031a6 100644 --- a/crates/core/component/dex/src/component/router/route_and_fill.rs +++ b/crates/core/component/dex/src/component/router/route_and_fill.rs @@ -3,9 +3,9 @@ use std::sync::Arc; use anyhow::{Context, Result}; use async_trait::async_trait; use cnidarium::StateWrite; -use penumbra_asset::{asset, Value}; -use penumbra_num::Amount; -use penumbra_sct::component::clock::EpochRead; +use penumbra_sdk_asset::{asset, Value}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_sct::component::clock::EpochRead; use tracing::instrument; use crate::{ diff --git a/crates/core/component/dex/src/component/router/tests.rs b/crates/core/component/dex/src/component/router/tests.rs index 5484ccd9f6..320206b98d 100644 --- a/crates/core/component/dex/src/component/router/tests.rs +++ b/crates/core/component/dex/src/component/router/tests.rs @@ -3,8 +3,8 @@ use cnidarium::TempStorage; use cnidarium::{StateDelta, StateWrite}; use core::panic; use futures::StreamExt; -use penumbra_asset::{asset, Value}; -use penumbra_num::{fixpoint::U128x128, Amount}; +use penumbra_sdk_asset::{asset, Value}; +use penumbra_sdk_num::{fixpoint::U128x128, Amount}; use rand_core::OsRng; use std::sync::Arc; diff --git a/crates/core/component/dex/src/component/rpc.rs b/crates/core/component/dex/src/component/rpc.rs index 89cef38079..0bfd3df7b3 100644 --- a/crates/core/component/dex/src/component/rpc.rs +++ b/crates/core/component/dex/src/component/rpc.rs @@ -8,8 +8,8 @@ use tonic::Status; use tracing::instrument; use cnidarium::{StateDelta, Storage}; -use penumbra_asset::{asset, Value}; -use penumbra_proto::{ +use penumbra_sdk_asset::{asset, Value}; +use penumbra_sdk_proto::{ core::component::dex::v1::{ query_service_server::QueryService, simulate_trade_request::{ @@ -571,9 +571,11 @@ impl QueryService for Server { } }; Ok(tonic::Response::new( - s.map_ok(|p: penumbra_proto::core::component::dex::v1::Position| { - LiquidityPositionsByIdResponse { data: Some(p) } - }) + s.map_ok( + |p: penumbra_sdk_proto::core::component::dex::v1::Position| { + LiquidityPositionsByIdResponse { data: Some(p) } + }, + ) .map_err(|e: anyhow::Error| { tonic::Status::unavailable(format!( "error getting position value from storage: {e}" diff --git a/crates/core/component/dex/src/component/swap_manager.rs b/crates/core/component/dex/src/component/swap_manager.rs index 75b3c00766..8c8a24e1e6 100644 --- a/crates/core/component/dex/src/component/swap_manager.rs +++ b/crates/core/component/dex/src/component/swap_manager.rs @@ -1,8 +1,8 @@ use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; -use penumbra_asset::Value; -use penumbra_sct::{component::tree::SctManager, CommitmentSource}; -use penumbra_tct as tct; +use penumbra_sdk_asset::Value; +use penumbra_sdk_sct::{component::tree::SctManager, CommitmentSource}; +use penumbra_sdk_tct as tct; use tracing::instrument; use crate::component::circuit_breaker::value::ValueCircuitBreaker; @@ -12,7 +12,7 @@ use crate::{ component::flow::SwapFlow, state_key, swap::SwapPayload, DirectedTradingPair, TradingPair, }; use anyhow::Result; -use penumbra_proto::StateWriteProto; +use penumbra_sdk_proto::StateWriteProto; /// Manages the addition of new notes to the chain state. #[async_trait] diff --git a/crates/core/component/dex/src/component/tests.rs b/crates/core/component/dex/src/component/tests.rs index 318852c13e..6282be1187 100644 --- a/crates/core/component/dex/src/component/tests.rs +++ b/crates/core/component/dex/src/component/tests.rs @@ -4,8 +4,8 @@ use anyhow::Ok; use async_trait::async_trait; use cnidarium::{ArcStateDeltaExt, StateDelta, TempStorage}; use futures::StreamExt; -use penumbra_asset::{asset, Value}; -use penumbra_num::Amount; +use penumbra_sdk_asset::{asset, Value}; +use penumbra_sdk_num::Amount; use rand_core::OsRng; use crate::component::{SwapDataRead, SwapDataWrite}; @@ -30,13 +30,13 @@ pub trait TempStorageExt: Sized { #[async_trait] impl TempStorageExt for TempStorage { async fn apply_minimal_genesis(self) -> anyhow::Result { - use penumbra_sct::component::clock::EpochManager as _; + use penumbra_sdk_sct::component::clock::EpochManager as _; let mut state = StateDelta::new(self.latest_snapshot()); state.put_block_height(0); state.put_epoch_by_height( 0, - penumbra_sct::epoch::Epoch { + penumbra_sdk_sct::epoch::Epoch { index: 0, start_height: 0, }, @@ -679,7 +679,7 @@ async fn swap_execution_tests() -> anyhow::Result<()> { tracing::info!(gm_id = ?gm.id()); tracing::info!(gn_id = ?gn.id()); tracing::info!(pusd_id = ?pusd.id()); - tracing::info!(penumbra_id = ?penumbra.id()); + tracing::info!(penumbra_sdk_id = ?penumbra.id()); // Working backwards through the graph: @@ -809,7 +809,7 @@ async fn basic_cycle_arb() -> anyhow::Result<()> { tracing::info!(gm_id = ?gm.id()); tracing::info!(gn_id = ?gn.id()); - tracing::info!(penumbra_id = ?penumbra.id()); + tracing::info!(penumbra_sdk_id = ?penumbra.id()); // Sell 10 gn at 1 penumbra each. state_tx @@ -886,10 +886,10 @@ async fn reproduce_arbitrage_loop_testnet_53() -> anyhow::Result<()> { .get_unit("test_usd") .unwrap(); - tracing::info!(penumbra_id= ?penumbra.id()); + tracing::info!(penumbra_sdk_id= ?penumbra.id()); tracing::info!(test_usd_id = ?test_usd.id()); - let penumbra_usd = DirectedUnitPair::new(penumbra.clone(), test_usd.clone()); + let penumbra_sdk_usd = DirectedUnitPair::new(penumbra.clone(), test_usd.clone()); /* * INITIAL STATE: @@ -921,13 +921,13 @@ async fn reproduce_arbitrage_loop_testnet_53() -> anyhow::Result<()> { * */ - let mut buy_1 = create_buy(penumbra_usd.clone(), 1u64.into(), 110u64.into()); + let mut buy_1 = create_buy(penumbra_sdk_usd.clone(), 1u64.into(), 110u64.into()); buy_1.nonce = [1; 32]; - let mut buy_2 = create_buy(penumbra_usd.clone(), 1u64.into(), 100u64.into()); + let mut buy_2 = create_buy(penumbra_sdk_usd.clone(), 1u64.into(), 100u64.into()); buy_2.nonce = [2; 32]; - let mut sell_1 = create_sell(penumbra_usd.clone(), 10u64.into(), 100u64.into()); + let mut sell_1 = create_sell(penumbra_sdk_usd.clone(), 10u64.into(), 100u64.into()); sell_1.nonce = [0; 32]; state_tx.open_position(buy_1).await.unwrap(); @@ -1028,7 +1028,7 @@ async fn check_routable_asset_ordering() -> anyhow::Result<()> { let gn = asset::Cache::with_known_assets().get_unit("gn").unwrap(); let gm = asset::Cache::with_known_assets().get_unit("gm").unwrap(); - let penumbra_usd = DirectedTradingPair::new(penumbra.id(), test_usd.id()); + let penumbra_sdk_usd = DirectedTradingPair::new(penumbra.id(), test_usd.id()); let reserves_1 = Reserves { // 0 penumbra @@ -1039,7 +1039,7 @@ async fn check_routable_asset_ordering() -> anyhow::Result<()> { let position_1 = Position::new( OsRng, - penumbra_usd, + penumbra_sdk_usd, 0u32, 1_200_000u64.into(), 1_000_000u64.into(), @@ -1048,7 +1048,7 @@ async fn check_routable_asset_ordering() -> anyhow::Result<()> { state_tx.open_position(position_1).await.unwrap(); - let penumbra_gn = DirectedTradingPair::new(penumbra.id(), gn.id()); + let penumbra_sdk_gn = DirectedTradingPair::new(penumbra.id(), gn.id()); let reserves_2 = Reserves { // 130,000 penumbra @@ -1059,7 +1059,7 @@ async fn check_routable_asset_ordering() -> anyhow::Result<()> { let position_2 = Position::new( OsRng, - penumbra_gn, + penumbra_sdk_gn, 0u32, 1_200_000u64.into(), 1_000_000u64.into(), @@ -1068,7 +1068,7 @@ async fn check_routable_asset_ordering() -> anyhow::Result<()> { state_tx.open_position(position_2).await.unwrap(); - let penumbra_btc = DirectedTradingPair::new(penumbra.id(), test_btc.id()); + let penumbra_sdk_btc = DirectedTradingPair::new(penumbra.id(), test_btc.id()); let reserves_3 = Reserves { // 100,000 penumbra @@ -1079,7 +1079,7 @@ async fn check_routable_asset_ordering() -> anyhow::Result<()> { let position_3 = Position::new( OsRng, - penumbra_btc, + penumbra_sdk_btc, 0u32, 1_200_000u64.into(), 1_000_000u64.into(), diff --git a/crates/core/component/dex/src/event.rs b/crates/core/component/dex/src/event.rs index 5e2f052ead..8b39d6a7e3 100644 --- a/crates/core/component/dex/src/event.rs +++ b/crates/core/component/dex/src/event.rs @@ -5,11 +5,11 @@ use crate::{ BatchSwapOutputData, CandlestickData, DirectedTradingPair, SwapExecution, TradingPair, }; use anyhow::{anyhow, Context}; -use penumbra_asset::asset; -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; -use penumbra_sct::Nullifier; -use penumbra_tct::StateCommitment; +use penumbra_sdk_asset::asset; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_tct::StateCommitment; use prost::Name as _; #[derive(Clone, Debug)] diff --git a/crates/core/component/dex/src/genesis.rs b/crates/core/component/dex/src/genesis.rs index 943fb6ad65..73c467ac60 100644 --- a/crates/core/component/dex/src/genesis.rs +++ b/crates/core/component/dex/src/genesis.rs @@ -1,5 +1,5 @@ use anyhow::Context; -use penumbra_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::DexParameters; diff --git a/crates/core/component/dex/src/lp/action.rs b/crates/core/component/dex/src/lp/action.rs index 6c399e4282..70267f31de 100644 --- a/crates/core/component/dex/src/lp/action.rs +++ b/crates/core/component/dex/src/lp/action.rs @@ -1,8 +1,8 @@ use serde::{Deserialize, Serialize}; -use penumbra_asset::{balance, Balance, Value}; -use penumbra_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_asset::{balance, Balance, Value}; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use super::{position, position::Position, LpNft}; diff --git a/crates/core/component/dex/src/lp/nft.rs b/crates/core/component/dex/src/lp/nft.rs index fe4174b1d6..8f9049d9a7 100644 --- a/crates/core/component/dex/src/lp/nft.rs +++ b/crates/core/component/dex/src/lp/nft.rs @@ -1,5 +1,5 @@ -use penumbra_asset::asset; -use penumbra_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_asset::asset; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; use regex::Regex; use super::position::{Id, State}; @@ -150,7 +150,7 @@ impl From for pb::LpNft { #[cfg(test)] mod tests { use super::*; - use penumbra_asset::STAKING_TOKEN_ASSET_ID; + use penumbra_sdk_asset::STAKING_TOKEN_ASSET_ID; use super::super::{super::DirectedTradingPair, position::*}; diff --git a/crates/core/component/dex/src/lp/order.rs b/crates/core/component/dex/src/lp/order.rs index ff15e7f6c5..f27dde8a3c 100644 --- a/crates/core/component/dex/src/lp/order.rs +++ b/crates/core/component/dex/src/lp/order.rs @@ -1,9 +1,9 @@ use anyhow::{anyhow, Result}; -use penumbra_asset::{ +use penumbra_sdk_asset::{ asset::{self, Unit}, Value, }; -use penumbra_num::{fixpoint::U128x128, Amount}; +use penumbra_sdk_num::{fixpoint::U128x128, Amount}; use rand_core::CryptoRngCore; use regex::Regex; diff --git a/crates/core/component/dex/src/lp/plan.rs b/crates/core/component/dex/src/lp/plan.rs index d74208353e..ed26d1c903 100644 --- a/crates/core/component/dex/src/lp/plan.rs +++ b/crates/core/component/dex/src/lp/plan.rs @@ -1,7 +1,7 @@ use ark_ff::Zero; use decaf377::Fr; -use penumbra_asset::{balance, Balance, Value}; -use penumbra_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_asset::{balance, Balance, Value}; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::{ diff --git a/crates/core/component/dex/src/lp/position.rs b/crates/core/component/dex/src/lp/position.rs index 85029612de..1c05923053 100644 --- a/crates/core/component/dex/src/lp/position.rs +++ b/crates/core/component/dex/src/lp/position.rs @@ -1,7 +1,7 @@ use anyhow::{anyhow, Context}; -use penumbra_asset::{asset, Value}; -use penumbra_num::Amount; -use penumbra_proto::{ +use penumbra_sdk_asset::{asset, Value}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{ penumbra::core::component::dex::v1 as pb, serializers::bech32str, DomainType, }; use rand_core::CryptoRngCore; @@ -433,7 +433,7 @@ mod test { use super::*; use ark_ff::Zero; use decaf377::Fq; - use penumbra_asset::asset; + use penumbra_sdk_asset::asset; use rand_core::OsRng; #[test] diff --git a/crates/core/component/dex/src/lp/reserves.rs b/crates/core/component/dex/src/lp/reserves.rs index 215d12aa5c..bfc5e98e95 100644 --- a/crates/core/component/dex/src/lp/reserves.rs +++ b/crates/core/component/dex/src/lp/reserves.rs @@ -1,6 +1,6 @@ -use penumbra_asset::{Balance, Value}; -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_asset::{Balance, Value}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; use crate::TradingPair; diff --git a/crates/core/component/dex/src/lp/trading_function.rs b/crates/core/component/dex/src/lp/trading_function.rs index 8db44f981a..456813e5fd 100644 --- a/crates/core/component/dex/src/lp/trading_function.rs +++ b/crates/core/component/dex/src/lp/trading_function.rs @@ -1,7 +1,7 @@ use anyhow::{anyhow, Result}; -use penumbra_asset::{asset, Value}; -use penumbra_num::{fixpoint::U128x128, Amount}; -use penumbra_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_asset::{asset, Value}; +use penumbra_sdk_num::{fixpoint::U128x128, Amount}; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use tracing::instrument; @@ -488,7 +488,7 @@ impl From for pb::BareTradingFunction { mod tests { use ark_ff::Zero; use decaf377::Fq; - use penumbra_asset::asset::Id; + use penumbra_sdk_asset::asset::Id; use super::*; diff --git a/crates/core/component/dex/src/params.rs b/crates/core/component/dex/src/params.rs index ea497ff4b2..0da9223e3a 100644 --- a/crates/core/component/dex/src/params.rs +++ b/crates/core/component/dex/src/params.rs @@ -1,6 +1,6 @@ -use penumbra_asset::{asset, STAKING_TOKEN_ASSET_ID}; -use penumbra_proto::penumbra::core::component::dex::v1 as pb; -use penumbra_proto::DomainType; +use penumbra_sdk_asset::{asset, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_proto::penumbra::core::component::dex::v1 as pb; +use penumbra_sdk_proto::DomainType; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] diff --git a/crates/core/component/dex/src/state_key.rs b/crates/core/component/dex/src/state_key.rs index 01e653de27..6ce4e5ccb6 100644 --- a/crates/core/component/dex/src/state_key.rs +++ b/crates/core/component/dex/src/state_key.rs @@ -1,8 +1,6 @@ -use std::string::String; - -use penumbra_asset::asset; - use crate::{lp::position, DirectedTradingPair, TradingPair}; +use penumbra_sdk_asset::asset; +use std::string::String; pub mod config { pub fn dex_params() -> &'static str { @@ -146,8 +144,8 @@ pub(crate) mod engine { } pub(crate) mod routable_assets { - use penumbra_asset::asset; - use penumbra_num::Amount; + use penumbra_sdk_asset::asset; + use penumbra_sdk_num::Amount; use super::*; @@ -224,7 +222,7 @@ pub(crate) mod eviction_queue { use crate::lp::position; use crate::DirectedTradingPair; use anyhow::ensure; - use penumbra_num::Amount; + use penumbra_sdk_num::Amount; pub(crate) fn by_trading_pair(pair: &DirectedTradingPair) -> [u8; 107] { let mut prefix = [0u8; 107]; diff --git a/crates/core/component/dex/src/swap/action.rs b/crates/core/component/dex/src/swap/action.rs index 2ac4859a78..805296cf6b 100644 --- a/crates/core/component/dex/src/swap/action.rs +++ b/crates/core/component/dex/src/swap/action.rs @@ -1,12 +1,12 @@ use anyhow::Context; use ark_ff::Zero; use decaf377::Fr; -use penumbra_asset::{balance, Balance, Value}; -use penumbra_num::Amount; -use penumbra_proto::{ +use penumbra_sdk_asset::{balance, Balance, Value}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{ core::component::dex::v1 as pbc, penumbra::core::component::dex::v1 as pb, DomainType, }; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; use crate::TradingPair; diff --git a/crates/core/component/dex/src/swap/ciphertext.rs b/crates/core/component/dex/src/swap/ciphertext.rs index 5594c9dcfd..cebd8eb608 100644 --- a/crates/core/component/dex/src/swap/ciphertext.rs +++ b/crates/core/component/dex/src/swap/ciphertext.rs @@ -1,7 +1,7 @@ use anyhow::Result; -use penumbra_keys::{keys::OutgoingViewingKey, PayloadKey}; -use penumbra_shielded_pool::note; +use penumbra_sdk_keys::{keys::OutgoingViewingKey, PayloadKey}; +use penumbra_sdk_shielded_pool::note; use super::{SwapPlaintext, SWAP_CIPHERTEXT_BYTES, SWAP_LEN_BYTES}; diff --git a/crates/core/component/dex/src/swap/payload.rs b/crates/core/component/dex/src/swap/payload.rs index 0b4b648c22..57f3ec2cd0 100644 --- a/crates/core/component/dex/src/swap/payload.rs +++ b/crates/core/component/dex/src/swap/payload.rs @@ -1,6 +1,6 @@ use anyhow::anyhow; -use penumbra_keys::FullViewingKey; -use penumbra_proto::penumbra::core::component::dex::v1 as pb; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_proto::penumbra::core::component::dex::v1 as pb; use serde::{Deserialize, Serialize}; use super::{SwapCiphertext, SwapPlaintext}; @@ -8,7 +8,7 @@ use super::{SwapCiphertext, SwapPlaintext}; #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(try_from = "pb::SwapPayload", into = "pb::SwapPayload")] pub struct SwapPayload { - pub commitment: penumbra_tct::StateCommitment, + pub commitment: penumbra_sdk_tct::StateCommitment, pub encrypted_swap: SwapCiphertext, } diff --git a/crates/core/component/dex/src/swap/plaintext.rs b/crates/core/component/dex/src/swap/plaintext.rs index f570cdaa02..0c738cf84e 100644 --- a/crates/core/component/dex/src/swap/plaintext.rs +++ b/crates/core/component/dex/src/swap/plaintext.rs @@ -5,20 +5,20 @@ use ark_relations::r1cs::SynthesisError; use decaf377::r1cs::FqVar; use decaf377::Fq; use once_cell::sync::Lazy; -use penumbra_fee::Fee; -use penumbra_proto::{ +use penumbra_sdk_fee::Fee; +use penumbra_sdk_proto::{ core::keys::v1 as pb_keys, penumbra::core::component::dex::v1 as pb, DomainType, }; -use penumbra_tct::StateCommitment; +use penumbra_sdk_tct::StateCommitment; use poseidon377::{hash_1, hash_4, hash_7}; use rand_core::{CryptoRng, RngCore}; use decaf377_ka as ka; -use penumbra_asset::{asset, Value, ValueVar}; -use penumbra_keys::{keys::OutgoingViewingKey, Address, AddressVar, PayloadKey}; -use penumbra_num::{Amount, AmountVar}; -use penumbra_shielded_pool::{Note, Rseed}; -use penumbra_tct::r1cs::StateCommitmentVar; +use penumbra_sdk_asset::{asset, Value, ValueVar}; +use penumbra_sdk_keys::{keys::OutgoingViewingKey, Address, AddressVar, PayloadKey}; +use penumbra_sdk_num::{Amount, AmountVar}; +use penumbra_sdk_shielded_pool::{Note, Rseed}; +use penumbra_sdk_tct::r1cs::StateCommitmentVar; use crate::{BatchSwapOutputData, TradingPair, TradingPairVar}; @@ -420,8 +420,8 @@ mod tests { use rand_core::OsRng; use super::*; - use penumbra_asset::{asset, Value}; - use penumbra_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; + use penumbra_sdk_asset::{asset, Value}; + use penumbra_sdk_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; #[test] /// Check the swap plaintext can be encrypted and decrypted with the OVK. diff --git a/crates/core/component/dex/src/swap/plan.rs b/crates/core/component/dex/src/swap/plan.rs index 61b7f3097c..8523a5081c 100644 --- a/crates/core/component/dex/src/swap/plan.rs +++ b/crates/core/component/dex/src/swap/plan.rs @@ -2,9 +2,9 @@ use anyhow::{anyhow, Context, Result}; use ark_ff::Zero; use decaf377::{Fq, Fr}; -use penumbra_asset::{balance, Balance, Value}; -use penumbra_keys::FullViewingKey; -use penumbra_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_asset::{balance, Balance, Value}; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; use rand_core::{CryptoRng, RngCore}; use serde::{Deserialize, Serialize}; @@ -57,7 +57,7 @@ impl SwapPlan { /// Construct the [`SwapProof`] required by the [`swap::Body`] described by this [`SwapPlan`]. pub fn swap_proof(&self) -> SwapProof { - use penumbra_proof_params::SWAP_PROOF_PROVING_KEY; + use penumbra_sdk_proof_params::SWAP_PROOF_PROVING_KEY; let balance_commitment = self.transparent_balance().commit(Fr::zero()) + self.fee_commitment(); diff --git a/crates/core/component/dex/src/swap/proof.rs b/crates/core/component/dex/src/swap/proof.rs index 08b12a41e3..a4b85b074b 100644 --- a/crates/core/component/dex/src/swap/proof.rs +++ b/crates/core/component/dex/src/swap/proof.rs @@ -11,25 +11,25 @@ use decaf377::Bls12_377; use decaf377::{Fq, Fr}; use decaf377_fmd as fmd; use decaf377_ka as ka; -use penumbra_fee::Fee; -use penumbra_proto::{core::component::dex::v1 as pb, DomainType}; -use penumbra_tct as tct; -use penumbra_tct::r1cs::StateCommitmentVar; +use penumbra_sdk_fee::Fee; +use penumbra_sdk_proto::{core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_tct as tct; +use penumbra_sdk_tct::r1cs::StateCommitmentVar; -use penumbra_asset::{ +use penumbra_sdk_asset::{ asset, balance::{self, commitment::BalanceCommitmentVar, BalanceVar}, Value, }; -use penumbra_keys::{keys::Diversifier, Address}; -use penumbra_shielded_pool::Rseed; +use penumbra_sdk_keys::{keys::Diversifier, Address}; +use penumbra_sdk_shielded_pool::Rseed; use crate::{ swap::{SwapPlaintext, SwapPlaintextVar}, TradingPair, }; -use penumbra_proof_params::{DummyWitness, GROTH16_PROOF_LENGTH_BYTES}; +use penumbra_sdk_proof_params::{DummyWitness, GROTH16_PROOF_LENGTH_BYTES}; /// The public inputs to a [`SwapProof`]. #[derive(Clone, Debug)] @@ -53,7 +53,7 @@ pub struct SwapProofPrivate { #[cfg(test)] fn check_satisfaction(public: &SwapProofPublic, private: &SwapProofPrivate) -> Result<()> { - use penumbra_asset::Balance; + use penumbra_sdk_asset::Balance; let swap_commitment = private.swap_plaintext.swap_commitment(); if swap_commitment != public.swap_commitment { @@ -293,9 +293,9 @@ impl TryFrom for SwapProof { #[cfg(test)] mod tests { use super::*; - use penumbra_asset::{Balance, Value}; - use penumbra_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; - use penumbra_num::Amount; + use penumbra_sdk_asset::{Balance, Value}; + use penumbra_sdk_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; + use penumbra_sdk_num::Amount; use proptest::prelude::*; fn fr_strategy() -> BoxedStrategy { diff --git a/crates/core/component/dex/src/swap/view.rs b/crates/core/component/dex/src/swap/view.rs index db50783eeb..c8d2c1bf64 100644 --- a/crates/core/component/dex/src/swap/view.rs +++ b/crates/core/component/dex/src/swap/view.rs @@ -1,7 +1,7 @@ -use penumbra_asset::{asset::Metadata, ValueView}; -use penumbra_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; -use penumbra_shielded_pool::NoteView; -use penumbra_txhash::TransactionId; +use penumbra_sdk_asset::{asset::Metadata, ValueView}; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_shielded_pool::NoteView; +use penumbra_sdk_txhash::TransactionId; use serde::{Deserialize, Serialize}; use crate::BatchSwapOutputData; diff --git a/crates/core/component/dex/src/swap_claim/action.rs b/crates/core/component/dex/src/swap_claim/action.rs index 61158b7ba0..08975d73ca 100644 --- a/crates/core/component/dex/src/swap_claim/action.rs +++ b/crates/core/component/dex/src/swap_claim/action.rs @@ -1,11 +1,11 @@ use anyhow::Context; -use penumbra_asset::Balance; -use penumbra_fee::Fee; -use penumbra_proof_params::GROTH16_PROOF_LENGTH_BYTES; -use penumbra_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; -use penumbra_sct::Nullifier; -use penumbra_tct as tct; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_asset::Balance; +use penumbra_sdk_fee::Fee; +use penumbra_sdk_proof_params::GROTH16_PROOF_LENGTH_BYTES; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_tct as tct; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; use crate::BatchSwapOutputData; diff --git a/crates/core/component/dex/src/swap_claim/plan.rs b/crates/core/component/dex/src/swap_claim/plan.rs index a6e70f8fd2..8cf6931ac0 100644 --- a/crates/core/component/dex/src/swap_claim/plan.rs +++ b/crates/core/component/dex/src/swap_claim/plan.rs @@ -1,10 +1,10 @@ use decaf377::Fq; -use penumbra_asset::{Balance, Value}; -use penumbra_keys::{keys::IncomingViewingKey, FullViewingKey}; -use penumbra_proof_params::SWAPCLAIM_PROOF_PROVING_KEY; -use penumbra_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; -use penumbra_sct::Nullifier; -use penumbra_tct as tct; +use penumbra_sdk_asset::{Balance, Value}; +use penumbra_sdk_keys::{keys::IncomingViewingKey, FullViewingKey}; +use penumbra_sdk_proof_params::SWAPCLAIM_PROOF_PROVING_KEY; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_tct as tct; use serde::{Deserialize, Serialize}; use tct::Position; diff --git a/crates/core/component/dex/src/swap_claim/proof.rs b/crates/core/component/dex/src/swap_claim/proof.rs index 8ea7e8ab50..79f4546305 100644 --- a/crates/core/component/dex/src/swap_claim/proof.rs +++ b/crates/core/component/dex/src/swap_claim/proof.rs @@ -9,22 +9,22 @@ use ark_serialize::{CanonicalDeserialize, CanonicalSerialize}; use ark_snark::SNARK; use decaf377::{r1cs::FqVar, Bls12_377, Fq}; use decaf377_rdsa::{SpendAuth, VerificationKey}; -use penumbra_fee::Fee; -use penumbra_proto::{core::component::dex::v1 as pb, DomainType}; -use penumbra_tct as tct; -use penumbra_tct::r1cs::StateCommitmentVar; +use penumbra_sdk_fee::Fee; +use penumbra_sdk_proto::{core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_tct as tct; +use penumbra_sdk_tct::r1cs::StateCommitmentVar; -use penumbra_asset::{ +use penumbra_sdk_asset::{ asset::{self, Id}, Value, ValueVar, }; -use penumbra_keys::keys::{ +use penumbra_sdk_keys::keys::{ AuthorizationKeyVar, Bip44Path, IncomingViewingKeyVar, NullifierKey, NullifierKeyVar, SeedPhrase, SpendKey, }; -use penumbra_num::{Amount, AmountVar}; -use penumbra_sct::{Nullifier, NullifierVar}; -use penumbra_shielded_pool::{ +use penumbra_sdk_num::{Amount, AmountVar}; +use penumbra_sdk_sct::{Nullifier, NullifierVar}; +use penumbra_sdk_shielded_pool::{ note::{self, NoteVar}, Rseed, }; @@ -37,7 +37,7 @@ use crate::{ BatchSwapOutputData, TradingPair, }; -use penumbra_proof_params::{DummyWitness, GROTH16_PROOF_LENGTH_BYTES}; +use penumbra_sdk_proof_params::{DummyWitness, GROTH16_PROOF_LENGTH_BYTES}; /// The public inputs to a [`SwapProofPublic`]. #[derive(Clone, Debug)] @@ -82,7 +82,7 @@ fn check_satisfaction( public: &SwapClaimProofPublic, private: &SwapClaimProofPrivate, ) -> Result<()> { - use penumbra_keys::FullViewingKey; + use penumbra_sdk_keys::FullViewingKey; let swap_commitment = private.swap_plaintext.swap_commitment(); if swap_commitment != private.state_commitment_proof.commitment() { @@ -537,8 +537,8 @@ impl TryFrom for SwapClaimProof { #[cfg(test)] mod tests { use super::*; - use penumbra_keys::keys::{SeedPhrase, SpendKey}; - use penumbra_num::Amount; + use penumbra_sdk_keys::keys::{SeedPhrase, SpendKey}; + use penumbra_sdk_num::Amount; use proptest::prelude::*; #[derive(Debug)] diff --git a/crates/core/component/dex/src/swap_claim/view.rs b/crates/core/component/dex/src/swap_claim/view.rs index 7f8125279f..061b1f4b6f 100644 --- a/crates/core/component/dex/src/swap_claim/view.rs +++ b/crates/core/component/dex/src/swap_claim/view.rs @@ -1,6 +1,6 @@ -use penumbra_proto::{penumbra::core::component::dex::v1 as pbd, DomainType}; -use penumbra_shielded_pool::NoteView; -use penumbra_txhash::TransactionId; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pbd, DomainType}; +use penumbra_sdk_shielded_pool::NoteView; +use penumbra_sdk_txhash::TransactionId; use serde::{Deserialize, Serialize}; use super::SwapClaim; diff --git a/crates/core/component/dex/src/swap_execution.rs b/crates/core/component/dex/src/swap_execution.rs index a602ce74c6..f5a6221a25 100644 --- a/crates/core/component/dex/src/swap_execution.rs +++ b/crates/core/component/dex/src/swap_execution.rs @@ -1,7 +1,7 @@ use anyhow::Result; -use penumbra_asset::Value; -use penumbra_num::fixpoint::U128x128; -use penumbra_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_asset::Value; +use penumbra_sdk_num::fixpoint::U128x128; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; /// Contains the summary data of a trade, for client consumption. diff --git a/crates/core/component/dex/src/trading_pair.rs b/crates/core/component/dex/src/trading_pair.rs index 6b41328588..936c3ec675 100644 --- a/crates/core/component/dex/src/trading_pair.rs +++ b/crates/core/component/dex/src/trading_pair.rs @@ -3,14 +3,14 @@ use ark_ff::ToConstraintField; use ark_r1cs_std::prelude::{AllocVar, EqGadget}; use ark_relations::r1cs::SynthesisError; use decaf377::Fq; -use penumbra_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::dex::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use std::{ fmt::{self, Display, Formatter}, str::FromStr, }; -use penumbra_asset::asset::{self, AssetIdVar, Unit, REGISTRY}; +use penumbra_sdk_asset::asset::{self, AssetIdVar, Unit, REGISTRY}; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Ord, PartialOrd, Serialize, Deserialize)] #[serde(try_from = "pb::DirectedTradingPair", into = "pb::DirectedTradingPair")] diff --git a/crates/core/component/dex/tests/integration/harness.rs b/crates/core/component/dex/tests/integration/harness.rs index a9348fd592..4c3e7f7f0f 100644 --- a/crates/core/component/dex/tests/integration/harness.rs +++ b/crates/core/component/dex/tests/integration/harness.rs @@ -8,8 +8,8 @@ //! The outcome consists of the remaining reserves for each position, and the output for each swapper. use cnidarium::{Snapshot, StateDelta, TempStorage}; use cnidarium_component::{ActionHandler, Component}; -use penumbra_asset::asset; -use penumbra_dex::{ +use penumbra_sdk_asset::asset; +use penumbra_sdk_dex::{ component::{Dex, PositionRead, StateReadExt}, lp::{ position::{self, Position}, @@ -19,10 +19,10 @@ use penumbra_dex::{ BatchSwapOutputData, DirectedTradingPair, PositionClose, PositionOpen, PositionWithdraw, Swap, TradingPair, }; -use penumbra_keys::test_keys; -use penumbra_num::Amount; -use penumbra_proto::core::component::dex::v1::ZkSwapProof; -use penumbra_sct::{ +use penumbra_sdk_keys::test_keys; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::core::component::dex::v1::ZkSwapProof; +use penumbra_sdk_sct::{ component::{clock::EpochManager, source::SourceContext}, epoch::Epoch, }; diff --git a/crates/core/component/distributions/Cargo.toml b/crates/core/component/distributions/Cargo.toml index be1e9a6598..f6c31d9357 100644 --- a/crates/core/component/distributions/Cargo.toml +++ b/crates/core/component/distributions/Cargo.toml @@ -1,14 +1,18 @@ [package] -name = "penumbra-distributions" +name = "penumbra-sdk-distributions" +authors = {workspace = true} +repository = {workspace = true} +description = "Distribution component implementation for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] component = [ "cnidarium-component", "cnidarium", - "penumbra-proto/cnidarium", - "penumbra-sct/component", + "penumbra-sdk-proto/cnidarium", + "penumbra-sdk-sct/component", ] default = ["component"] docsrs = [] @@ -18,10 +22,10 @@ anyhow = {workspace = true} async-trait = {workspace = true} cnidarium = {workspace = true, optional = true, default-features = true} cnidarium-component = {workspace = true, optional = true, default-features = true} -penumbra-asset = {workspace = true, default-features = false} -penumbra-num = {workspace = true, default-features = false} -penumbra-proto = {workspace = true, default-features = false} -penumbra-sct = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = false} +penumbra-sdk-num = {workspace = true, default-features = false} +penumbra-sdk-proto = {workspace = true, default-features = false} +penumbra-sdk-sct = {workspace = true, default-features = false} serde = {workspace = true, features = ["derive"]} tendermint = {workspace = true} tracing = {workspace = true} diff --git a/crates/core/component/distributions/src/component.rs b/crates/core/component/distributions/src/component.rs index 4abeaff0a4..7ff7217fe1 100644 --- a/crates/core/component/distributions/src/component.rs +++ b/crates/core/component/distributions/src/component.rs @@ -9,7 +9,7 @@ use anyhow::{Context, Result}; use async_trait::async_trait; use cnidarium::StateWrite; use cnidarium_component::Component; -use penumbra_num::Amount; +use penumbra_sdk_num::Amount; use tendermint::v0_37::abci; use tracing::instrument; @@ -58,7 +58,7 @@ impl Component for Distributions { trait DistributionManager: StateWriteExt { /// Compute the total new issuance of staking tokens for this epoch. async fn compute_new_issuance(&self) -> Result { - use penumbra_sct::component::clock::EpochRead; + use penumbra_sdk_sct::component::clock::EpochRead; let current_block_height = self.get_block_height().await?; let current_epoch = self.get_current_epoch().await?; diff --git a/crates/core/component/distributions/src/component/view.rs b/crates/core/component/distributions/src/component/view.rs index e674316e12..b348cf9510 100644 --- a/crates/core/component/distributions/src/component/view.rs +++ b/crates/core/component/distributions/src/component/view.rs @@ -3,8 +3,8 @@ use async_trait::async_trait; use crate::{component::state_key, params::DistributionsParameters}; use anyhow::Result; use cnidarium::{StateRead, StateWrite}; -use penumbra_num::Amount; -use penumbra_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; #[async_trait] pub trait StateReadExt: StateRead { diff --git a/crates/core/component/distributions/src/genesis.rs b/crates/core/component/distributions/src/genesis.rs index eca8566e18..1b74ec6b4f 100644 --- a/crates/core/component/distributions/src/genesis.rs +++ b/crates/core/component/distributions/src/genesis.rs @@ -1,5 +1,5 @@ use anyhow::Context; -use penumbra_proto::{penumbra::core::component::distributions::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::distributions::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::params::DistributionsParameters; diff --git a/crates/core/component/distributions/src/params.rs b/crates/core/component/distributions/src/params.rs index 10ccf3cbb2..87c05730a7 100644 --- a/crates/core/component/distributions/src/params.rs +++ b/crates/core/component/distributions/src/params.rs @@ -1,5 +1,5 @@ -use penumbra_proto::core::component::distributions::v1 as pb; -use penumbra_proto::DomainType; +use penumbra_sdk_proto::core::component::distributions::v1 as pb; +use penumbra_sdk_proto::DomainType; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] diff --git a/crates/core/component/fee/Cargo.toml b/crates/core/component/fee/Cargo.toml index 0ffb446f4f..ad7979cca5 100644 --- a/crates/core/component/fee/Cargo.toml +++ b/crates/core/component/fee/Cargo.toml @@ -1,15 +1,19 @@ [package] -name = "penumbra-fee" +name = "penumbra-sdk-fee" +authors = {workspace = true} +repository = {workspace = true} +description = "Multidimensional fee implementation for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] component = [ "cnidarium-component", "cnidarium", - "penumbra-proto/cnidarium", + "penumbra-sdk-proto/cnidarium", "tonic", - "penumbra-proto/rpc" + "penumbra-sdk-proto/rpc" ] default = ["std", "component"] std = ["ark-ff/std"] @@ -27,9 +31,9 @@ decaf377 = {workspace = true, default-features = true} decaf377-rdsa = {workspace = true} im = {workspace = true} metrics = {workspace = true} -penumbra-asset = {workspace = true, default-features = false} -penumbra-num = {workspace = true, default-features = false} -penumbra-proto = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = false} +penumbra-sdk-num = {workspace = true, default-features = false} +penumbra-sdk-proto = {workspace = true, default-features = false} rand = {workspace = true} rand_core = {workspace = true, features = ["getrandom"]} serde = {workspace = true, features = ["derive"]} diff --git a/crates/core/component/fee/src/component.rs b/crates/core/component/fee/src/component.rs index 25ffa10451..48607e2e7f 100644 --- a/crates/core/component/fee/src/component.rs +++ b/crates/core/component/fee/src/component.rs @@ -8,8 +8,8 @@ use crate::{event::EventBlockFees, genesis, Fee}; use async_trait::async_trait; use cnidarium::StateWrite; use cnidarium_component::Component; -use penumbra_proto::state::StateWriteProto as _; -use penumbra_proto::DomainType as _; +use penumbra_sdk_proto::state::StateWriteProto as _; +use penumbra_sdk_proto::DomainType as _; use tendermint::abci; use tracing::instrument; @@ -50,7 +50,7 @@ impl Component for FeeComponent { let fees = state_ref.accumulated_base_fees_and_tips(); let (swapped_base, swapped_tip) = fees - .get(&penumbra_asset::STAKING_TOKEN_ASSET_ID) + .get(&penumbra_sdk_asset::STAKING_TOKEN_ASSET_ID) .cloned() .unwrap_or_default(); diff --git a/crates/core/component/fee/src/component/fee_pay.rs b/crates/core/component/fee/src/component/fee_pay.rs index c0272f5b4c..9245112067 100644 --- a/crates/core/component/fee/src/component/fee_pay.rs +++ b/crates/core/component/fee/src/component/fee_pay.rs @@ -1,9 +1,9 @@ use anyhow::{ensure, Result}; use async_trait::async_trait; use cnidarium::StateWrite; -use penumbra_asset::Value; -use penumbra_proto::core::component::fee::v1 as pb; -use penumbra_proto::state::StateWriteProto as _; +use penumbra_sdk_asset::Value; +use penumbra_sdk_proto::core::component::fee::v1 as pb; +use penumbra_sdk_proto::state::StateWriteProto as _; use crate::{Fee, Gas}; @@ -14,7 +14,7 @@ use super::view::{StateReadExt, StateWriteExt}; pub trait FeePay: StateWrite { /// Uses the provided `fee` to pay for `gas_used`, erroring if the fee is insufficient. async fn pay_fee(&mut self, gas_used: Gas, fee: Fee) -> Result<()> { - let current_gas_prices = if fee.asset_id() == *penumbra_asset::STAKING_TOKEN_ASSET_ID { + let current_gas_prices = if fee.asset_id() == *penumbra_sdk_asset::STAKING_TOKEN_ASSET_ID { self.get_gas_prices() .await .expect("gas prices must be present in state") diff --git a/crates/core/component/fee/src/component/rpc.rs b/crates/core/component/fee/src/component/rpc.rs index f93d1bac44..fd9291a420 100644 --- a/crates/core/component/fee/src/component/rpc.rs +++ b/crates/core/component/fee/src/component/rpc.rs @@ -1,6 +1,8 @@ use async_trait::async_trait; use cnidarium::Storage; -use penumbra_proto::core::component::fee::v1::{self as pb, query_service_server::QueryService}; +use penumbra_sdk_proto::core::component::fee::v1::{ + self as pb, query_service_server::QueryService, +}; use super::StateReadExt; diff --git a/crates/core/component/fee/src/component/view.rs b/crates/core/component/fee/src/component/view.rs index ab95a02a41..8052d05a26 100644 --- a/crates/core/component/fee/src/component/view.rs +++ b/crates/core/component/fee/src/component/view.rs @@ -1,9 +1,9 @@ use anyhow::{anyhow, Result}; use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; -use penumbra_asset::asset; -use penumbra_num::Amount; -use penumbra_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_asset::asset; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; use crate::{params::FeeParameters, state_key, Fee, GasPrices}; diff --git a/crates/core/component/fee/src/event.rs b/crates/core/component/fee/src/event.rs index 5a87c81976..bc6ec25587 100644 --- a/crates/core/component/fee/src/event.rs +++ b/crates/core/component/fee/src/event.rs @@ -1,6 +1,6 @@ use crate::Fee; use anyhow::{anyhow, Context}; -use penumbra_proto::{core::component::fee::v1 as pb, DomainType, Name as _}; +use penumbra_sdk_proto::{core::component::fee::v1 as pb, DomainType, Name as _}; #[derive(Clone, Debug)] pub struct EventBlockFees { diff --git a/crates/core/component/fee/src/fee.rs b/crates/core/component/fee/src/fee.rs index 72cac599c6..16e140a3a2 100644 --- a/crates/core/component/fee/src/fee.rs +++ b/crates/core/component/fee/src/fee.rs @@ -1,11 +1,11 @@ use anyhow::Context; -use penumbra_proto::{penumbra::core::component::fee::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::fee::v1 as pb, DomainType}; use std::fmt; use std::str::FromStr; use decaf377::Fr; -use penumbra_asset::{asset, balance, Balance, Value, STAKING_TOKEN_ASSET_ID}; -use penumbra_num::Amount; +use penumbra_sdk_asset::{asset, balance, Balance, Value, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_num::Amount; // Each fee tier multiplier has an implicit 100 denominator. pub static FEE_TIER_LOW_MULTIPLIER: u32 = 105; diff --git a/crates/core/component/fee/src/gas.rs b/crates/core/component/fee/src/gas.rs index c06bbc170a..3f62e20940 100644 --- a/crates/core/component/fee/src/gas.rs +++ b/crates/core/component/fee/src/gas.rs @@ -3,11 +3,11 @@ use std::{ ops::{Add, AddAssign}, }; -use penumbra_asset::{asset, Value, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_asset::{asset, Value, STAKING_TOKEN_ASSET_ID}; use serde::{Deserialize, Serialize}; -use penumbra_num::Amount; -use penumbra_proto::{core::component::fee::v1 as pb, DomainType}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{core::component::fee::v1 as pb, DomainType}; use crate::Fee; diff --git a/crates/core/component/fee/src/genesis.rs b/crates/core/component/fee/src/genesis.rs index 9ffc74df50..1a973a8c14 100644 --- a/crates/core/component/fee/src/genesis.rs +++ b/crates/core/component/fee/src/genesis.rs @@ -1,5 +1,5 @@ use anyhow::Context; -use penumbra_proto::{penumbra::core::component::fee::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::fee::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::params::FeeParameters; diff --git a/crates/core/component/fee/src/params.rs b/crates/core/component/fee/src/params.rs index 5e7dd78c33..39b0fbaffc 100644 --- a/crates/core/component/fee/src/params.rs +++ b/crates/core/component/fee/src/params.rs @@ -1,6 +1,6 @@ -use penumbra_proto::penumbra::core::component::fee::v1 as pb; +use penumbra_sdk_proto::penumbra::core::component::fee::v1 as pb; -use penumbra_proto::DomainType; +use penumbra_sdk_proto::DomainType; use serde::{Deserialize, Serialize}; use crate::GasPrices; diff --git a/crates/core/component/funding/Cargo.toml b/crates/core/component/funding/Cargo.toml index 477a9215de..7f6ed07d9d 100644 --- a/crates/core/component/funding/Cargo.toml +++ b/crates/core/component/funding/Cargo.toml @@ -1,18 +1,22 @@ [package] -name = "penumbra-funding" +name = "penumbra-sdk-funding" +authors = {workspace = true} +repository = {workspace = true} +description = "Funding component implementation for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] component = [ "cnidarium-component", "cnidarium", - "penumbra-proto/cnidarium", - "penumbra-community-pool/component", - "penumbra-distributions/component", - "penumbra-sct/component", - "penumbra-shielded-pool/component", - "penumbra-stake/component", + "penumbra-sdk-proto/cnidarium", + "penumbra-sdk-community-pool/component", + "penumbra-sdk-distributions/component", + "penumbra-sdk-sct/component", + "penumbra-sdk-shielded-pool/component", + "penumbra-sdk-stake/component", "metrics", "futures" ] @@ -26,14 +30,14 @@ cnidarium = {workspace = true, optional = true, default-features = true} cnidarium-component = {workspace = true, optional = true, default-features = true} futures = {workspace = true, optional = true} metrics = {workspace = true, optional = true} -penumbra-asset = {workspace = true, default-features = true} -penumbra-community-pool = {workspace = true, default-features = false} -penumbra-distributions = {workspace = true, default-features = false} -penumbra-proto = {workspace = true, default-features = false} -penumbra-sct = {workspace = true, default-features = false} -penumbra-num = {workspace = true, default-features = false} -penumbra-shielded-pool = {workspace = true, default-features = false} -penumbra-stake = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = true} +penumbra-sdk-community-pool = {workspace = true, default-features = false} +penumbra-sdk-distributions = {workspace = true, default-features = false} +penumbra-sdk-proto = {workspace = true, default-features = false} +penumbra-sdk-sct = {workspace = true, default-features = false} +penumbra-sdk-num = {workspace = true, default-features = false} +penumbra-sdk-shielded-pool = {workspace = true, default-features = false} +penumbra-sdk-stake = {workspace = true, default-features = false} serde = {workspace = true, features = ["derive"]} tendermint = {workspace = true} tracing = {workspace = true} diff --git a/crates/core/component/funding/src/component.rs b/crates/core/component/funding/src/component.rs index a0ea863ec7..3447562bcf 100644 --- a/crates/core/component/funding/src/component.rs +++ b/crates/core/component/funding/src/component.rs @@ -5,9 +5,9 @@ use ::metrics::{gauge, histogram}; pub use metrics::register_metrics; /* Component implementation */ -use penumbra_asset::{Value, STAKING_TOKEN_ASSET_ID}; -use penumbra_proto::{DomainType, StateWriteProto}; -use penumbra_stake::component::validator_handler::ValidatorDataRead; +use penumbra_sdk_asset::{Value, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_proto::{DomainType, StateWriteProto}; +use penumbra_sdk_stake::component::validator_handler::ValidatorDataRead; pub use view::{StateReadExt, StateWriteExt}; use std::sync::Arc; @@ -56,12 +56,12 @@ impl Component for Funding { // TODO(erwan): scoping these strictly will make it easy to refactor // this code when we introduce additional funding processing logic // e.g. for proposer tips. - use penumbra_community_pool::StateWriteExt as _; - use penumbra_distributions::component::StateReadExt as _; - use penumbra_sct::CommitmentSource; - use penumbra_shielded_pool::component::NoteManager; - use penumbra_stake::funding_stream::Recipient; - use penumbra_stake::StateReadExt as _; + use penumbra_sdk_community_pool::StateWriteExt as _; + use penumbra_sdk_distributions::component::StateReadExt as _; + use penumbra_sdk_sct::CommitmentSource; + use penumbra_sdk_shielded_pool::component::NoteManager; + use penumbra_sdk_stake::funding_stream::Recipient; + use penumbra_sdk_stake::StateReadExt as _; let state = Arc::get_mut(state).expect("state should be unique"); let funding_execution_start = std::time::Instant::now(); diff --git a/crates/core/component/funding/src/component/view.rs b/crates/core/component/funding/src/component/view.rs index 65f1b56013..83fbdd0398 100644 --- a/crates/core/component/funding/src/component/view.rs +++ b/crates/core/component/funding/src/component/view.rs @@ -3,7 +3,7 @@ use async_trait::async_trait; use crate::{component::state_key, params::FundingParameters}; use anyhow::Result; use cnidarium::{StateRead, StateWrite}; -use penumbra_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; #[async_trait] pub trait StateReadExt: StateRead { diff --git a/crates/core/component/funding/src/event.rs b/crates/core/component/funding/src/event.rs index 6d646bfe53..6f15fecaf3 100644 --- a/crates/core/component/funding/src/event.rs +++ b/crates/core/component/funding/src/event.rs @@ -1,6 +1,6 @@ use anyhow::{anyhow, Context}; -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::component::funding::v1 as pb, DomainType, Name as _}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::component::funding::v1 as pb, DomainType, Name as _}; #[derive(Clone, Debug)] pub struct EventFundingStreamReward { diff --git a/crates/core/component/funding/src/genesis.rs b/crates/core/component/funding/src/genesis.rs index 7e3847b745..c5005c6a3b 100644 --- a/crates/core/component/funding/src/genesis.rs +++ b/crates/core/component/funding/src/genesis.rs @@ -1,5 +1,5 @@ use anyhow::Context; -use penumbra_proto::{penumbra::core::component::funding::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::funding::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::params::FundingParameters; diff --git a/crates/core/component/funding/src/params.rs b/crates/core/component/funding/src/params.rs index 9ec2bec443..ee5784528a 100644 --- a/crates/core/component/funding/src/params.rs +++ b/crates/core/component/funding/src/params.rs @@ -1,5 +1,5 @@ -use penumbra_proto::core::component::funding::v1 as pb; -use penumbra_proto::DomainType; +use penumbra_sdk_proto::core::component::funding::v1 as pb; +use penumbra_sdk_proto::DomainType; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] diff --git a/crates/core/component/governance/Cargo.toml b/crates/core/component/governance/Cargo.toml index d2f34d04c8..2b2bf191db 100644 --- a/crates/core/component/governance/Cargo.toml +++ b/crates/core/component/governance/Cargo.toml @@ -1,23 +1,27 @@ [package] -name = "penumbra-governance" +name = "penumbra-sdk-governance" +authors = {workspace = true} +repository = {workspace = true} +description = "Governance component implementation for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] component = [ "cnidarium-component", "cnidarium", - "penumbra-proto/cnidarium", - "penumbra-sct/component", - "penumbra-stake/component", + "penumbra-sdk-proto/cnidarium", + "penumbra-sdk-sct/component", + "penumbra-sdk-stake/component", "tokio", "tonic", ] -# proving-keys = ["penumbra-proof-params/proving-keys"] +# proving-keys = ["penumbra-sdk-proof-params/proving-keys"] default = ["std", "component"] std = ["ark-ff/std", "ibc-types/std"] parallel = [ - "penumbra-tct/parallel", + "penumbra-sdk-tct/parallel", "ark-ff/parallel", "decaf377-rdsa/parallel", "ark-groth16/parallel", @@ -49,18 +53,18 @@ im = {workspace = true} metrics = {workspace = true} once_cell = {workspace = true} pbjson-types = {workspace = true} -penumbra-asset = {workspace = true, default-features = false} -penumbra-distributions = {workspace = true, default-features = false} -penumbra-ibc = {workspace = true, default-features = false} -penumbra-keys = {workspace = true, default-features = false} -penumbra-num = {workspace = true, default-features = false} -penumbra-proof-params = {workspace = true, default-features = false} -penumbra-proto = {workspace = true, default-features = false} -penumbra-sct = {workspace = true, default-features = false} -penumbra-shielded-pool = {workspace = true, default-features = false} -penumbra-stake = {workspace = true, default-features = false} -penumbra-tct = {workspace = true, default-features = true} -penumbra-txhash = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = false} +penumbra-sdk-distributions = {workspace = true, default-features = false} +penumbra-sdk-ibc = {workspace = true, default-features = false} +penumbra-sdk-keys = {workspace = true, default-features = false} +penumbra-sdk-num = {workspace = true, default-features = false} +penumbra-sdk-proof-params = {workspace = true, default-features = false} +penumbra-sdk-proto = {workspace = true, default-features = false} +penumbra-sdk-sct = {workspace = true, default-features = false} +penumbra-sdk-shielded-pool = {workspace = true, default-features = false} +penumbra-sdk-stake = {workspace = true, default-features = false} +penumbra-sdk-tct = {workspace = true, default-features = true} +penumbra-sdk-txhash = {workspace = true, default-features = false} rand = {workspace = true} rand_chacha = {workspace = true} rand_core = {workspace = true, features = ["getrandom"]} diff --git a/crates/core/component/governance/src/action_handler/delegator_vote.rs b/crates/core/component/governance/src/action_handler/delegator_vote.rs index 00194240aa..7bdb1ea712 100644 --- a/crates/core/component/governance/src/action_handler/delegator_vote.rs +++ b/crates/core/component/governance/src/action_handler/delegator_vote.rs @@ -3,9 +3,9 @@ use ark_ff::Zero; use async_trait::async_trait; use cnidarium::StateWrite; use decaf377::Fr; -use penumbra_proof_params::DELEGATOR_VOTE_PROOF_VERIFICATION_KEY; -use penumbra_proto::StateWriteProto as _; -use penumbra_txhash::TransactionContext; +use penumbra_sdk_proof_params::DELEGATOR_VOTE_PROOF_VERIFICATION_KEY; +use penumbra_sdk_proto::StateWriteProto as _; +use penumbra_sdk_txhash::TransactionContext; use crate::{ event, DelegatorVote, DelegatorVoteBody, DelegatorVoteProofPublic, diff --git a/crates/core/component/governance/src/action_handler/deposit_claim.rs b/crates/core/component/governance/src/action_handler/deposit_claim.rs index 6cc605f64e..dbd297091b 100644 --- a/crates/core/component/governance/src/action_handler/deposit_claim.rs +++ b/crates/core/component/governance/src/action_handler/deposit_claim.rs @@ -1,8 +1,8 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::StateWrite; -use penumbra_proto::StateWriteProto as _; -use penumbra_shielded_pool::component::AssetRegistry; +use penumbra_sdk_proto::StateWriteProto as _; +use penumbra_sdk_shielded_pool::component::AssetRegistry; use crate::action_handler::ActionHandler; use crate::component::{StateReadExt as _, StateWriteExt as _}; diff --git a/crates/core/component/governance/src/action_handler/validator_vote.rs b/crates/core/component/governance/src/action_handler/validator_vote.rs index 68f9f100a3..ea38722039 100644 --- a/crates/core/component/governance/src/action_handler/validator_vote.rs +++ b/crates/core/component/governance/src/action_handler/validator_vote.rs @@ -1,7 +1,7 @@ use anyhow::{Context, Result}; use async_trait::async_trait; use cnidarium::StateWrite; -use penumbra_proto::{DomainType, StateWriteProto as _}; +use penumbra_sdk_proto::{DomainType, StateWriteProto as _}; use crate::component::StateWriteExt; use crate::event; diff --git a/crates/core/component/governance/src/action_handler/withdraw.rs b/crates/core/component/governance/src/action_handler/withdraw.rs index 43721128cc..54f512ebed 100644 --- a/crates/core/component/governance/src/action_handler/withdraw.rs +++ b/crates/core/component/governance/src/action_handler/withdraw.rs @@ -1,8 +1,8 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::StateWrite; -use penumbra_proto::StateWriteProto as _; -use penumbra_shielded_pool::component::AssetRegistry; +use penumbra_sdk_proto::StateWriteProto as _; +use penumbra_sdk_shielded_pool::component::AssetRegistry; use crate::{ action_handler::ActionHandler, diff --git a/crates/core/component/governance/src/change.rs b/crates/core/component/governance/src/change.rs index e2b877186a..524716c7cc 100644 --- a/crates/core/component/governance/src/change.rs +++ b/crates/core/component/governance/src/change.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use anyhow::Context; -use penumbra_proto::{core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_proto::{core::component::governance::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; /// An encoded parameter. @@ -199,7 +199,7 @@ fn get_component<'a>( #[cfg(test)] mod tests { use super::*; - use penumbra_num::Amount; + use penumbra_sdk_num::Amount; use crate::params::GovernanceParameters; diff --git a/crates/core/component/governance/src/component.rs b/crates/core/component/governance/src/component.rs index 4581dc0d81..0ff33168b2 100644 --- a/crates/core/component/governance/src/component.rs +++ b/crates/core/component/governance/src/component.rs @@ -4,7 +4,7 @@ use crate::{event, genesis}; use anyhow::{Context, Result}; use async_trait::async_trait; use cnidarium::StateWrite; -use penumbra_proto::StateWriteProto as _; +use penumbra_sdk_proto::StateWriteProto as _; use tendermint::v0_37::abci; use tracing::instrument; @@ -24,7 +24,7 @@ pub mod rpc; pub use view::StateReadExt; pub use view::StateWriteExt; -use penumbra_sct::component::clock::EpochRead; +use penumbra_sdk_sct::component::clock::EpochRead; pub struct Governance {} diff --git a/crates/core/component/governance/src/component/rpc.rs b/crates/core/component/governance/src/component/rpc.rs index 7da6c5ede4..21763d74e1 100644 --- a/crates/core/component/governance/src/component/rpc.rs +++ b/crates/core/component/governance/src/component/rpc.rs @@ -5,14 +5,14 @@ use anyhow::Context; use async_stream::try_stream; use cnidarium::Storage; use futures::{StreamExt, TryStreamExt}; -use penumbra_num::Amount; -use penumbra_proto::core::component::governance::v1::AllTalliedDelegatorVotesForProposalRequest; -use penumbra_proto::core::component::governance::v1::AllTalliedDelegatorVotesForProposalResponse; -use penumbra_proto::core::component::governance::v1::NextProposalIdRequest; -use penumbra_proto::core::component::governance::v1::NextProposalIdResponse; -use penumbra_proto::core::component::governance::v1::VotingPowerAtProposalStartRequest; -use penumbra_proto::core::component::governance::v1::VotingPowerAtProposalStartResponse; -use penumbra_proto::{ +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::core::component::governance::v1::AllTalliedDelegatorVotesForProposalRequest; +use penumbra_sdk_proto::core::component::governance::v1::AllTalliedDelegatorVotesForProposalResponse; +use penumbra_sdk_proto::core::component::governance::v1::NextProposalIdRequest; +use penumbra_sdk_proto::core::component::governance::v1::NextProposalIdResponse; +use penumbra_sdk_proto::core::component::governance::v1::VotingPowerAtProposalStartRequest; +use penumbra_sdk_proto::core::component::governance::v1::VotingPowerAtProposalStartResponse; +use penumbra_sdk_proto::{ core::component::governance::v1::{ query_service_server::QueryService, ProposalDataRequest, ProposalDataResponse, ProposalInfoRequest, ProposalInfoResponse, ProposalListRequest, ProposalListResponse, @@ -21,8 +21,8 @@ use penumbra_proto::{ }, StateReadProto, }; -use penumbra_stake::rate::RateData; -use penumbra_stake::IdentityKey; +use penumbra_sdk_stake::rate::RateData; +use penumbra_sdk_stake::IdentityKey; use tonic::Status; use tracing::instrument; diff --git a/crates/core/component/governance/src/component/view.rs b/crates/core/component/governance/src/component/view.rs index a83e2a9e81..4629e8f232 100644 --- a/crates/core/component/governance/src/component/view.rs +++ b/crates/core/component/governance/src/component/view.rs @@ -8,25 +8,25 @@ use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; use futures::StreamExt; use ibc_types::core::client::ClientId; -use penumbra_asset::{asset, Value, STAKING_TOKEN_DENOM}; -use penumbra_ibc::component::ClientStateReadExt as _; -use penumbra_ibc::component::ClientStateWriteExt as _; -use penumbra_num::Amount; -use penumbra_proto::{StateReadProto, StateWriteProto}; -use penumbra_sct::{ +use penumbra_sdk_asset::{asset, Value, STAKING_TOKEN_DENOM}; +use penumbra_sdk_ibc::component::ClientStateReadExt as _; +use penumbra_sdk_ibc::component::ClientStateWriteExt as _; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_sct::{ component::{clock::EpochRead, tree::SctRead}, Nullifier, }; -use penumbra_shielded_pool::component::AssetRegistryRead; -use penumbra_stake::{ +use penumbra_sdk_shielded_pool::component::AssetRegistryRead; +use penumbra_sdk_stake::{ component::{validator_handler::ValidatorDataRead, ConsensusIndexRead}, DelegationToken, GovernanceKey, IdentityKey, }; -use penumbra_tct as tct; +use penumbra_sdk_tct as tct; use tokio::task::JoinSet; use tracing::instrument; -use penumbra_stake::{rate::RateData, validator}; +use penumbra_sdk_stake::{rate::RateData, validator}; use crate::{ change::ParameterChange, @@ -40,7 +40,7 @@ use crate::{ use crate::{state_key, tally::Tally}; #[async_trait] -pub trait StateReadExt: StateRead + penumbra_stake::StateReadExt { +pub trait StateReadExt: StateRead + penumbra_sdk_stake::StateReadExt { /// Returns true if the next height is an upgrade height. /// We look-ahead to the next height because we want to halt the chain immediately after /// committing the block. @@ -584,10 +584,10 @@ pub trait StateReadExt: StateRead + penumbra_stake::StateReadExt { } } -impl StateReadExt for T {} +impl StateReadExt for T {} #[async_trait] -pub trait StateWriteExt: StateWrite + penumbra_ibc::component::ConnectionStateWriteExt { +pub trait StateWriteExt: StateWrite + penumbra_sdk_ibc::component::ConnectionStateWriteExt { /// Writes the provided governance parameters to the JMT. fn put_governance_params(&mut self, params: GovernanceParameters) { // Change the governance parameters: @@ -618,7 +618,7 @@ pub trait StateWriteExt: StateWrite + penumbra_ibc::component::ConnectionStateWr let state = self.get_validator_state(&identity_key); let rate_data = self.get_validator_rate(&identity_key); - let power: penumbra_proto::state::future::DomainFuture< + let power: penumbra_sdk_proto::state::future::DomainFuture< Amount, ::GetRawFut, > = self.get_validator_power(&identity_key); diff --git a/crates/core/component/governance/src/delegator_vote/action.rs b/crates/core/component/governance/src/delegator_vote/action.rs index 3c801d2724..901ae72b76 100644 --- a/crates/core/component/governance/src/delegator_vote/action.rs +++ b/crates/core/component/governance/src/delegator_vote/action.rs @@ -2,12 +2,12 @@ use anyhow::Context; use crate::{vote::Vote, DelegatorVoteProof}; use decaf377_rdsa::{Signature, SpendAuth, VerificationKey}; -use penumbra_asset::Value; -use penumbra_num::Amount; -use penumbra_proto::{core::component::governance::v1 as pb, DomainType}; -use penumbra_sct::Nullifier; -use penumbra_tct as tct; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_asset::Value; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_tct as tct; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; #[derive(Debug, Clone, Copy)] pub struct DelegatorVote { diff --git a/crates/core/component/governance/src/delegator_vote/plan.rs b/crates/core/component/governance/src/delegator_vote/plan.rs index dccd2668cc..3ab0214404 100644 --- a/crates/core/component/governance/src/delegator_vote/plan.rs +++ b/crates/core/component/governance/src/delegator_vote/plan.rs @@ -1,14 +1,14 @@ use ark_ff::Zero; use decaf377::{Fq, Fr}; use decaf377_rdsa::{Signature, SpendAuth}; -use penumbra_asset::{Balance, Value}; -use penumbra_keys::FullViewingKey; -use penumbra_num::Amount; -use penumbra_proof_params::DELEGATOR_VOTE_PROOF_PROVING_KEY; -use penumbra_proto::{core::component::governance::v1 as pb, DomainType}; -use penumbra_sct::Nullifier; -use penumbra_shielded_pool::Note; -use penumbra_tct as tct; +use penumbra_sdk_asset::{Balance, Value}; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proof_params::DELEGATOR_VOTE_PROOF_PROVING_KEY; +use penumbra_sdk_proto::{core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_shielded_pool::Note; +use penumbra_sdk_tct as tct; use rand::{CryptoRng, RngCore}; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/governance/src/delegator_vote/proof.rs b/crates/core/component/governance/src/delegator_vote/proof.rs index 362b270d0c..9a66e36e99 100644 --- a/crates/core/component/governance/src/delegator_vote/proof.rs +++ b/crates/core/component/governance/src/delegator_vote/proof.rs @@ -10,19 +10,19 @@ use ark_snark::SNARK; use base64::{engine::general_purpose, Engine as _}; use decaf377::{r1cs::FqVar, Bls12_377, Fq, Fr}; use decaf377_rdsa::{SpendAuth, VerificationKey}; -use penumbra_asset::{ +use penumbra_sdk_asset::{ balance::{self, commitment::BalanceCommitmentVar, Commitment}, Value, }; -use penumbra_keys::keys::{ +use penumbra_sdk_keys::keys::{ AuthorizationKeyVar, Bip44Path, IncomingViewingKeyVar, NullifierKey, NullifierKeyVar, RandomizedVerificationKey, SeedPhrase, SpendAuthRandomizerVar, SpendKey, }; -use penumbra_proof_params::{DummyWitness, VerifyingKeyExt, GROTH16_PROOF_LENGTH_BYTES}; -use penumbra_proto::{core::component::governance::v1 as pb, DomainType}; -use penumbra_sct::{Nullifier, NullifierVar}; -use penumbra_shielded_pool::{note, Note, Rseed}; -use penumbra_tct::{ +use penumbra_sdk_proof_params::{DummyWitness, VerifyingKeyExt, GROTH16_PROOF_LENGTH_BYTES}; +use penumbra_sdk_proto::{core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_sct::{Nullifier, NullifierVar}; +use penumbra_sdk_shielded_pool::{note, Note, Rseed}; +use penumbra_sdk_tct::{ self as tct, r1cs::{PositionVar, StateCommitmentVar}, Root, @@ -67,7 +67,7 @@ fn check_satisfaction( public: &DelegatorVoteProofPublic, private: &DelegatorVoteProofPrivate, ) -> Result<()> { - use penumbra_keys::keys::FullViewingKey; + use penumbra_sdk_keys::keys::FullViewingKey; let note_commitment = private.note.commit(); if note_commitment != private.state_commitment_proof.commitment() { @@ -421,10 +421,10 @@ mod tests { use super::*; use decaf377::{Fq, Fr}; - use penumbra_asset::{asset, Value}; - use penumbra_keys::keys::{SeedPhrase, SpendKey}; - use penumbra_num::Amount; - use penumbra_sct::Nullifier; + use penumbra_sdk_asset::{asset, Value}; + use penumbra_sdk_keys::keys::{SeedPhrase, SpendKey}; + use penumbra_sdk_num::Amount; + use penumbra_sdk_sct::Nullifier; use proptest::prelude::*; fn fr_strategy() -> BoxedStrategy { diff --git a/crates/core/component/governance/src/delegator_vote/view.rs b/crates/core/component/governance/src/delegator_vote/view.rs index a2120eaa5a..cb87d75105 100644 --- a/crates/core/component/governance/src/delegator_vote/view.rs +++ b/crates/core/component/governance/src/delegator_vote/view.rs @@ -1,5 +1,5 @@ -use penumbra_proto::{core::component::governance::v1 as pbt, DomainType}; -use penumbra_shielded_pool::NoteView; +use penumbra_sdk_proto::{core::component::governance::v1 as pbt, DomainType}; +use penumbra_sdk_shielded_pool::NoteView; use serde::{Deserialize, Serialize}; use crate::DelegatorVote; diff --git a/crates/core/component/governance/src/event.rs b/crates/core/component/governance/src/event.rs index 699f2bd2b4..82103fb93c 100644 --- a/crates/core/component/governance/src/event.rs +++ b/crates/core/component/governance/src/event.rs @@ -1,5 +1,5 @@ -use penumbra_proto::penumbra::core::component::governance::v1 as pb; -use penumbra_stake::IdentityKey; +use penumbra_sdk_proto::penumbra::core::component::governance::v1 as pb; +use penumbra_sdk_stake::IdentityKey; use crate::{ DelegatorVote, Proposal, ProposalDepositClaim, ProposalSubmit, ProposalWithdraw, ValidatorVote, diff --git a/crates/core/component/governance/src/genesis.rs b/crates/core/component/governance/src/genesis.rs index 21ae4a3b51..94e3019f6f 100644 --- a/crates/core/component/governance/src/genesis.rs +++ b/crates/core/component/governance/src/genesis.rs @@ -1,5 +1,5 @@ use anyhow::Context; -use penumbra_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::params::GovernanceParameters; diff --git a/crates/core/component/governance/src/params.rs b/crates/core/component/governance/src/params.rs index 54ae16bf07..a0cc9186c6 100644 --- a/crates/core/component/governance/src/params.rs +++ b/crates/core/component/governance/src/params.rs @@ -1,7 +1,7 @@ use anyhow::Context; -use penumbra_num::Amount; -use penumbra_proto::core::component::governance::v1 as pb; -use penumbra_proto::DomainType; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::core::component::governance::v1 as pb; +use penumbra_sdk_proto::DomainType; use serde::{Deserialize, Serialize}; use crate::tally::Ratio; diff --git a/crates/core/component/governance/src/proposal.rs b/crates/core/component/governance/src/proposal.rs index 8931f2dfc1..ece4e24910 100644 --- a/crates/core/component/governance/src/proposal.rs +++ b/crates/core/component/governance/src/proposal.rs @@ -5,7 +5,7 @@ use serde::{Deserialize, Serialize}; use std::str::FromStr; use crate::change::ParameterChange; -use penumbra_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; /// A governance proposal. #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] diff --git a/crates/core/component/governance/src/proposal_deposit_claim/action.rs b/crates/core/component/governance/src/proposal_deposit_claim/action.rs index 310fcd0e99..424544530a 100644 --- a/crates/core/component/governance/src/proposal_deposit_claim/action.rs +++ b/crates/core/component/governance/src/proposal_deposit_claim/action.rs @@ -1,12 +1,12 @@ use serde::{Deserialize, Serialize}; -use penumbra_asset::{ +use penumbra_sdk_asset::{ asset::{self, Metadata}, Balance, Value, STAKING_TOKEN_ASSET_ID, }; -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use crate::proposal_state::{Outcome, Withdrawn}; diff --git a/crates/core/component/governance/src/proposal_nft.rs b/crates/core/component/governance/src/proposal_nft.rs index 81bdef11be..2dcf971edb 100644 --- a/crates/core/component/governance/src/proposal_nft.rs +++ b/crates/core/component/governance/src/proposal_nft.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use regex::Regex; -use penumbra_asset::asset; +use penumbra_sdk_asset::asset; /// Unbonding tokens represent staking tokens that are currently unbonding and /// subject to slashing. diff --git a/crates/core/component/governance/src/proposal_state.rs b/crates/core/component/governance/src/proposal_state.rs index 5525a2c29e..64d4b36412 100644 --- a/crates/core/component/governance/src/proposal_state.rs +++ b/crates/core/component/governance/src/proposal_state.rs @@ -1,6 +1,6 @@ use serde::{Deserialize, Serialize}; -use penumbra_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; use crate::MAX_VALIDATOR_VOTE_REASON_LENGTH; diff --git a/crates/core/component/governance/src/proposal_submit/action.rs b/crates/core/component/governance/src/proposal_submit/action.rs index 820a0e6f81..ef62e01caa 100644 --- a/crates/core/component/governance/src/proposal_submit/action.rs +++ b/crates/core/component/governance/src/proposal_submit/action.rs @@ -1,9 +1,9 @@ use serde::{Deserialize, Serialize}; -use penumbra_asset::{Balance, Value, STAKING_TOKEN_ASSET_ID}; -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_asset::{Balance, Value, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use crate::proposal::Proposal; diff --git a/crates/core/component/governance/src/proposal_withdraw/action.rs b/crates/core/component/governance/src/proposal_withdraw/action.rs index 2d5b54f0d0..ce7d6beecf 100644 --- a/crates/core/component/governance/src/proposal_withdraw/action.rs +++ b/crates/core/component/governance/src/proposal_withdraw/action.rs @@ -1,9 +1,9 @@ use serde::{Deserialize, Serialize}; -use penumbra_asset::{Balance, Value}; -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_asset::{Balance, Value}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use crate::ProposalNft; diff --git a/crates/core/component/governance/src/state_key.rs b/crates/core/component/governance/src/state_key.rs index a97d183b64..6cf7c0c14d 100644 --- a/crates/core/component/governance/src/state_key.rs +++ b/crates/core/component/governance/src/state_key.rs @@ -1,5 +1,5 @@ -use penumbra_sct::Nullifier; -use penumbra_stake::IdentityKey; +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_stake::IdentityKey; pub fn governance_params() -> &'static str { "governance/params" diff --git a/crates/core/component/governance/src/tally.rs b/crates/core/component/governance/src/tally.rs index c715081663..35c081b888 100644 --- a/crates/core/component/governance/src/tally.rs +++ b/crates/core/component/governance/src/tally.rs @@ -6,7 +6,7 @@ use std::{ str::FromStr, }; -use penumbra_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; use crate::{ params::GovernanceParameters, diff --git a/crates/core/component/governance/src/validator_vote/action.rs b/crates/core/component/governance/src/validator_vote/action.rs index d5e69db700..38285926de 100644 --- a/crates/core/component/governance/src/validator_vote/action.rs +++ b/crates/core/component/governance/src/validator_vote/action.rs @@ -1,7 +1,7 @@ use decaf377_rdsa::{Signature, SpendAuth}; -use penumbra_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; -use penumbra_stake::{GovernanceKey, IdentityKey}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_stake::{GovernanceKey, IdentityKey}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; use crate::{vote::Vote, MAX_VALIDATOR_VOTE_REASON_LENGTH}; diff --git a/crates/core/component/governance/src/vote.rs b/crates/core/component/governance/src/vote.rs index 1ddf27723d..31df6c2f4d 100644 --- a/crates/core/component/governance/src/vote.rs +++ b/crates/core/component/governance/src/vote.rs @@ -4,7 +4,7 @@ use std::{ }; use anyhow::anyhow; -use penumbra_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::governance::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; /// A vote on a proposal. diff --git a/crates/core/component/governance/src/voting_receipt_token.rs b/crates/core/component/governance/src/voting_receipt_token.rs index a761f223dc..71b5b7034e 100644 --- a/crates/core/component/governance/src/voting_receipt_token.rs +++ b/crates/core/component/governance/src/voting_receipt_token.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use regex::Regex; -use penumbra_asset::asset; +use penumbra_sdk_asset::asset; /// Unbonding tokens represent staking tokens that are currently unbonding and /// subject to slashing. diff --git a/crates/core/component/ibc/Cargo.toml b/crates/core/component/ibc/Cargo.toml index 1d95017e5a..9da22efa90 100644 --- a/crates/core/component/ibc/Cargo.toml +++ b/crates/core/component/ibc/Cargo.toml @@ -1,13 +1,17 @@ [package] -name = "penumbra-ibc" +name = "penumbra-sdk-ibc" +authors = {workspace = true} +repository = {workspace = true} +description = "A production implementation of the IBC protocol" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] component = [ "cnidarium", - "penumbra-proto/cnidarium", - "penumbra-sct/component", + "penumbra-sdk-proto/cnidarium", + "penumbra-sdk-sct/component", ] default = ["component", "std"] std = ["ibc-types/std"] @@ -30,11 +34,11 @@ metrics = {workspace = true} num-traits = {workspace = true, default-features = false} once_cell = {workspace = true} pbjson-types = {workspace = true} -penumbra-asset = {workspace = true, default-features = false} -penumbra-num = {workspace = true, default-features = false} -penumbra-proto = {workspace = true, default-features = false} -penumbra-sct = {workspace = true, default-features = false} -penumbra-txhash = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = false} +penumbra-sdk-num = {workspace = true, default-features = false} +penumbra-sdk-proto = {workspace = true, default-features = false} +penumbra-sdk-sct = {workspace = true, default-features = false} +penumbra-sdk-txhash = {workspace = true, default-features = false} prost = {workspace = true} serde = {workspace = true, features = ["derive"]} serde_json = {workspace = true} diff --git a/crates/core/component/ibc/src/component/channel.rs b/crates/core/component/ibc/src/component/channel.rs index 490f804737..fbb3362764 100644 --- a/crates/core/component/ibc/src/component/channel.rs +++ b/crates/core/component/ibc/src/component/channel.rs @@ -11,7 +11,7 @@ use ibc_types::path::{ use cnidarium::{StateRead, StateWrite}; use ibc_types::core::channel::{ChannelEnd, ChannelId, Packet, PortId}; -use penumbra_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; // Note: many of the methods on this trait need to write raw bytes, // because the data they write is interpreted by counterparty chains. diff --git a/crates/core/component/ibc/src/component/client.rs b/crates/core/component/ibc/src/component/client.rs index aa1ce26c4f..e98da4388e 100644 --- a/crates/core/component/ibc/src/component/client.rs +++ b/crates/core/component/ibc/src/component/client.rs @@ -17,7 +17,7 @@ use ibc_types::lightclients::tendermint::{ consensus_state::ConsensusState as TendermintConsensusState, header::Header as TendermintHeader, }; -use penumbra_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; use crate::component::client_counter::{ClientCounter, VerifiedHeights}; use crate::prefix::MerklePrefixExt; @@ -223,7 +223,7 @@ pub trait StateWriteExt: StateWrite + StateReadExt { } // returns the ConsensusState for the penumbra chain (this chain) at the given height - fn put_penumbra_consensus_state( + fn put_penumbra_sdk_consensus_state( &mut self, height: Height, consensus_state: TendermintConsensusState, @@ -330,7 +330,7 @@ pub trait StateReadExt: StateRead { } // returns the ConsensusState for the penumbra chain (this chain) at the given height - async fn get_penumbra_consensus_state( + async fn get_penumbra_sdk_consensus_state( &self, height: Height, ) -> Result { @@ -466,7 +466,7 @@ mod tests { use cnidarium::{ArcStateDeltaExt, StateDelta}; use ibc_types::core::client::msgs::MsgUpdateClient; use ibc_types::{core::client::msgs::MsgCreateClient, DomainType}; - use penumbra_sct::component::clock::{EpochManager as _, EpochRead}; + use penumbra_sdk_sct::component::clock::{EpochManager as _, EpochRead}; use std::str::FromStr; use tendermint::Time; @@ -588,7 +588,7 @@ mod tests { // test that we can create and update a light client. #[tokio::test] async fn test_create_and_update_light_client() -> anyhow::Result<()> { - use penumbra_sct::epoch::Epoch; + use penumbra_sdk_sct::epoch::Epoch; // create a storage backend for testing // TODO(erwan): `apply_default_genesis` is not available here. We need a component diff --git a/crates/core/component/ibc/src/component/client_counter.rs b/crates/core/component/ibc/src/component/client_counter.rs index 3459c32952..f9f1d671db 100644 --- a/crates/core/component/ibc/src/component/client_counter.rs +++ b/crates/core/component/ibc/src/component/client_counter.rs @@ -1,6 +1,6 @@ use ibc_types::core::client::Height; use ibc_types::core::connection::ConnectionId; -use penumbra_proto::{penumbra::core::component::ibc::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::ibc::v1 as pb, DomainType}; #[derive(Clone, Debug)] pub struct ClientCounter(pub u64); diff --git a/crates/core/component/ibc/src/component/connection.rs b/crates/core/component/ibc/src/component/connection.rs index f19fc2b478..9b5eb17939 100644 --- a/crates/core/component/ibc/src/component/connection.rs +++ b/crates/core/component/ibc/src/component/connection.rs @@ -9,7 +9,7 @@ use ibc_types::{ }, path::{ClientConnectionPath, ConnectionPath}, }; -use penumbra_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; use crate::{prefix::MerklePrefixExt, IBC_COMMITMENT_PREFIX}; diff --git a/crates/core/component/ibc/src/component/connection_counter.rs b/crates/core/component/ibc/src/component/connection_counter.rs index c885ecef43..2174e5b7bb 100644 --- a/crates/core/component/ibc/src/component/connection_counter.rs +++ b/crates/core/component/ibc/src/component/connection_counter.rs @@ -1,6 +1,6 @@ use ibc_types::core::connection::Version; use once_cell::sync::Lazy; -use penumbra_proto::{penumbra::core::component::ibc::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::ibc::v1 as pb, DomainType}; #[derive(Debug, Clone)] pub struct ConnectionCounter(pub u64); diff --git a/crates/core/component/ibc/src/component/ibc_component.rs b/crates/core/component/ibc/src/component/ibc_component.rs index 8e5488cd73..c2e9ee719f 100644 --- a/crates/core/component/ibc/src/component/ibc_component.rs +++ b/crates/core/component/ibc/src/component/ibc_component.rs @@ -61,7 +61,7 @@ impl Ibc { ) .expect("block height cannot be zero"); - state.put_penumbra_consensus_state(height, cs); + state.put_penumbra_sdk_consensus_state(height, cs); } #[instrument(name = "ibc", skip(_state, _end_block))] diff --git a/crates/core/component/ibc/src/component/ics02_validation.rs b/crates/core/component/ibc/src/component/ics02_validation.rs index c117f50517..a8aa7739a6 100644 --- a/crates/core/component/ibc/src/component/ics02_validation.rs +++ b/crates/core/component/ibc/src/component/ics02_validation.rs @@ -82,7 +82,7 @@ pub fn get_tendermint_client_state(client_state: Any) -> Result(&state, self).await?; // verify that the client state is well formed - penumbra_client_state_is_well_formed::<&S, HI>(&state, self).await?; + penumbra_sdk_client_state_is_well_formed::<&S, HI>(&state, self).await?; // verify the previous connection that we're ACKing is in the correct state let connection = verify_previous_connection(&state, self).await?; @@ -131,7 +131,7 @@ impl MsgHandler for MsgConnectionOpenAck { .context("couldn't verify client state")?; let expected_consensus = state - .get_penumbra_consensus_state(self.consensus_height_of_a_on_b) + .get_penumbra_sdk_consensus_state(self.consensus_height_of_a_on_b) .await?; // 3. verify that the counterparty chain stored the correct consensus state of Penumbra at @@ -204,13 +204,13 @@ async fn consensus_height_is_correct( Ok(()) } -async fn penumbra_client_state_is_well_formed( +async fn penumbra_sdk_client_state_is_well_formed( state: S, msg: &MsgConnectionOpenAck, ) -> anyhow::Result<()> { let height = HI::get_block_height(&state).await?; let chain_id = HI::get_chain_id(&state).await?; - validate_penumbra_client_state(msg.client_state_of_a_on_b.clone(), &chain_id, height)?; + validate_penumbra_sdk_client_state(msg.client_state_of_a_on_b.clone(), &chain_id, height)?; Ok(()) } diff --git a/crates/core/component/ibc/src/component/msg_handler/connection_open_try.rs b/crates/core/component/ibc/src/component/msg_handler/connection_open_try.rs index f9b85c836e..bd8dd8cabe 100644 --- a/crates/core/component/ibc/src/component/msg_handler/connection_open_try.rs +++ b/crates/core/component/ibc/src/component/msg_handler/connection_open_try.rs @@ -18,7 +18,7 @@ use crate::component::{ client::StateReadExt as _, connection::{StateReadExt as _, StateWriteExt as _}, connection_counter::SUPPORTED_VERSIONS, - ics02_validation::validate_penumbra_client_state, + ics02_validation::validate_penumbra_sdk_client_state, MsgHandler, }; @@ -53,7 +53,7 @@ impl MsgHandler for MsgConnectionOpenTry { // verify that the client state (which is a Penumbra client) is well-formed for a // penumbra client. - penumbra_client_state_is_well_formed::<&S, HI>(&mut state, self).await?; + penumbra_sdk_client_state_is_well_formed::<&S, HI>(&mut state, self).await?; // TODO(erwan): how to handle this with ibc-rs@0.23.0? // if this msg provides a previous_connection_id to resume from, then check that the @@ -134,7 +134,7 @@ impl MsgHandler for MsgConnectionOpenTry { .context("couldn't verify client state")?; let expected_consensus = state - .get_penumbra_consensus_state(self.consensus_height_of_b_on_a) + .get_penumbra_sdk_consensus_state(self.consensus_height_of_b_on_a) .await?; // 3. verify that the counterparty chain stored the correct consensus state of Penumbra at @@ -210,13 +210,13 @@ async fn consensus_height_is_correct( Ok(()) } -async fn penumbra_client_state_is_well_formed( +async fn penumbra_sdk_client_state_is_well_formed( state: S, msg: &MsgConnectionOpenTry, ) -> anyhow::Result<()> { let height = HI::get_block_height(&state).await?; let chain_id = HI::get_chain_id(&state).await?; - validate_penumbra_client_state(msg.client_state_of_b_on_a.clone(), &chain_id, height)?; + validate_penumbra_sdk_client_state(msg.client_state_of_b_on_a.clone(), &chain_id, height)?; Ok(()) } diff --git a/crates/core/component/ibc/src/component/state_key.rs b/crates/core/component/ibc/src/component/state_key.rs index 98b8b2add7..16b73f1da0 100644 --- a/crates/core/component/ibc/src/component/state_key.rs +++ b/crates/core/component/ibc/src/component/state_key.rs @@ -20,7 +20,7 @@ pub fn counter() -> &'static str { pub mod ics20_value_balance { use ibc_types::core::channel::ChannelId; - use penumbra_asset::asset; + use penumbra_sdk_asset::asset; pub fn prefix() -> &'static str { "ibc/ics20-value-balance/" diff --git a/crates/core/component/ibc/src/component/view.rs b/crates/core/component/ibc/src/component/view.rs index 1b40d237e8..188eb724a3 100644 --- a/crates/core/component/ibc/src/component/view.rs +++ b/crates/core/component/ibc/src/component/view.rs @@ -1,7 +1,7 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; -use penumbra_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; use crate::params::IBCParameters; diff --git a/crates/core/component/ibc/src/genesis.rs b/crates/core/component/ibc/src/genesis.rs index 612cdad140..113ccd66d0 100644 --- a/crates/core/component/ibc/src/genesis.rs +++ b/crates/core/component/ibc/src/genesis.rs @@ -1,5 +1,5 @@ use anyhow::Context; -use penumbra_proto::{penumbra::core::component::ibc::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::ibc::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::params::IBCParameters; diff --git a/crates/core/component/ibc/src/ibc_action.rs b/crates/core/component/ibc/src/ibc_action.rs index 1047f70024..d2504118a4 100644 --- a/crates/core/component/ibc/src/ibc_action.rs +++ b/crates/core/component/ibc/src/ibc_action.rs @@ -31,9 +31,9 @@ use ibc_types::core::{ use ibc_types::DomainType as IbcTypesDomainType; -use penumbra_proto::penumbra::core::component::ibc::v1::{self as pb}; -use penumbra_proto::{DomainType, Name}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_proto::penumbra::core::component::ibc::v1::{self as pb}; +use penumbra_sdk_proto::{DomainType, Name}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Serialize, Deserialize)] diff --git a/crates/core/component/ibc/src/ibc_token.rs b/crates/core/component/ibc/src/ibc_token.rs index 09b26c6264..3143d8f31d 100644 --- a/crates/core/component/ibc/src/ibc_token.rs +++ b/crates/core/component/ibc/src/ibc_token.rs @@ -1,5 +1,5 @@ use ibc_types::core::channel::{ChannelId, PortId}; -use penumbra_asset::asset; +use penumbra_sdk_asset::asset; /// IBC token represents a token that was created through IBC. #[derive(Clone, Debug, PartialEq, Eq)] diff --git a/crates/core/component/ibc/src/params.rs b/crates/core/component/ibc/src/params.rs index 4894e9b95c..631ada5ce3 100644 --- a/crates/core/component/ibc/src/params.rs +++ b/crates/core/component/ibc/src/params.rs @@ -1,5 +1,5 @@ -use penumbra_proto::core::component::ibc::v1 as pb; -use penumbra_proto::DomainType; +use penumbra_sdk_proto::core::component::ibc::v1 as pb; +use penumbra_sdk_proto::DomainType; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] diff --git a/crates/core/component/sct/Cargo.toml b/crates/core/component/sct/Cargo.toml index 5373143303..90a59dc93f 100644 --- a/crates/core/component/sct/Cargo.toml +++ b/crates/core/component/sct/Cargo.toml @@ -1,14 +1,18 @@ [package] -name = "penumbra-sct" +name = "penumbra-sdk-sct" +authors = {workspace = true} +repository = {workspace = true} +description = "SCT component implementation for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] component = [ "cnidarium", "cnidarium-component", - "penumbra-proto/cnidarium", - "penumbra-proto/rpc", + "penumbra-sdk-proto/cnidarium", + "penumbra-sdk-proto/rpc", "tonic", ] default = ["std", "component"] @@ -34,9 +38,9 @@ im = {workspace = true} metrics = {workspace = true} once_cell = {workspace = true} pbjson-types = {workspace = true} -penumbra-keys = {workspace = true, default-features = false} -penumbra-proto = {workspace = true, default-features = false} -penumbra-tct = {workspace = true, default-features = true} +penumbra-sdk-keys = {workspace = true, default-features = false} +penumbra-sdk-proto = {workspace = true, default-features = false} +penumbra-sdk-tct = {workspace = true, default-features = true} poseidon377 = {workspace = true, features = ["r1cs"]} rand = {workspace = true} rand_core = {workspace = true, features = ["getrandom"]} diff --git a/crates/core/component/sct/src/component/clock.rs b/crates/core/component/sct/src/component/clock.rs index e74b1aec84..593c07d852 100644 --- a/crates/core/component/sct/src/component/clock.rs +++ b/crates/core/component/sct/src/component/clock.rs @@ -2,7 +2,7 @@ use crate::{epoch::Epoch, state_key}; use anyhow::{anyhow, Context, Result}; use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; -use penumbra_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; use std::str::FromStr; #[async_trait] diff --git a/crates/core/component/sct/src/component/rpc.rs b/crates/core/component/sct/src/component/rpc.rs index 7a33abce3e..ae8f6ee034 100644 --- a/crates/core/component/sct/src/component/rpc.rs +++ b/crates/core/component/sct/src/component/rpc.rs @@ -1,7 +1,7 @@ use cnidarium::Storage; use pbjson_types::Timestamp; -use penumbra_proto::core::component::sct::v1::query_service_server::QueryService; -use penumbra_proto::core::component::sct::v1::{ +use penumbra_sdk_proto::core::component::sct::v1::query_service_server::QueryService; +use penumbra_sdk_proto::core::component::sct::v1::{ AnchorByHeightRequest, AnchorByHeightResponse, EpochByHeightRequest, EpochByHeightResponse, TimestampByHeightRequest, TimestampByHeightResponse, }; diff --git a/crates/core/component/sct/src/component/sct.rs b/crates/core/component/sct/src/component/sct.rs index a209ea6ad1..42561e2cde 100644 --- a/crates/core/component/sct/src/component/sct.rs +++ b/crates/core/component/sct/src/component/sct.rs @@ -4,7 +4,7 @@ use anyhow::{anyhow, Result}; use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; use cnidarium_component::Component; -use penumbra_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; use tendermint::v0_37::abci; use tracing::instrument; diff --git a/crates/core/component/sct/src/component/tree.rs b/crates/core/component/sct/src/component/tree.rs index 9bbd83e263..296608a73b 100644 --- a/crates/core/component/sct/src/component/tree.rs +++ b/crates/core/component/sct/src/component/tree.rs @@ -1,8 +1,8 @@ use anyhow::{anyhow, Result}; use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; -use penumbra_proto::{DomainType as _, StateReadProto, StateWriteProto}; -use penumbra_tct as tct; +use penumbra_sdk_proto::{DomainType as _, StateReadProto, StateWriteProto}; +use penumbra_sdk_tct as tct; use tct::builder::{block, epoch}; use tracing::instrument; diff --git a/crates/core/component/sct/src/epoch.rs b/crates/core/component/sct/src/epoch.rs index 0655fb88c1..cdf457a8f9 100644 --- a/crates/core/component/sct/src/epoch.rs +++ b/crates/core/component/sct/src/epoch.rs @@ -1,5 +1,5 @@ -use penumbra_proto::penumbra::core::component::sct::v1 as pb; -use penumbra_proto::DomainType; +use penumbra_sdk_proto::penumbra::core::component::sct::v1 as pb; +use penumbra_sdk_proto::DomainType; use serde::{Deserialize, Serialize}; #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Copy, Clone, Serialize, Deserialize)] diff --git a/crates/core/component/sct/src/event.rs b/crates/core/component/sct/src/event.rs index 43bef0da20..6f31b6f879 100644 --- a/crates/core/component/sct/src/event.rs +++ b/crates/core/component/sct/src/event.rs @@ -1,9 +1,9 @@ use anyhow::{anyhow, Context as _}; use pbjson_types::Timestamp; -use penumbra_tct as tct; +use penumbra_sdk_tct as tct; use tct::builder::{block, epoch}; -use penumbra_proto::{ +use penumbra_sdk_proto::{ core::component::sct::v1::{self as pb}, DomainType, Name as _, }; diff --git a/crates/core/component/sct/src/genesis.rs b/crates/core/component/sct/src/genesis.rs index cb99600664..0d1ac952f5 100644 --- a/crates/core/component/sct/src/genesis.rs +++ b/crates/core/component/sct/src/genesis.rs @@ -1,5 +1,5 @@ use anyhow::Context; -use penumbra_proto::{penumbra::core::component::sct::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::sct::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::params::SctParameters; diff --git a/crates/core/component/sct/src/nullification_info.rs b/crates/core/component/sct/src/nullification_info.rs index b09be69cea..f0176c5dcb 100644 --- a/crates/core/component/sct/src/nullification_info.rs +++ b/crates/core/component/sct/src/nullification_info.rs @@ -1,5 +1,5 @@ use anyhow::anyhow; -use penumbra_proto::{core::component::sct::v1 as pb, DomainType}; +use penumbra_sdk_proto::{core::component::sct::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)] diff --git a/crates/core/component/sct/src/nullifier.rs b/crates/core/component/sct/src/nullifier.rs index 3b96c84f9b..35ac2d66c5 100644 --- a/crates/core/component/sct/src/nullifier.rs +++ b/crates/core/component/sct/src/nullifier.rs @@ -1,13 +1,13 @@ use ark_r1cs_std::prelude::*; use ark_relations::r1cs::SynthesisError; use decaf377::{r1cs::FqVar, Fq}; -use penumbra_tct as tct; -use penumbra_tct::{r1cs::StateCommitmentVar, StateCommitment}; +use penumbra_sdk_tct as tct; +use penumbra_sdk_tct::{r1cs::StateCommitmentVar, StateCommitment}; use poseidon377::hash_3; use once_cell::sync::Lazy; -use penumbra_keys::keys::{NullifierKey, NullifierKeyVar}; -use penumbra_proto::{core::component::sct::v1 as pb, DomainType}; +use penumbra_sdk_keys::keys::{NullifierKey, NullifierKeyVar}; +use penumbra_sdk_proto::{core::component::sct::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; #[derive(PartialEq, Eq, Clone, Copy, Hash, PartialOrd, Ord, Serialize, Deserialize)] @@ -68,7 +68,7 @@ impl Nullifier { /// and [`Commitment`]. pub fn derive( nk: &NullifierKey, - pos: penumbra_tct::Position, + pos: penumbra_sdk_tct::Position, state_commitment: &StateCommitment, ) -> Nullifier { Nullifier(hash_3( diff --git a/crates/core/component/sct/src/params.rs b/crates/core/component/sct/src/params.rs index e5acf500eb..6438e5ef48 100644 --- a/crates/core/component/sct/src/params.rs +++ b/crates/core/component/sct/src/params.rs @@ -1,5 +1,5 @@ -use penumbra_proto::penumbra::core::component::sct::v1 as pb; -use penumbra_proto::DomainType; +use penumbra_sdk_proto::penumbra::core::component::sct::v1 as pb; +use penumbra_sdk_proto::DomainType; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] diff --git a/crates/core/component/sct/src/source.rs b/crates/core/component/sct/src/source.rs index 2c8370c3f3..39af1ca0c7 100644 --- a/crates/core/component/sct/src/source.rs +++ b/crates/core/component/sct/src/source.rs @@ -1,5 +1,5 @@ use anyhow::anyhow; -use penumbra_proto::{core::component::sct::v1 as pb, DomainType}; +use penumbra_sdk_proto::{core::component::sct::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; #[derive(Clone, Eq, PartialEq, Debug, Serialize, Deserialize)] diff --git a/crates/core/component/sct/src/state_key.rs b/crates/core/component/sct/src/state_key.rs index 93a32120cb..bf2c4fb2c8 100644 --- a/crates/core/component/sct/src/state_key.rs +++ b/crates/core/component/sct/src/state_key.rs @@ -49,7 +49,7 @@ pub mod tree { format!("sct/tree/anchor_by_height/{}", height) } - pub fn anchor_lookup(anchor: penumbra_tct::Root) -> String { + pub fn anchor_lookup(anchor: penumbra_sdk_tct::Root) -> String { format!("sct/tree/anchor_lookup/{}", anchor) } @@ -57,7 +57,7 @@ pub mod tree { "sct/tree/state_commitment_tree" } - pub fn note_source(note_commitment: &penumbra_tct::StateCommitment) -> String { + pub fn note_source(note_commitment: &penumbra_sdk_tct::StateCommitment) -> String { format!("sct/tree/note_source/{}", note_commitment) } } diff --git a/crates/core/component/shielded-pool/Cargo.toml b/crates/core/component/shielded-pool/Cargo.toml index 58deecfe28..532fdd37bb 100644 --- a/crates/core/component/shielded-pool/Cargo.toml +++ b/crates/core/component/shielded-pool/Cargo.toml @@ -1,24 +1,28 @@ [package] -name = "penumbra-shielded-pool" +name = "penumbra-sdk-shielded-pool" +authors = {workspace = true} +repository = {workspace = true} +description = "Multi-asset shielded pool implementation for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] component = [ "cnidarium-component", "cnidarium", - "penumbra-proto/cnidarium", - "penumbra-ibc/component", - "penumbra-sct/component", + "penumbra-sdk-proto/cnidarium", + "penumbra-sdk-ibc/component", + "penumbra-sdk-sct/component", "tonic", "ibc-proto/server", "ibc-proto/transport", ] -# proving-keys = ["penumbra-proof-params/proving-keys"] +# proving-keys = ["penumbra-sdk-proof-params/proving-keys"] default = ["std", "component"] std = ["ark-ff/std"] parallel = [ - "penumbra-tct/parallel", + "penumbra-sdk-tct/parallel", "ark-ff/parallel", "poseidon377/parallel", "decaf377-rdsa/parallel", @@ -56,15 +60,15 @@ ibc-types = {workspace = true, features = ["with_serde"], default-features = fal im = {workspace = true} metrics = {workspace = true} once_cell = {workspace = true} -penumbra-asset = {workspace = true, default-features = false} -penumbra-ibc = {workspace = true, default-features = false} -penumbra-keys = {workspace = true, default-features = false} -penumbra-num = {workspace = true, default-features = false} -penumbra-proof-params = {workspace = true, default-features = false} -penumbra-proto = {workspace = true, default-features = false} -penumbra-sct = {workspace = true, default-features = false} -penumbra-tct = {workspace = true, default-features = true} -penumbra-txhash = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = false} +penumbra-sdk-ibc = {workspace = true, default-features = false} +penumbra-sdk-keys = {workspace = true, default-features = false} +penumbra-sdk-num = {workspace = true, default-features = false} +penumbra-sdk-proof-params = {workspace = true, default-features = false} +penumbra-sdk-proto = {workspace = true, default-features = false} +penumbra-sdk-sct = {workspace = true, default-features = false} +penumbra-sdk-tct = {workspace = true, default-features = true} +penumbra-sdk-txhash = {workspace = true, default-features = false} poseidon377 = {workspace = true, features = ["r1cs"]} prost = {workspace = true} rand = {workspace = true} diff --git a/crates/core/component/shielded-pool/src/backref.rs b/crates/core/component/shielded-pool/src/backref.rs index 7eef7f4d96..a94db09ff8 100644 --- a/crates/core/component/shielded-pool/src/backref.rs +++ b/crates/core/component/shielded-pool/src/backref.rs @@ -4,9 +4,9 @@ use chacha20poly1305::{ ChaCha20Poly1305, Nonce, }; -use penumbra_keys::BackreferenceKey; -use penumbra_sct::Nullifier; -use penumbra_tct as tct; +use penumbra_sdk_keys::BackreferenceKey; +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_tct as tct; pub const ENCRYPTED_BACKREF_LEN: usize = 48; @@ -133,8 +133,8 @@ mod tests { use super::*; use proptest::prelude::*; - use penumbra_asset::{asset, Value}; - use penumbra_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; + use penumbra_sdk_asset::{asset, Value}; + use penumbra_sdk_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; use crate::{Note, Rseed}; @@ -159,7 +159,7 @@ mod tests { let rseed = Rseed(rseed_randomness); let note = Note::from_parts(sender, value_to_send, rseed).expect("valid note"); - let note_commitment: penumbra_tct::StateCommitment = note.commit(); + let note_commitment: penumbra_sdk_tct::StateCommitment = note.commit(); let nk = *sk.nullifier_key(); let mut sct = tct::Tree::new(); @@ -198,7 +198,7 @@ mod tests { let rseed = Rseed(rseed_randomness); let note = Note::from_parts(sender, value_to_send, rseed).expect("valid note"); - let note_commitment: penumbra_tct::StateCommitment = note.commit(); + let note_commitment: penumbra_sdk_tct::StateCommitment = note.commit(); let nk = *sk.nullifier_key(); let mut sct = tct::Tree::new(); diff --git a/crates/core/component/shielded-pool/src/component/action_handler/ics20_withdrawal.rs b/crates/core/component/shielded-pool/src/component/action_handler/ics20_withdrawal.rs index ddc3f7d12c..0bd0b17c27 100644 --- a/crates/core/component/shielded-pool/src/component/action_handler/ics20_withdrawal.rs +++ b/crates/core/component/shielded-pool/src/component/action_handler/ics20_withdrawal.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use anyhow::{ensure, Result}; use cnidarium::{StateRead, StateWrite}; -use penumbra_ibc::{component::HostInterface, StateReadExt as _}; +use penumbra_sdk_ibc::{component::HostInterface, StateReadExt as _}; use crate::component::transfer::{Ics20TransferReadExt as _, Ics20TransferWriteExt as _}; use crate::component::Ics20WithdrawalWithHandler; diff --git a/crates/core/component/shielded-pool/src/component/action_handler/output.rs b/crates/core/component/shielded-pool/src/component/action_handler/output.rs index 18a4515c9f..d9b6049989 100644 --- a/crates/core/component/shielded-pool/src/component/action_handler/output.rs +++ b/crates/core/component/shielded-pool/src/component/action_handler/output.rs @@ -2,9 +2,9 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::StateWrite; use cnidarium_component::ActionHandler; -use penumbra_proof_params::OUTPUT_PROOF_VERIFICATION_KEY; -use penumbra_proto::{DomainType as _, StateWriteProto as _}; -use penumbra_sct::component::source::SourceContext; +use penumbra_sdk_proof_params::OUTPUT_PROOF_VERIFICATION_KEY; +use penumbra_sdk_proto::{DomainType as _, StateWriteProto as _}; +use penumbra_sdk_sct::component::source::SourceContext; use crate::{component::NoteManager, event, output::OutputProofPublic, Output}; diff --git a/crates/core/component/shielded-pool/src/component/action_handler/spend.rs b/crates/core/component/shielded-pool/src/component/action_handler/spend.rs index b3da310650..13263c4671 100644 --- a/crates/core/component/shielded-pool/src/component/action_handler/spend.rs +++ b/crates/core/component/shielded-pool/src/component/action_handler/spend.rs @@ -2,13 +2,13 @@ use anyhow::{Context, Result}; use async_trait::async_trait; use cnidarium::StateWrite; use cnidarium_component::ActionHandler; -use penumbra_proof_params::SPEND_PROOF_VERIFICATION_KEY; -use penumbra_proto::{DomainType, StateWriteProto as _}; -use penumbra_sct::component::{ +use penumbra_sdk_proof_params::SPEND_PROOF_VERIFICATION_KEY; +use penumbra_sdk_proto::{DomainType, StateWriteProto as _}; +use penumbra_sdk_sct::component::{ source::SourceContext, tree::{SctManager, VerificationExt}, }; -use penumbra_txhash::TransactionContext; +use penumbra_sdk_txhash::TransactionContext; use crate::{event, Spend, SpendProofPublic}; diff --git a/crates/core/component/shielded-pool/src/component/assets.rs b/crates/core/component/shielded-pool/src/component/assets.rs index e56207e036..c71771b58f 100644 --- a/crates/core/component/shielded-pool/src/component/assets.rs +++ b/crates/core/component/shielded-pool/src/component/assets.rs @@ -1,7 +1,7 @@ use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; -use penumbra_asset::asset::{self, Metadata}; -use penumbra_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_asset::asset::{self, Metadata}; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; use tracing::instrument; diff --git a/crates/core/component/shielded-pool/src/component/fmd.rs b/crates/core/component/shielded-pool/src/component/fmd.rs index 2675955659..3363862d79 100644 --- a/crates/core/component/shielded-pool/src/component/fmd.rs +++ b/crates/core/component/shielded-pool/src/component/fmd.rs @@ -2,11 +2,11 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; use decaf377_fmd::Clue; -use penumbra_proto::{ +use penumbra_sdk_proto::{ core::component::shielded_pool::v1::{self as pb}, StateWriteProto, }; -use penumbra_txhash::TransactionId; +use penumbra_sdk_txhash::TransactionId; use crate::fmd::state_key; diff --git a/crates/core/component/shielded-pool/src/component/ics20_withdrawal_with_handler.rs b/crates/core/component/shielded-pool/src/component/ics20_withdrawal_with_handler.rs index cee833da45..587e17b8e7 100644 --- a/crates/core/component/shielded-pool/src/component/ics20_withdrawal_with_handler.rs +++ b/crates/core/component/shielded-pool/src/component/ics20_withdrawal_with_handler.rs @@ -1,5 +1,5 @@ use crate::Ics20Withdrawal; -use penumbra_ibc::component::HostInterface; +use penumbra_sdk_ibc::component::HostInterface; use std::marker::PhantomData; pub struct Ics20WithdrawalWithHandler(Ics20Withdrawal, PhantomData); diff --git a/crates/core/component/shielded-pool/src/component/note_manager.rs b/crates/core/component/shielded-pool/src/component/note_manager.rs index a4d13ef343..a8d1153ce3 100644 --- a/crates/core/component/shielded-pool/src/component/note_manager.rs +++ b/crates/core/component/shielded-pool/src/component/note_manager.rs @@ -1,11 +1,11 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::StateWrite; -use penumbra_asset::Value; -use penumbra_keys::Address; -use penumbra_sct::component::tree::{SctManager, SctRead}; -use penumbra_sct::CommitmentSource; -use penumbra_tct as tct; +use penumbra_sdk_asset::Value; +use penumbra_sdk_keys::Address; +use penumbra_sdk_sct::component::tree::{SctManager, SctRead}; +use penumbra_sdk_sct::CommitmentSource; +use penumbra_sdk_tct as tct; use tct::StateCommitment; use tracing::instrument; diff --git a/crates/core/component/shielded-pool/src/component/rpc.rs b/crates/core/component/shielded-pool/src/component/rpc.rs index 01c9558f1a..aa7c4551a3 100644 --- a/crates/core/component/shielded-pool/src/component/rpc.rs +++ b/crates/core/component/shielded-pool/src/component/rpc.rs @@ -1,8 +1,8 @@ use std::pin::Pin; use cnidarium::Storage; -use penumbra_asset::asset::{self}; -use penumbra_proto::core::component::shielded_pool::v1::{ +use penumbra_sdk_asset::asset::{self}; +use penumbra_sdk_proto::core::component::shielded_pool::v1::{ query_service_server::QueryService, AssetMetadataByIdRequest, AssetMetadataByIdResponse, AssetMetadataByIdsRequest, AssetMetadataByIdsResponse, }; diff --git a/crates/core/component/shielded-pool/src/component/rpc/bank_query.rs b/crates/core/component/shielded-pool/src/component/rpc/bank_query.rs index a675402ecd..9d16a4332f 100644 --- a/crates/core/component/shielded-pool/src/component/rpc/bank_query.rs +++ b/crates/core/component/shielded-pool/src/component/rpc/bank_query.rs @@ -17,10 +17,10 @@ use ibc_proto::cosmos::bank::v1beta1::{ QuerySpendableBalanceByDenomResponse, QuerySpendableBalancesRequest, QuerySpendableBalancesResponse, QuerySupplyOfRequest, QuerySupplyOfResponse, }; -use penumbra_asset::asset::{self, Metadata}; -use penumbra_ibc::component::state_key as ibc_state_key; -use penumbra_num::Amount; -use penumbra_proto::StateReadProto as _; +use penumbra_sdk_asset::asset::{self, Metadata}; +use penumbra_sdk_ibc::component::state_key as ibc_state_key; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::StateReadProto as _; use tracing::instrument; use crate::component::AssetRegistryRead as _; diff --git a/crates/core/component/shielded-pool/src/component/rpc/transfer_query.rs b/crates/core/component/shielded-pool/src/component/rpc/transfer_query.rs index 700faafe5c..b3ae1097a2 100644 --- a/crates/core/component/shielded-pool/src/component/rpc/transfer_query.rs +++ b/crates/core/component/shielded-pool/src/component/rpc/transfer_query.rs @@ -8,8 +8,8 @@ use ibc_proto::ibc::apps::transfer::v1::{ QueryEscrowAddressRequest, QueryEscrowAddressResponse, QueryParamsRequest, QueryParamsResponse, QueryTotalEscrowForDenomRequest, QueryTotalEscrowForDenomResponse, }; -use penumbra_asset::asset::Metadata; -use penumbra_proto::StateReadProto as _; +use penumbra_sdk_asset::asset::Metadata; +use penumbra_sdk_proto::StateReadProto as _; use crate::state_key; diff --git a/crates/core/component/shielded-pool/src/component/shielded_pool.rs b/crates/core/component/shielded-pool/src/component/shielded_pool.rs index 399922901c..2a3bbdb6b2 100644 --- a/crates/core/component/shielded-pool/src/component/shielded_pool.rs +++ b/crates/core/component/shielded-pool/src/component/shielded_pool.rs @@ -9,9 +9,9 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; use cnidarium_component::Component; -use penumbra_proto::StateReadProto as _; -use penumbra_proto::StateWriteProto as _; -use penumbra_sct::CommitmentSource; +use penumbra_sdk_proto::StateReadProto as _; +use penumbra_sdk_proto::StateWriteProto as _; +use penumbra_sdk_sct::CommitmentSource; use tendermint::v0_37::abci; use tracing::instrument; diff --git a/crates/core/component/shielded-pool/src/component/transfer.rs b/crates/core/component/shielded-pool/src/component/transfer.rs index 88c0e799ab..704412cfd0 100644 --- a/crates/core/component/shielded-pool/src/component/transfer.rs +++ b/crates/core/component/shielded-pool/src/component/transfer.rs @@ -21,17 +21,17 @@ use ibc_types::{ }, transfer::acknowledgement::TokenTransferAcknowledgement, }; -use penumbra_asset::{asset, asset::Metadata, Value}; -use penumbra_ibc::component::ChannelStateReadExt; -use penumbra_keys::Address; -use penumbra_num::Amount; -use penumbra_proto::{ +use penumbra_sdk_asset::{asset, asset::Metadata, Value}; +use penumbra_sdk_ibc::component::ChannelStateReadExt; +use penumbra_sdk_keys::Address; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{ penumbra::core::component::ibc::v1::FungibleTokenPacketData, DomainType as _, StateReadProto, StateWriteProto, }; -use penumbra_sct::CommitmentSource; +use penumbra_sdk_sct::CommitmentSource; -use penumbra_ibc::component::{ +use penumbra_sdk_ibc::component::{ app_handler::{AppHandler, AppHandlerCheck, AppHandlerExecute}, packet::{ IBCPacket, SendPacketRead as _, SendPacketWrite as _, Unchecked, WriteAcknowledgement as _, diff --git a/crates/core/component/shielded-pool/src/convert.rs b/crates/core/component/shielded-pool/src/convert.rs index 5e9f2f6bb1..a5fa03cdc9 100644 --- a/crates/core/component/shielded-pool/src/convert.rs +++ b/crates/core/component/shielded-pool/src/convert.rs @@ -8,16 +8,16 @@ use ark_serialize::{CanonicalDeserialize, CanonicalSerialize}; use ark_snark::SNARK; use base64::prelude::*; use decaf377::{Bls12_377, Fq, Fr}; -use penumbra_asset::{ +use penumbra_sdk_asset::{ asset::{self, AssetIdVar}, balance::{self, commitment::BalanceCommitmentVar, BalanceVar}, Balance, Value, ValueVar, STAKING_TOKEN_ASSET_ID, }; -use penumbra_num::{ +use penumbra_sdk_num::{ fixpoint::{U128x128, U128x128Var}, Amount, AmountVar, }; -use penumbra_proof_params::{DummyWitness, VerifyingKeyExt, GROTH16_PROOF_LENGTH_BYTES}; +use penumbra_sdk_proof_params::{DummyWitness, VerifyingKeyExt, GROTH16_PROOF_LENGTH_BYTES}; /// The public input for a [`ConvertProof`]. #[derive(Clone, Debug)] diff --git a/crates/core/component/shielded-pool/src/event.rs b/crates/core/component/shielded-pool/src/event.rs index e0f14b67fa..e8065bd288 100644 --- a/crates/core/component/shielded-pool/src/event.rs +++ b/crates/core/component/shielded-pool/src/event.rs @@ -1,8 +1,8 @@ use anyhow::{anyhow, Context}; -use penumbra_asset::Value; -use penumbra_keys::Address; -use penumbra_proto::{core::component::shielded_pool::v1 as pb, DomainType}; -use penumbra_sct::Nullifier; +use penumbra_sdk_asset::Value; +use penumbra_sdk_keys::Address; +use penumbra_sdk_proto::{core::component::shielded_pool::v1 as pb, DomainType}; +use penumbra_sdk_sct::Nullifier; use prost::Name as _; use crate::note::StateCommitment; diff --git a/crates/core/component/shielded-pool/src/fmd.rs b/crates/core/component/shielded-pool/src/fmd.rs index eb2fa46bdd..0f46e25719 100644 --- a/crates/core/component/shielded-pool/src/fmd.rs +++ b/crates/core/component/shielded-pool/src/fmd.rs @@ -1,6 +1,6 @@ use anyhow::{anyhow, Result}; use decaf377_fmd::Precision; -use penumbra_proto::{ +use penumbra_sdk_proto::{ core::component::shielded_pool::v1::{self as pb}, DomainType, }; diff --git a/crates/core/component/shielded-pool/src/genesis.rs b/crates/core/component/shielded-pool/src/genesis.rs index 54e10da0d4..35f4998411 100644 --- a/crates/core/component/shielded-pool/src/genesis.rs +++ b/crates/core/component/shielded-pool/src/genesis.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{penumbra::core::component::shielded_pool::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::shielded_pool::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; mod allocation; @@ -57,7 +57,7 @@ impl Default for Content { raw_denom: "penumbra" .parse() .expect("hardcoded \"penumbra\" denom should be parseable"), - address: penumbra_keys::test_keys::ADDRESS_0_STR + address: penumbra_sdk_keys::test_keys::ADDRESS_0_STR .parse() .expect("hardcoded test address should be valid"), }, @@ -66,7 +66,7 @@ impl Default for Content { raw_denom: "test_usd" .parse() .expect("hardcoded \"test_usd\" denom should be parseable"), - address: penumbra_keys::test_keys::ADDRESS_0_STR + address: penumbra_sdk_keys::test_keys::ADDRESS_0_STR .parse() .expect("hardcoded test address should be valid"), }, @@ -75,7 +75,7 @@ impl Default for Content { raw_denom: "gm" .parse() .expect("hardcoded \"gm\" denom should be parseable"), - address: penumbra_keys::test_keys::ADDRESS_1_STR + address: penumbra_sdk_keys::test_keys::ADDRESS_1_STR .parse() .expect("hardcoded test address should be valid"), }, @@ -84,7 +84,7 @@ impl Default for Content { raw_denom: "gn" .parse() .expect("hardcoded \"gn\" denom should be parseable"), - address: penumbra_keys::test_keys::ADDRESS_1_STR + address: penumbra_sdk_keys::test_keys::ADDRESS_1_STR .parse() .expect("hardcoded test address should be valid"), }, diff --git a/crates/core/component/shielded-pool/src/genesis/allocation.rs b/crates/core/component/shielded-pool/src/genesis/allocation.rs index d5e12fb807..43132ef507 100644 --- a/crates/core/component/shielded-pool/src/genesis/allocation.rs +++ b/crates/core/component/shielded-pool/src/genesis/allocation.rs @@ -1,10 +1,10 @@ -use penumbra_asset::{ +use penumbra_sdk_asset::{ asset::{self, Metadata, Unit}, Value, }; -use penumbra_keys::Address; -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::component::shielded_pool::v1 as pb, DomainType}; +use penumbra_sdk_keys::Address; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::component::shielded_pool::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; /// A (transparent) genesis allocation. diff --git a/crates/core/component/shielded-pool/src/ics20_withdrawal.rs b/crates/core/component/shielded-pool/src/ics20_withdrawal.rs index ed95901dac..847a38201b 100644 --- a/crates/core/component/shielded-pool/src/ics20_withdrawal.rs +++ b/crates/core/component/shielded-pool/src/ics20_withdrawal.rs @@ -1,20 +1,20 @@ use ibc_types::core::{channel::ChannelId, channel::PortId, client::Height as IbcHeight}; -use penumbra_asset::{ +use penumbra_sdk_asset::{ asset::{self, Metadata}, Balance, Value, }; -use penumbra_keys::Address; -use penumbra_num::Amount; -use penumbra_proto::{ +use penumbra_sdk_keys::Address; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{ penumbra::core::component::ibc::v1::{self as pb, FungibleTokenPacketData}, DomainType, }; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; use std::str::FromStr; #[cfg(feature = "component")] -use penumbra_ibc::component::packet::{IBCPacket, Unchecked}; +use penumbra_sdk_ibc::component::packet::{IBCPacket, Unchecked}; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(try_from = "pb::Ics20Withdrawal", into = "pb::Ics20Withdrawal")] diff --git a/crates/core/component/shielded-pool/src/note.rs b/crates/core/component/shielded-pool/src/note.rs index 2f9a24c5d4..fe972b8466 100644 --- a/crates/core/component/shielded-pool/src/note.rs +++ b/crates/core/component/shielded-pool/src/note.rs @@ -6,12 +6,12 @@ use decaf377::Fq; use decaf377_fmd as fmd; use decaf377_ka as ka; use once_cell::sync::Lazy; -use penumbra_keys::{ +use penumbra_sdk_keys::{ keys::{Diversifier, FullViewingKey, IncomingViewingKey, OutgoingViewingKey}, symmetric::{OutgoingCipherKey, OvkWrappedKey, PayloadKey, PayloadKind}, Address, AddressView, }; -use penumbra_proto::penumbra::core::component::shielded_pool::v1 as pb; +use penumbra_sdk_proto::penumbra::core::component::shielded_pool::v1 as pb; use rand::{CryptoRng, Rng}; use serde::{Deserialize, Serialize}; use thiserror; @@ -19,10 +19,10 @@ use thiserror; mod r1cs; pub use r1cs::NoteVar; -pub use penumbra_tct::StateCommitment; +pub use penumbra_sdk_tct::StateCommitment; -use penumbra_asset::{asset, balance, Value, ValueView}; -use penumbra_num::Amount; +use penumbra_sdk_asset::{asset, balance, Value, ValueView}; +use penumbra_sdk_num::Amount; use crate::{NotePayload, Rseed}; @@ -579,7 +579,7 @@ mod tests { use rand_core::OsRng; use super::*; - use penumbra_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; + use penumbra_sdk_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; #[test] fn note_encryption_and_decryption() { diff --git a/crates/core/component/shielded-pool/src/note/r1cs.rs b/crates/core/component/shielded-pool/src/note/r1cs.rs index de3096fd98..0059e7a2ab 100644 --- a/crates/core/component/shielded-pool/src/note/r1cs.rs +++ b/crates/core/component/shielded-pool/src/note/r1cs.rs @@ -5,9 +5,9 @@ use decaf377::{ r1cs::{ElementVar, FqVar}, Fq, }; -use penumbra_asset::ValueVar; -use penumbra_keys::address::AddressVar; -use penumbra_tct::r1cs::StateCommitmentVar; +use penumbra_sdk_asset::ValueVar; +use penumbra_sdk_keys::address::AddressVar; +use penumbra_sdk_tct::r1cs::StateCommitmentVar; use crate::Note; diff --git a/crates/core/component/shielded-pool/src/note_payload.rs b/crates/core/component/shielded-pool/src/note_payload.rs index f5c6321161..e713f35c1b 100644 --- a/crates/core/component/shielded-pool/src/note_payload.rs +++ b/crates/core/component/shielded-pool/src/note_payload.rs @@ -1,8 +1,8 @@ use anyhow::{Context, Error}; -use penumbra_keys::keys::FullViewingKey; -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::component::shielded_pool::v1 as pb, DomainType}; +use penumbra_sdk_keys::keys::FullViewingKey; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::component::shielded_pool::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::{note, Note, NoteCiphertext}; diff --git a/crates/core/component/shielded-pool/src/nullifier_derivation.rs b/crates/core/component/shielded-pool/src/nullifier_derivation.rs index d691416d8d..2d1aac3c45 100644 --- a/crates/core/component/shielded-pool/src/nullifier_derivation.rs +++ b/crates/core/component/shielded-pool/src/nullifier_derivation.rs @@ -12,16 +12,16 @@ use ark_groth16::{ }; use ark_relations::r1cs::{ConstraintSynthesizer, ConstraintSystemRef}; use ark_snark::SNARK; -use penumbra_proto::{penumbra::core::component::shielded_pool::v1 as pb, DomainType}; -use penumbra_tct as tct; +use penumbra_sdk_proto::{penumbra::core::component::shielded_pool::v1 as pb, DomainType}; +use penumbra_sdk_tct as tct; use rand::{CryptoRng, Rng}; use tct::StateCommitment; use crate::{Note, Rseed}; -use penumbra_asset::Value; -use penumbra_keys::keys::{Bip44Path, NullifierKey, NullifierKeyVar, SeedPhrase, SpendKey}; -use penumbra_proof_params::{DummyWitness, VerifyingKeyExt, GROTH16_PROOF_LENGTH_BYTES}; -use penumbra_sct::{Nullifier, NullifierVar}; +use penumbra_sdk_asset::Value; +use penumbra_sdk_keys::keys::{Bip44Path, NullifierKey, NullifierKeyVar, SeedPhrase, SpendKey}; +use penumbra_sdk_proof_params::{DummyWitness, VerifyingKeyExt, GROTH16_PROOF_LENGTH_BYTES}; +use penumbra_sdk_sct::{Nullifier, NullifierVar}; /// The public input for a ['NullifierDerivationProof']. #[derive(Clone, Debug)] @@ -232,10 +232,10 @@ impl TryFrom for NullifierDerivationProof { #[cfg(test)] mod tests { use super::*; - use penumbra_asset::{asset, Value}; - use penumbra_keys::keys::{SeedPhrase, SpendKey}; - use penumbra_num::Amount; - use penumbra_sct::Nullifier; + use penumbra_sdk_asset::{asset, Value}; + use penumbra_sdk_keys::keys::{SeedPhrase, SpendKey}; + use penumbra_sdk_num::Amount; + use penumbra_sdk_sct::Nullifier; use proptest::prelude::*; use crate::Note; diff --git a/crates/core/component/shielded-pool/src/output/action.rs b/crates/core/component/shielded-pool/src/output/action.rs index b98d0026a9..b52f224085 100644 --- a/crates/core/component/shielded-pool/src/output/action.rs +++ b/crates/core/component/shielded-pool/src/output/action.rs @@ -1,13 +1,13 @@ use std::convert::{TryFrom, TryInto}; use anyhow::{Context, Error}; -use penumbra_asset::balance; -use penumbra_keys::symmetric::{OvkWrappedKey, WrappedMemoKey}; -use penumbra_proto::{ +use penumbra_sdk_asset::balance; +use penumbra_sdk_keys::symmetric::{OvkWrappedKey, WrappedMemoKey}; +use penumbra_sdk_proto::{ core::component::shielded_pool::v1 as pb, penumbra::core::component::shielded_pool::v1 as pbc, DomainType, }; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; use crate::{NotePayload, OutputProof}; diff --git a/crates/core/component/shielded-pool/src/output/plan.rs b/crates/core/component/shielded-pool/src/output/plan.rs index 5bc9a6abb2..8aa3025fca 100644 --- a/crates/core/component/shielded-pool/src/output/plan.rs +++ b/crates/core/component/shielded-pool/src/output/plan.rs @@ -1,12 +1,12 @@ use decaf377::{Fq, Fr}; use decaf377_ka as ka; -use penumbra_asset::{Balance, Value, STAKING_TOKEN_ASSET_ID}; -use penumbra_keys::{ +use penumbra_sdk_asset::{Balance, Value, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_keys::{ keys::{IncomingViewingKey, OutgoingViewingKey}, symmetric::WrappedMemoKey, Address, PayloadKey, }; -use penumbra_proto::{core::component::shielded_pool::v1 as pb, DomainType}; +use penumbra_sdk_proto::{core::component::shielded_pool::v1 as pb, DomainType}; use rand_core::{CryptoRng, RngCore}; use serde::{Deserialize, Serialize}; @@ -80,7 +80,7 @@ impl OutputPlan { OutputProof::prove( self.proof_blinding_r, self.proof_blinding_s, - &penumbra_proof_params::OUTPUT_PROOF_PROVING_KEY, + &penumbra_sdk_proof_params::OUTPUT_PROOF_PROVING_KEY, OutputProofPublic { balance_commitment, note_commitment, @@ -174,16 +174,16 @@ mod test { use crate::output::OutputProofPublic; use super::OutputPlan; - use penumbra_asset::Value; - use penumbra_keys::{ + use penumbra_sdk_asset::Value; + use penumbra_sdk_keys::{ keys::{Bip44Path, SeedPhrase, SpendKey}, PayloadKey, }; - use penumbra_proof_params::OUTPUT_PROOF_VERIFICATION_KEY; + use penumbra_sdk_proof_params::OUTPUT_PROOF_VERIFICATION_KEY; use rand_core::OsRng; #[test] - /// Check that a valid output proof passes the `penumbra_crypto` integrity checks successfully. + /// Check that a valid output proof passes the `penumbra_sdk_crypto` integrity checks successfully. /// This test serves to anchor how an `OutputPlan` prepares its `OutputProof`, in particular /// the balance and note commitments. fn check_output_proof_verification() { diff --git a/crates/core/component/shielded-pool/src/output/proof.rs b/crates/core/component/shielded-pool/src/output/proof.rs index 323bf124f2..550286a9bc 100644 --- a/crates/core/component/shielded-pool/src/output/proof.rs +++ b/crates/core/component/shielded-pool/src/output/proof.rs @@ -14,17 +14,17 @@ use ark_groth16::{Groth16, PreparedVerifyingKey, Proof, ProvingKey}; use ark_r1cs_std::prelude::*; use ark_relations::r1cs::{ConstraintSynthesizer, ConstraintSystemRef}; use ark_snark::SNARK; -use penumbra_keys::{keys::Diversifier, Address}; -use penumbra_proto::{penumbra::core::component::shielded_pool::v1 as pb, DomainType}; -use penumbra_tct::r1cs::StateCommitmentVar; +use penumbra_sdk_keys::{keys::Diversifier, Address}; +use penumbra_sdk_proto::{penumbra::core::component::shielded_pool::v1 as pb, DomainType}; +use penumbra_sdk_tct::r1cs::StateCommitmentVar; use crate::{note, Note, Rseed}; -use penumbra_asset::{ +use penumbra_sdk_asset::{ balance, balance::{commitment::BalanceCommitmentVar, BalanceVar}, Value, }; -use penumbra_proof_params::{DummyWitness, VerifyingKeyExt, GROTH16_PROOF_LENGTH_BYTES}; +use penumbra_sdk_proof_params::{DummyWitness, VerifyingKeyExt, GROTH16_PROOF_LENGTH_BYTES}; /// The public input for an [`OutputProof`]. #[derive(Clone, Debug)] @@ -46,7 +46,7 @@ pub struct OutputProofPrivate { #[cfg(test)] fn check_satisfaction(public: &OutputProofPublic, private: &OutputProofPrivate) -> Result<()> { - use penumbra_asset::Balance; + use penumbra_sdk_asset::Balance; if private.note.diversified_generator() == decaf377::Element::default() { anyhow::bail!("diversified generator is identity"); @@ -264,9 +264,9 @@ impl TryFrom for OutputProof { mod tests { use super::*; use decaf377::{Fq, Fr}; - use penumbra_asset::{asset, Balance, Value}; - use penumbra_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; - use penumbra_num::Amount; + use penumbra_sdk_asset::{asset, Balance, Value}; + use penumbra_sdk_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; + use penumbra_sdk_num::Amount; use proptest::prelude::*; use crate::{note, Note}; diff --git a/crates/core/component/shielded-pool/src/output/view.rs b/crates/core/component/shielded-pool/src/output/view.rs index adcd1e4b1f..5321e7a561 100644 --- a/crates/core/component/shielded-pool/src/output/view.rs +++ b/crates/core/component/shielded-pool/src/output/view.rs @@ -1,5 +1,5 @@ -use penumbra_keys::PayloadKey; -use penumbra_proto::{core::component::shielded_pool::v1 as pbt, DomainType}; +use penumbra_sdk_keys::PayloadKey; +use penumbra_sdk_proto::{core::component::shielded_pool::v1 as pbt, DomainType}; use serde::{Deserialize, Serialize}; use crate::NoteView; diff --git a/crates/core/component/shielded-pool/src/params.rs b/crates/core/component/shielded-pool/src/params.rs index 6658420fcc..4b13c623c8 100644 --- a/crates/core/component/shielded-pool/src/params.rs +++ b/crates/core/component/shielded-pool/src/params.rs @@ -1,6 +1,6 @@ -use penumbra_proto::penumbra::core::component::shielded_pool::v1 as pb; +use penumbra_sdk_proto::penumbra::core::component::shielded_pool::v1 as pb; -use penumbra_proto::DomainType; +use penumbra_sdk_proto::DomainType; use serde::{Deserialize, Serialize}; use crate::fmd; diff --git a/crates/core/component/shielded-pool/src/rseed.rs b/crates/core/component/shielded-pool/src/rseed.rs index 78e75f970b..db3b2c307c 100644 --- a/crates/core/component/shielded-pool/src/rseed.rs +++ b/crates/core/component/shielded-pool/src/rseed.rs @@ -1,6 +1,6 @@ use decaf377::{Fq, Fr}; use decaf377_ka as ka; -use penumbra_keys::prf; +use penumbra_sdk_keys::prf; use rand::{CryptoRng, RngCore}; /// The rseed is a uniformly random 32-byte sequence included in the note plaintext. diff --git a/crates/core/component/shielded-pool/src/spend/action.rs b/crates/core/component/shielded-pool/src/spend/action.rs index 83517d6748..5fb78fe902 100644 --- a/crates/core/component/shielded-pool/src/spend/action.rs +++ b/crates/core/component/shielded-pool/src/spend/action.rs @@ -2,10 +2,10 @@ use std::convert::{TryFrom, TryInto}; use anyhow::{Context, Error}; use decaf377_rdsa::{Signature, SpendAuth, VerificationKey}; -use penumbra_asset::balance; -use penumbra_proto::{core::component::shielded_pool::v1 as pb, DomainType}; -use penumbra_sct::Nullifier; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_asset::balance; +use penumbra_sdk_proto::{core::component::shielded_pool::v1 as pb, DomainType}; +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; use crate::SpendProof; diff --git a/crates/core/component/shielded-pool/src/spend/plan.rs b/crates/core/component/shielded-pool/src/spend/plan.rs index 1602badd0b..f017e7f510 100644 --- a/crates/core/component/shielded-pool/src/spend/plan.rs +++ b/crates/core/component/shielded-pool/src/spend/plan.rs @@ -1,10 +1,10 @@ use decaf377::{Fq, Fr}; use decaf377_rdsa::{Signature, SpendAuth}; -use penumbra_asset::{Balance, Value, STAKING_TOKEN_ASSET_ID}; -use penumbra_keys::{keys::AddressIndex, FullViewingKey}; -use penumbra_proto::{core::component::shielded_pool::v1 as pb, DomainType}; -use penumbra_sct::Nullifier; -use penumbra_tct as tct; +use penumbra_sdk_asset::{Balance, Value, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_keys::{keys::AddressIndex, FullViewingKey}; +use penumbra_sdk_proto::{core::component::shielded_pool::v1 as pb, DomainType}; +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_tct as tct; use rand_core::{CryptoRng, RngCore}; use serde::{Deserialize, Serialize}; @@ -121,7 +121,7 @@ impl SpendPlan { SpendProof::prove( self.proof_blinding_r, self.proof_blinding_s, - &penumbra_proof_params::SPEND_PROOF_PROVING_KEY, + &penumbra_sdk_proof_params::SPEND_PROOF_PROVING_KEY, public, private, ) diff --git a/crates/core/component/shielded-pool/src/spend/proof.rs b/crates/core/component/shielded-pool/src/spend/proof.rs index 936f03f329..5575b8736e 100644 --- a/crates/core/component/shielded-pool/src/spend/proof.rs +++ b/crates/core/component/shielded-pool/src/spend/proof.rs @@ -19,22 +19,22 @@ use ark_r1cs_std::prelude::AllocVar; use ark_relations::r1cs::{ConstraintSynthesizer, ConstraintSystemRef}; use ark_snark::SNARK; use decaf377_rdsa::{SpendAuth, VerificationKey}; -use penumbra_proto::{penumbra::core::component::shielded_pool::v1 as pb, DomainType}; -use penumbra_tct as tct; -use penumbra_tct::r1cs::StateCommitmentVar; +use penumbra_sdk_proto::{penumbra::core::component::shielded_pool::v1 as pb, DomainType}; +use penumbra_sdk_tct as tct; +use penumbra_sdk_tct::r1cs::StateCommitmentVar; use crate::{note, Note, Rseed}; -use penumbra_asset::{ +use penumbra_sdk_asset::{ balance::commitment::BalanceCommitmentVar, balance::{self, Commitment}, Value, }; -use penumbra_keys::keys::{ +use penumbra_sdk_keys::keys::{ AuthorizationKeyVar, Bip44Path, IncomingViewingKeyVar, NullifierKey, NullifierKeyVar, RandomizedVerificationKey, SeedPhrase, SpendAuthRandomizerVar, SpendKey, }; -use penumbra_proof_params::{DummyWitness, VerifyingKeyExt, GROTH16_PROOF_LENGTH_BYTES}; -use penumbra_sct::{Nullifier, NullifierVar}; +use penumbra_sdk_proof_params::{DummyWitness, VerifyingKeyExt, GROTH16_PROOF_LENGTH_BYTES}; +use penumbra_sdk_sct::{Nullifier, NullifierVar}; use tap::Tap; /// The public input for a [`SpendProof`]. @@ -69,7 +69,7 @@ pub struct SpendProofPrivate { #[cfg(test)] fn check_satisfaction(public: &SpendProofPublic, private: &SpendProofPrivate) -> Result<()> { - use penumbra_keys::keys::FullViewingKey; + use penumbra_sdk_keys::keys::FullViewingKey; let note_commitment = private.note.commit(); if note_commitment != private.state_commitment_proof.commitment() { @@ -387,20 +387,20 @@ mod tests { use super::*; use ark_r1cs_std::prelude::Boolean; use decaf377::{Fq, Fr}; - use penumbra_asset::{asset, Value}; - use penumbra_keys::{ + use penumbra_sdk_asset::{asset, Value}; + use penumbra_sdk_keys::{ keys::{Bip44Path, SeedPhrase, SpendKey}, Address, }; - use penumbra_num::Amount; - use penumbra_proof_params::generate_prepared_test_parameters; - use penumbra_sct::Nullifier; - use penumbra_tct::StateCommitment; + use penumbra_sdk_num::Amount; + use penumbra_sdk_proof_params::generate_prepared_test_parameters; + use penumbra_sdk_sct::Nullifier; + use penumbra_sdk_tct::StateCommitment; use proptest::prelude::*; use crate::Note; use decaf377_rdsa::{SpendAuth, VerificationKey}; - use penumbra_tct as tct; + use penumbra_sdk_tct as tct; use rand_core::OsRng; fn fr_strategy() -> BoxedStrategy { diff --git a/crates/core/component/shielded-pool/src/spend/view.rs b/crates/core/component/shielded-pool/src/spend/view.rs index 01ecf1cdb4..d0309b9aff 100644 --- a/crates/core/component/shielded-pool/src/spend/view.rs +++ b/crates/core/component/shielded-pool/src/spend/view.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{core::component::shielded_pool::v1 as pbt, DomainType}; +use penumbra_sdk_proto::{core::component::shielded_pool::v1 as pbt, DomainType}; use serde::{Deserialize, Serialize}; use crate::{NoteView, Spend}; diff --git a/crates/core/component/shielded-pool/src/state_key.rs b/crates/core/component/shielded-pool/src/state_key.rs index 4c79c4cda7..d20f4ee5eb 100644 --- a/crates/core/component/shielded-pool/src/state_key.rs +++ b/crates/core/component/shielded-pool/src/state_key.rs @@ -1,5 +1,5 @@ pub mod denom_metadata_by_asset { - use penumbra_asset::asset; + use penumbra_sdk_asset::asset; use std::string::String; pub fn prefix() -> &'static str { diff --git a/crates/core/component/stake/Cargo.toml b/crates/core/component/stake/Cargo.toml index d2f9627f7c..7bf9ed274e 100644 --- a/crates/core/component/stake/Cargo.toml +++ b/crates/core/component/stake/Cargo.toml @@ -1,17 +1,21 @@ [package] -name = "penumbra-stake" +name = "penumbra-sdk-stake" +authors = {workspace = true} +repository = {workspace = true} +description = "A tokenized/delegated staking implementation for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] component = [ "cnidarium-component", "cnidarium", - "penumbra-proto/cnidarium", - "penumbra-proto/rpc", - "penumbra-sct/component", - "penumbra-shielded-pool/component", - "penumbra-distributions/component", + "penumbra-sdk-proto/cnidarium", + "penumbra-sdk-proto/rpc", + "penumbra-sdk-sct/component", + "penumbra-sdk-shielded-pool/component", + "penumbra-sdk-distributions/component", "tokio", "im", "futures", @@ -20,11 +24,11 @@ component = [ "tonic", "metrics", ] -# proving-keys = ["penumbra-proof-params/proving-keys"] +# proving-keys = ["penumbra-sdk-proof-params/proving-keys"] default = ["component"] docsrs = [] parallel = [ - "penumbra-tct/parallel", + "penumbra-sdk-tct/parallel", "ark-ff/parallel", "decaf377-rdsa/parallel", "ark-groth16/parallel", @@ -54,16 +58,16 @@ hex = {workspace = true} im = {workspace = true, optional = true} metrics = {workspace = true, optional = true} once_cell = {workspace = true} -penumbra-asset = {workspace = true, default-features = false} -penumbra-distributions = {workspace = true, default-features = false} -penumbra-keys = {workspace = true, default-features = false} -penumbra-num = {workspace = true, default-features = false} -penumbra-proof-params = {workspace = true, default-features = true} -penumbra-proto = {workspace = true, default-features = true} -penumbra-sct = {workspace = true, default-features = false} -penumbra-shielded-pool = {workspace = true, default-features = false} -penumbra-tct = {workspace = true, default-features = true} -penumbra-txhash = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = false} +penumbra-sdk-distributions = {workspace = true, default-features = false} +penumbra-sdk-keys = {workspace = true, default-features = false} +penumbra-sdk-num = {workspace = true, default-features = false} +penumbra-sdk-proof-params = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, default-features = true} +penumbra-sdk-sct = {workspace = true, default-features = false} +penumbra-sdk-shielded-pool = {workspace = true, default-features = false} +penumbra-sdk-tct = {workspace = true, default-features = true} +penumbra-sdk-txhash = {workspace = true, default-features = false} rand_chacha = {workspace = true} rand_core = {workspace = true} regex = {workspace = true} diff --git a/crates/core/component/stake/src/changes.rs b/crates/core/component/stake/src/changes.rs index 446d1fe854..d8b57d9ef7 100644 --- a/crates/core/component/stake/src/changes.rs +++ b/crates/core/component/stake/src/changes.rs @@ -1,6 +1,6 @@ use crate::{Delegate, Undelegate}; use anyhow::Result; -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; /// Data structure used to track queued delegation changes that have been diff --git a/crates/core/component/stake/src/component/action_handler/delegate.rs b/crates/core/component/stake/src/component/action_handler/delegate.rs index 5b01bc9963..5acb78ef86 100644 --- a/crates/core/component/stake/src/component/action_handler/delegate.rs +++ b/crates/core/component/stake/src/component/action_handler/delegate.rs @@ -2,9 +2,9 @@ use anyhow::{ensure, Result}; use async_trait::async_trait; use cnidarium::StateWrite; use cnidarium_component::ActionHandler; -use penumbra_num::Amount; -use penumbra_proto::{DomainType, StateWriteProto}; -use penumbra_sct::component::clock::EpochRead; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{DomainType, StateWriteProto}; +use penumbra_sdk_sct::component::clock::EpochRead; use crate::{ component::validator_handler::ValidatorDataRead, event, validator::State::*, Delegate, diff --git a/crates/core/component/stake/src/component/action_handler/undelegate.rs b/crates/core/component/stake/src/component/action_handler/undelegate.rs index da3947ee01..5961112a88 100644 --- a/crates/core/component/stake/src/component/action_handler/undelegate.rs +++ b/crates/core/component/stake/src/component/action_handler/undelegate.rs @@ -1,9 +1,9 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::StateWrite; -use penumbra_proto::{DomainType as _, StateWriteProto}; -use penumbra_sct::component::clock::EpochRead; -use penumbra_shielded_pool::component::AssetRegistry; +use penumbra_sdk_proto::{DomainType as _, StateWriteProto}; +use penumbra_sdk_sct::component::clock::EpochRead; +use penumbra_sdk_shielded_pool::component::AssetRegistry; use crate::{ component::action_handler::ActionHandler, diff --git a/crates/core/component/stake/src/component/action_handler/undelegate_claim.rs b/crates/core/component/stake/src/component/action_handler/undelegate_claim.rs index 0692dc6120..3ed500f842 100644 --- a/crates/core/component/stake/src/component/action_handler/undelegate_claim.rs +++ b/crates/core/component/stake/src/component/action_handler/undelegate_claim.rs @@ -1,8 +1,8 @@ use anyhow::{ensure, Result}; use async_trait::async_trait; use cnidarium::StateWrite; -use penumbra_proof_params::CONVERT_PROOF_VERIFICATION_KEY; -use penumbra_sct::component::clock::EpochRead; +use penumbra_sdk_proof_params::CONVERT_PROOF_VERIFICATION_KEY; +use penumbra_sdk_sct::component::clock::EpochRead; use crate::component::validator_handler::ValidatorDataRead; use crate::component::SlashingData; diff --git a/crates/core/component/stake/src/component/action_handler/validator_definition.rs b/crates/core/component/stake/src/component/action_handler/validator_definition.rs index fde0291007..5482ead796 100644 --- a/crates/core/component/stake/src/component/action_handler/validator_definition.rs +++ b/crates/core/component/stake/src/component/action_handler/validator_definition.rs @@ -10,7 +10,7 @@ use anyhow::{ensure, Context, Result}; use async_trait::async_trait; use cnidarium::StateWrite; use decaf377_rdsa::VerificationKey; -use penumbra_proto::DomainType; +use penumbra_sdk_proto::DomainType; #[async_trait] impl ActionHandler for validator::Definition { diff --git a/crates/core/component/stake/src/component/epoch_handler.rs b/crates/core/component/stake/src/component/epoch_handler.rs index a4be223c4a..6b58bf65a5 100644 --- a/crates/core/component/stake/src/component/epoch_handler.rs +++ b/crates/core/component/stake/src/component/epoch_handler.rs @@ -17,10 +17,10 @@ use anyhow::{Context, Result}; use async_trait::async_trait; use cnidarium::StateWrite; use futures::{StreamExt, TryStreamExt}; -use penumbra_distributions::component::StateReadExt as _; -use penumbra_num::{fixpoint::U128x128, Amount}; -use penumbra_proto::{StateReadProto, StateWriteProto}; -use penumbra_sct::{component::clock::EpochRead, epoch::Epoch}; +use penumbra_sdk_distributions::component::StateReadExt as _; +use penumbra_sdk_num::{fixpoint::U128x128, Amount}; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; +use penumbra_sdk_sct::{component::clock::EpochRead, epoch::Epoch}; use std::collections::{BTreeMap, BTreeSet}; use tendermint::{validator::Update, PublicKey}; use tokio::task::JoinSet; diff --git a/crates/core/component/stake/src/component/rpc.rs b/crates/core/component/stake/src/component/rpc.rs index ad7a27ad87..0c0edf2f44 100644 --- a/crates/core/component/stake/src/component/rpc.rs +++ b/crates/core/component/stake/src/component/rpc.rs @@ -2,7 +2,7 @@ use std::pin::Pin; use cnidarium::Storage; use futures::StreamExt; -use penumbra_proto::{ +use penumbra_sdk_proto::{ core::component::stake::v1::{ query_service_server::QueryService, CurrentValidatorRateRequest, CurrentValidatorRateResponse, GetValidatorInfoRequest, GetValidatorInfoResponse, diff --git a/crates/core/component/stake/src/component/stake.rs b/crates/core/component/stake/src/component/stake.rs index 98b8bf8139..73be8dddcd 100644 --- a/crates/core/component/stake/src/component/stake.rs +++ b/crates/core/component/stake/src/component/stake.rs @@ -14,9 +14,9 @@ use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; use cnidarium_component::Component; use futures::{StreamExt, TryStreamExt}; -use penumbra_num::Amount; -use penumbra_proto::{DomainType, StateReadProto, StateWriteProto}; -use penumbra_sct::component::clock::EpochRead; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{DomainType, StateReadProto, StateWriteProto}; +use penumbra_sdk_sct::component::clock::EpochRead; use std::pin::Pin; use std::str::FromStr; use std::{collections::BTreeMap, sync::Arc}; @@ -42,7 +42,7 @@ impl Staking {} impl Component for Staking { type AppState = ( crate::genesis::Content, - penumbra_shielded_pool::genesis::Content, + penumbra_sdk_shielded_pool::genesis::Content, ); #[instrument(name = "staking", skip(state, app_state))] diff --git a/crates/core/component/stake/src/component/validator_handler/uptime_tracker.rs b/crates/core/component/stake/src/component/validator_handler/uptime_tracker.rs index b3b9999165..7653aaef47 100644 --- a/crates/core/component/stake/src/component/validator_handler/uptime_tracker.rs +++ b/crates/core/component/stake/src/component/validator_handler/uptime_tracker.rs @@ -17,8 +17,8 @@ use { async_trait::async_trait, cnidarium::StateWrite, futures::StreamExt as _, - penumbra_proto::{DomainType, StateWriteProto}, - penumbra_sct::component::clock::EpochRead, + penumbra_sdk_proto::{DomainType, StateWriteProto}, + penumbra_sdk_sct::component::clock::EpochRead, std::collections::BTreeMap, tap::Tap, tendermint::abci::types::CommitInfo, diff --git a/crates/core/component/stake/src/component/validator_handler/validator_manager.rs b/crates/core/component/stake/src/component/validator_handler/validator_manager.rs index 2064291966..8f2b6ca112 100644 --- a/crates/core/component/stake/src/component/validator_handler/validator_manager.rs +++ b/crates/core/component/stake/src/component/validator_handler/validator_manager.rs @@ -22,14 +22,14 @@ use { anyhow::{ensure, Result}, async_trait::async_trait, cnidarium::StateWrite, - penumbra_asset::asset, - penumbra_num::Amount, - penumbra_proto::{DomainType as _, StateWriteProto}, - penumbra_sct::component::{ + penumbra_sdk_asset::asset, + penumbra_sdk_num::Amount, + penumbra_sdk_proto::{DomainType as _, StateWriteProto}, + penumbra_sdk_sct::component::{ clock::{EpochManager, EpochRead}, StateReadExt as _, }, - penumbra_shielded_pool::component::AssetRegistry, + penumbra_sdk_shielded_pool::component::AssetRegistry, std::collections::BTreeMap, tendermint::abci::types::Misbehavior, tracing::{instrument, Instrument}, diff --git a/crates/core/component/stake/src/component/validator_handler/validator_store.rs b/crates/core/component/stake/src/component/validator_handler/validator_store.rs index b3e7508ce1..ef1c5845d7 100644 --- a/crates/core/component/stake/src/component/validator_handler/validator_store.rs +++ b/crates/core/component/stake/src/component/validator_handler/validator_store.rs @@ -10,8 +10,10 @@ use anyhow::Result; use async_trait::async_trait; use cnidarium::{StateRead, StateWrite}; use futures::{Future, FutureExt}; -use penumbra_num::Amount; -use penumbra_proto::{state::future::DomainFuture, DomainType, StateReadProto, StateWriteProto}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{ + state::future::DomainFuture, DomainType, StateReadProto, StateWriteProto, +}; use std::pin::Pin; use tendermint::PublicKey; use tracing::instrument; diff --git a/crates/core/component/stake/src/current_consensus_keys.rs b/crates/core/component/stake/src/current_consensus_keys.rs index 08ae346383..89af13738a 100644 --- a/crates/core/component/stake/src/current_consensus_keys.rs +++ b/crates/core/component/stake/src/current_consensus_keys.rs @@ -1,5 +1,5 @@ use anyhow::Result; -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use tendermint::PublicKey; diff --git a/crates/core/component/stake/src/delegate.rs b/crates/core/component/stake/src/delegate.rs index ce43a41437..4e127ec718 100644 --- a/crates/core/component/stake/src/delegate.rs +++ b/crates/core/component/stake/src/delegate.rs @@ -1,7 +1,7 @@ -use penumbra_asset::{Balance, Value, STAKING_TOKEN_ASSET_ID}; -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_asset::{Balance, Value, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; use crate::{DelegationToken, IdentityKey}; diff --git a/crates/core/component/stake/src/delegation_token.rs b/crates/core/component/stake/src/delegation_token.rs index 9a92358736..171ec9accd 100644 --- a/crates/core/component/stake/src/delegation_token.rs +++ b/crates/core/component/stake/src/delegation_token.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use regex::Regex; -use penumbra_asset::asset; +use penumbra_sdk_asset::asset; use super::IdentityKey; diff --git a/crates/core/component/stake/src/event.rs b/crates/core/component/stake/src/event.rs index cb0d184af4..327b0f9b97 100644 --- a/crates/core/component/stake/src/event.rs +++ b/crates/core/component/stake/src/event.rs @@ -4,8 +4,8 @@ use crate::{ Delegate, IdentityKey, Penalty, Undelegate, }; use anyhow::{anyhow, Context as _}; -use penumbra_num::Amount; -use penumbra_proto::{core::component::stake::v1 as pb, DomainType, Name as _}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{core::component::stake::v1 as pb, DomainType, Name as _}; use tendermint::abci::types::Misbehavior; #[derive(Clone, Debug)] diff --git a/crates/core/component/stake/src/funding_stream.rs b/crates/core/component/stake/src/funding_stream.rs index 67a63c4dd8..711f37497c 100644 --- a/crates/core/component/stake/src/funding_stream.rs +++ b/crates/core/component/stake/src/funding_stream.rs @@ -1,7 +1,7 @@ use crate::BPS_SQUARED_SCALING_FACTOR; -use penumbra_keys::Address; -use penumbra_num::{fixpoint::U128x128, Amount}; -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_keys::Address; +use penumbra_sdk_num::{fixpoint::U128x128, Amount}; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; /// A destination for a portion of a validator's commission of staking rewards. diff --git a/crates/core/component/stake/src/genesis.rs b/crates/core/component/stake/src/genesis.rs index cbbf68419f..337d524f41 100644 --- a/crates/core/component/stake/src/genesis.rs +++ b/crates/core/component/stake/src/genesis.rs @@ -1,5 +1,5 @@ use anyhow::Context; -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::params::StakeParameters; diff --git a/crates/core/component/stake/src/governance_key.rs b/crates/core/component/stake/src/governance_key.rs index 6ed38bd4ff..99a5f23c16 100644 --- a/crates/core/component/stake/src/governance_key.rs +++ b/crates/core/component/stake/src/governance_key.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{ +use penumbra_sdk_proto::{ // TODO: why is the governance key part of this crate? core::keys::v1 as pb, serializers::bech32str::{self, validator_governance_key::BECH32_PREFIX}, diff --git a/crates/core/component/stake/src/identity_key.rs b/crates/core/component/stake/src/identity_key.rs index 98c85eb986..0ec89e392a 100644 --- a/crates/core/component/stake/src/identity_key.rs +++ b/crates/core/component/stake/src/identity_key.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{ +use penumbra_sdk_proto::{ core::component::stake::v1::CurrentValidatorRateRequest, // TODO: why is this not in the keys crate? core::keys::v1 as pb, diff --git a/crates/core/component/stake/src/lib.rs b/crates/core/component/stake/src/lib.rs index ccaab1c2be..08d8e0c52a 100644 --- a/crates/core/component/stake/src/lib.rs +++ b/crates/core/component/stake/src/lib.rs @@ -29,7 +29,7 @@ pub mod component; #[cfg(feature = "component")] pub use component::{StateReadExt, StateWriteExt}; -pub static BPS_SQUARED_SCALING_FACTOR: once_cell::sync::Lazy = +pub static BPS_SQUARED_SCALING_FACTOR: once_cell::sync::Lazy = once_cell::sync::Lazy::new(|| 1_0000_0000u128.into()); pub use self::delegate::Delegate; diff --git a/crates/core/component/stake/src/params.rs b/crates/core/component/stake/src/params.rs index 2737c5ab08..2fd1e0c2a5 100644 --- a/crates/core/component/stake/src/params.rs +++ b/crates/core/component/stake/src/params.rs @@ -1,6 +1,6 @@ -use penumbra_num::Amount; -use penumbra_proto::core::component::stake::v1 as pb; -use penumbra_proto::DomainType; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::core::component::stake::v1 as pb; +use penumbra_sdk_proto::DomainType; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] diff --git a/crates/core/component/stake/src/penalty.rs b/crates/core/component/stake/src/penalty.rs index 6896b71ed2..80447e4c4d 100644 --- a/crates/core/component/stake/src/penalty.rs +++ b/crates/core/component/stake/src/penalty.rs @@ -1,10 +1,10 @@ use ark_ff::ToConstraintField; use decaf377::Fq; -use penumbra_proto::{penumbra::core::component::stake::v1 as pbs, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pbs, DomainType}; use serde::{Deserialize, Serialize}; -use penumbra_asset::{asset, Balance, Value, STAKING_TOKEN_ASSET_ID}; -use penumbra_num::{fixpoint::U128x128, Amount}; +use penumbra_sdk_asset::{asset, Balance, Value, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_num::{fixpoint::U128x128, Amount}; /// Tracks slashing penalties applied to a validator in some epoch. /// diff --git a/crates/core/component/stake/src/rate.rs b/crates/core/component/stake/src/rate.rs index 435b24c5e0..c59144ac51 100644 --- a/crates/core/component/stake/src/rate.rs +++ b/crates/core/component/stake/src/rate.rs @@ -1,10 +1,10 @@ //! Staking reward and delegation token exchange rates. -use penumbra_num::fixpoint::U128x128; -use penumbra_num::Amount; -use penumbra_proto::core::component::stake::v1::CurrentValidatorRateResponse; -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; -use penumbra_sct::epoch::Epoch; +use penumbra_sdk_num::fixpoint::U128x128; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::core::component::stake::v1::CurrentValidatorRateResponse; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_sct::epoch::Epoch; use serde::{Deserialize, Serialize}; use crate::{validator::State, FundingStream, IdentityKey}; diff --git a/crates/core/component/stake/src/unbonding_token.rs b/crates/core/component/stake/src/unbonding_token.rs index c6921d9e33..27fd7a4add 100644 --- a/crates/core/component/stake/src/unbonding_token.rs +++ b/crates/core/component/stake/src/unbonding_token.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use regex::Regex; -use penumbra_asset::asset; +use penumbra_sdk_asset::asset; use crate::IdentityKey; diff --git a/crates/core/component/stake/src/undelegate.rs b/crates/core/component/stake/src/undelegate.rs index 908e8614cc..1a9cc9f719 100644 --- a/crates/core/component/stake/src/undelegate.rs +++ b/crates/core/component/stake/src/undelegate.rs @@ -1,8 +1,8 @@ -use penumbra_asset::{Balance, Value}; -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; -use penumbra_sct::epoch::Epoch; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_asset::{Balance, Value}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_sct::epoch::Epoch; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; use crate::{DelegationToken, IdentityKey, UnbondingToken}; diff --git a/crates/core/component/stake/src/undelegate_claim/action.rs b/crates/core/component/stake/src/undelegate_claim/action.rs index a27cd5c488..498607d49c 100644 --- a/crates/core/component/stake/src/undelegate_claim/action.rs +++ b/crates/core/component/stake/src/undelegate_claim/action.rs @@ -1,6 +1,6 @@ -use penumbra_asset::balance; -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_asset::balance; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; use crate::{IdentityKey, Penalty, UndelegateClaimProof}; diff --git a/crates/core/component/stake/src/undelegate_claim/plan.rs b/crates/core/component/stake/src/undelegate_claim/plan.rs index 6d0f5bbe6c..b4d89df857 100644 --- a/crates/core/component/stake/src/undelegate_claim/plan.rs +++ b/crates/core/component/stake/src/undelegate_claim/plan.rs @@ -1,8 +1,8 @@ use decaf377::{Fq, Fr}; -use penumbra_asset::{asset, balance, Balance}; -use penumbra_num::Amount; -use penumbra_proof_params::CONVERT_PROOF_PROVING_KEY; -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_asset::{asset, balance, Balance}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proof_params::CONVERT_PROOF_PROVING_KEY; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/stake/src/undelegate_claim/proof.rs b/crates/core/component/stake/src/undelegate_claim/proof.rs index 5d42c242ab..20f8c3eb75 100644 --- a/crates/core/component/stake/src/undelegate_claim/proof.rs +++ b/crates/core/component/stake/src/undelegate_claim/proof.rs @@ -2,13 +2,13 @@ use decaf377::Bls12_377; use ark_groth16::{PreparedVerifyingKey, ProvingKey}; use base64::prelude::*; -use penumbra_proto::{core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_proto::{core::component::stake::v1 as pb, DomainType}; use decaf377::{Fq, Fr}; -use penumbra_asset::{asset, balance, STAKING_TOKEN_ASSET_ID}; -use penumbra_num::Amount; -use penumbra_proof_params::VerifyingKeyExt; -use penumbra_shielded_pool::{ConvertProof, ConvertProofPrivate, ConvertProofPublic}; +use penumbra_sdk_asset::{asset, balance, STAKING_TOKEN_ASSET_ID}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proof_params::VerifyingKeyExt; +use penumbra_sdk_shielded_pool::{ConvertProof, ConvertProofPrivate, ConvertProofPublic}; use crate::Penalty; @@ -101,14 +101,14 @@ mod tests { use super::*; use decaf377::{Fq, Fr}; use decaf377_rdsa as rdsa; - use penumbra_num::Amount; - use penumbra_proof_params::generate_prepared_test_parameters; + use penumbra_sdk_num::Amount; + use penumbra_sdk_proof_params::generate_prepared_test_parameters; use proptest::prelude::*; use rand_core::OsRng; use rdsa::VerificationKey; use crate::{IdentityKey, Penalty, UnbondingToken}; - use penumbra_shielded_pool::ConvertCircuit; + use penumbra_sdk_shielded_pool::ConvertCircuit; fn fr_strategy() -> BoxedStrategy { any::<[u8; 32]>() diff --git a/crates/core/component/stake/src/uptime.rs b/crates/core/component/stake/src/uptime.rs index 2326f07953..4e6ed5ce2a 100644 --- a/crates/core/component/stake/src/uptime.rs +++ b/crates/core/component/stake/src/uptime.rs @@ -1,6 +1,6 @@ use bitvec::prelude::*; -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; /// Records information on a validator's uptime. diff --git a/crates/core/component/stake/src/validator.rs b/crates/core/component/stake/src/validator.rs index 734506aa5a..9c7612a73b 100644 --- a/crates/core/component/stake/src/validator.rs +++ b/crates/core/component/stake/src/validator.rs @@ -1,7 +1,7 @@ //! Penumbra validators and related structures. -use penumbra_keys::Address; -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_keys::Address; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use serde_unit_struct::{Deserialize_unit_struct, Serialize_unit_struct}; use serde_with::{serde_as, DisplayFromStr}; diff --git a/crates/core/component/stake/src/validator/bonding.rs b/crates/core/component/stake/src/validator/bonding.rs index b810b7b28e..390432c1aa 100644 --- a/crates/core/component/stake/src/validator/bonding.rs +++ b/crates/core/component/stake/src/validator/bonding.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Serialize, Deserialize)] diff --git a/crates/core/component/stake/src/validator/definition.rs b/crates/core/component/stake/src/validator/definition.rs index f3cf5fc89d..88e28674c0 100644 --- a/crates/core/component/stake/src/validator/definition.rs +++ b/crates/core/component/stake/src/validator/definition.rs @@ -1,6 +1,6 @@ use decaf377_rdsa::{Signature, SpendAuth}; -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use serde::{Deserialize, Serialize}; use crate::validator::Validator; diff --git a/crates/core/component/stake/src/validator/info.rs b/crates/core/component/stake/src/validator/info.rs index 28e9dc9a00..597a5a6445 100644 --- a/crates/core/component/stake/src/validator/info.rs +++ b/crates/core/component/stake/src/validator/info.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{ +use penumbra_sdk_proto::{ core::component::stake::v1::ValidatorInfoResponse, penumbra::core::component::stake::v1 as pb, DomainType, }; diff --git a/crates/core/component/stake/src/validator/state.rs b/crates/core/component/stake/src/validator/state.rs index cd3ceb0ebe..2ebc73bdb5 100644 --- a/crates/core/component/stake/src/validator/state.rs +++ b/crates/core/component/stake/src/validator/state.rs @@ -1,5 +1,5 @@ use anyhow::anyhow; -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; /// The state of a validator in the validator state machine. diff --git a/crates/core/component/stake/src/validator/status.rs b/crates/core/component/stake/src/validator/status.rs index 4ec6cf8ea5..5ea4cef456 100644 --- a/crates/core/component/stake/src/validator/status.rs +++ b/crates/core/component/stake/src/validator/status.rs @@ -1,5 +1,5 @@ -use penumbra_num::Amount; -use penumbra_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{penumbra::core::component::stake::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::{validator::BondingState, validator::State, IdentityKey}; diff --git a/crates/core/keys/Cargo.toml b/crates/core/keys/Cargo.toml index d4f1aa23bd..106f1ab868 100644 --- a/crates/core/keys/Cargo.toml +++ b/crates/core/keys/Cargo.toml @@ -1,11 +1,15 @@ [package] -name = "penumbra-keys" +name = "penumbra-sdk-keys" +authors = {workspace = true} +repository = {workspace = true} +description = "Key data structures and core utilities for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] default = [] -parallel = ["penumbra-tct/parallel", "ark-ff/parallel", "poseidon377/parallel", "decaf377-rdsa/parallel", "ark-std/parallel", "ark-r1cs-std/parallel", "decaf377/parallel"] +parallel = ["penumbra-sdk-tct/parallel", "ark-ff/parallel", "poseidon377/parallel", "decaf377-rdsa/parallel", "ark-std/parallel", "ark-r1cs-std/parallel", "decaf377/parallel"] [dependencies] aes = "0.8.1" @@ -34,9 +38,9 @@ ibig = {workspace = true} num-bigint = {workspace = true} once_cell = {workspace = true} pbkdf2 = "0.12.0" -penumbra-asset = {workspace = true, default-features = true} -penumbra-proto = {workspace = true, default-features = true} -penumbra-tct = {workspace = true, features = ["r1cs"], default-features = true} +penumbra-sdk-asset = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, default-features = true} +penumbra-sdk-tct = {workspace = true, features = ["r1cs"], default-features = true} poseidon377 = {workspace = true, features = ["r1cs"]} rand = {workspace = true} rand_core = {workspace = true, features = ["getrandom"]} diff --git a/crates/core/keys/src/address.rs b/crates/core/keys/src/address.rs index 67258da93c..e3f589b5f3 100644 --- a/crates/core/keys/src/address.rs +++ b/crates/core/keys/src/address.rs @@ -10,7 +10,7 @@ use anyhow::Context; use ark_serialize::CanonicalDeserialize; use decaf377::Fq; use f4jumble::{f4jumble, f4jumble_inv}; -use penumbra_proto::{penumbra::core::keys::v1 as pb, serializers::bech32str, DomainType}; +use penumbra_sdk_proto::{penumbra::core::keys::v1 as pb, serializers::bech32str, DomainType}; use rand::{CryptoRng, Rng}; use serde::{Deserialize, Serialize}; use sha2::{Digest, Sha256}; @@ -471,7 +471,7 @@ mod tests { let addr = Address::from_str(&bech32m_addr).expect("can decode valid address"); - use penumbra_proto::Message; + use penumbra_sdk_proto::Message; let proto_addr = dest.encode_to_vec(); let proto_addr_bech32m = pb::Address { diff --git a/crates/core/keys/src/address/view.rs b/crates/core/keys/src/address/view.rs index 932d80368a..9a2ef4e296 100644 --- a/crates/core/keys/src/address/view.rs +++ b/crates/core/keys/src/address/view.rs @@ -2,7 +2,7 @@ use std::cmp::Ordering; use serde::{Deserialize, Serialize}; -use penumbra_proto::{penumbra::core::keys::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::keys::v1 as pb, DomainType}; use crate::keys::{AddressIndex, WalletId}; diff --git a/crates/core/keys/src/keys/diversifier.rs b/crates/core/keys/src/keys/diversifier.rs index 99fb27b8b9..41dc7fa6cf 100644 --- a/crates/core/keys/src/keys/diversifier.rs +++ b/crates/core/keys/src/keys/diversifier.rs @@ -7,7 +7,7 @@ use aes::Aes128; use anyhow::Context; use derivative::Derivative; -use penumbra_proto::{penumbra::core::keys::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::keys::v1 as pb, DomainType}; use rand::{CryptoRng, RngCore}; use serde::{Deserialize, Serialize}; diff --git a/crates/core/keys/src/keys/fvk.rs b/crates/core/keys/src/keys/fvk.rs index 44239700bf..9ffe0da2f2 100644 --- a/crates/core/keys/src/keys/fvk.rs +++ b/crates/core/keys/src/keys/fvk.rs @@ -6,7 +6,7 @@ use poseidon377::hash_2; use rand_core::{CryptoRng, RngCore}; use serde::{Deserialize, Serialize}; -use penumbra_proto::{penumbra::core::keys::v1 as pb, serializers::bech32str, DomainType}; +use penumbra_sdk_proto::{penumbra::core::keys::v1 as pb, serializers::bech32str, DomainType}; use crate::keys::wallet_id::WalletId; use crate::{ diff --git a/crates/core/keys/src/keys/spend.rs b/crates/core/keys/src/keys/spend.rs index 311afece56..f5190e90fe 100644 --- a/crates/core/keys/src/keys/spend.rs +++ b/crates/core/keys/src/keys/spend.rs @@ -3,7 +3,7 @@ use std::convert::TryFrom; use hmac::Hmac; use pbkdf2::pbkdf2; -use penumbra_proto::{penumbra::core::keys::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::keys::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use super::{ @@ -173,7 +173,7 @@ impl TryFrom<&[u8]> for SpendKeyBytes { impl std::fmt::Display for SpendKey { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { - use penumbra_proto::serializers::bech32str; + use penumbra_sdk_proto::serializers::bech32str; let proto = pb::SpendKey::from(self.clone()); f.write_str(&bech32str::encode( &proto.inner, @@ -187,7 +187,7 @@ impl std::str::FromStr for SpendKey { type Err = anyhow::Error; fn from_str(s: &str) -> Result { - use penumbra_proto::serializers::bech32str; + use penumbra_sdk_proto::serializers::bech32str; pb::SpendKey { inner: bech32str::decode(s, bech32str::spend_key::BECH32_PREFIX, bech32str::Bech32m)?, } diff --git a/crates/core/keys/src/keys/wallet_id.rs b/crates/core/keys/src/keys/wallet_id.rs index f67e03b263..a13de9f04e 100644 --- a/crates/core/keys/src/keys/wallet_id.rs +++ b/crates/core/keys/src/keys/wallet_id.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; -use penumbra_proto::core::keys::v1; -use penumbra_proto::{penumbra::core::keys::v1 as pb, serializers::bech32str, DomainType}; +use penumbra_sdk_proto::core::keys::v1; +use penumbra_sdk_proto::{penumbra::core::keys::v1 as pb, serializers::bech32str, DomainType}; /// The hash of a full viewing key, used as an account identifier. #[derive(Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)] diff --git a/crates/core/keys/src/symmetric.rs b/crates/core/keys/src/symmetric.rs index e16e726f74..f4aaa4e2d9 100644 --- a/crates/core/keys/src/symmetric.rs +++ b/crates/core/keys/src/symmetric.rs @@ -5,9 +5,9 @@ use chacha20poly1305::{ ChaCha20Poly1305, Key, Nonce, }; use decaf377_ka as ka; -use penumbra_asset::balance; -use penumbra_proto::core::keys::v1::{self as pb}; -use penumbra_tct::StateCommitment; +use penumbra_sdk_asset::balance; +use penumbra_sdk_proto::core::keys::v1::{self as pb}; +use penumbra_sdk_tct::StateCommitment; use rand::{CryptoRng, RngCore}; pub const PAYLOAD_KEY_LEN_BYTES: usize = 32; diff --git a/crates/core/keys/tests/test_wallet_id.rs b/crates/core/keys/tests/test_wallet_id.rs index 4931b71434..c0970c4f29 100644 --- a/crates/core/keys/tests/test_wallet_id.rs +++ b/crates/core/keys/tests/test_wallet_id.rs @@ -2,8 +2,8 @@ extern crate core; use std::str::FromStr; -use penumbra_keys::keys::{SeedPhrase, SpendKey}; -use penumbra_proto::serializers::bech32str; +use penumbra_sdk_keys::keys::{SeedPhrase, SpendKey}; +use penumbra_sdk_proto::serializers::bech32str; #[test] fn wallet_id_to_bech32() { diff --git a/crates/core/num/Cargo.toml b/crates/core/num/Cargo.toml index 1c45a1d856..cf161ac4b2 100644 --- a/crates/core/num/Cargo.toml +++ b/crates/core/num/Cargo.toml @@ -1,6 +1,10 @@ [package] -name = "penumbra-num" +name = "penumbra-sdk-num" +authors = {workspace = true} +repository = {workspace = true} +description = "Numerical data structures and implementations used by Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] @@ -29,7 +33,7 @@ hex = {workspace = true} ibig = {workspace = true} num-bigint = {workspace = true} once_cell = {workspace = true} -penumbra-proto = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, default-features = true} rand = {workspace = true} rand_core = {workspace = true, features = ["getrandom"]} regex = {workspace = true} diff --git a/crates/core/num/src/amount.rs b/crates/core/num/src/amount.rs index fbb9eb2ca6..186b19a2e8 100644 --- a/crates/core/num/src/amount.rs +++ b/crates/core/num/src/amount.rs @@ -2,7 +2,7 @@ use ark_ff::{BigInteger, PrimeField, ToConstraintField}; use ark_r1cs_std::{prelude::*, uint64::UInt64}; use ark_relations::r1cs::{ConstraintSystemRef, SynthesisError}; use decaf377::{Fq, Fr}; -use penumbra_proto::{penumbra::core::num::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::num::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use std::{fmt::Display, iter::Sum, num::NonZeroU128, ops}; @@ -545,7 +545,7 @@ impl Sum for Amount { #[cfg(test)] mod test { use crate::Amount; - use penumbra_proto::penumbra::core::num::v1 as pb; + use penumbra_sdk_proto::penumbra::core::num::v1 as pb; use rand::RngCore; use rand_core::OsRng; diff --git a/crates/core/transaction/Cargo.toml b/crates/core/transaction/Cargo.toml index 02823a0493..2b43b075f5 100644 --- a/crates/core/transaction/Cargo.toml +++ b/crates/core/transaction/Cargo.toml @@ -1,6 +1,10 @@ [package] -name = "penumbra-transaction" +name = "penumbra-sdk-transaction" +authors = {workspace = true} +repository = {workspace = true} +description = "Core transaction data structures for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] @@ -8,13 +12,13 @@ default = ["std", "parallel"] std = ["ark-ff/std", "ibc-types/std"] parallel = [ "tokio", - "penumbra-shielded-pool/parallel", - "penumbra-auction/parallel", - "penumbra-dex/parallel", - "penumbra-governance/parallel", - "penumbra-stake/parallel", + "penumbra-sdk-shielded-pool/parallel", + "penumbra-sdk-auction/parallel", + "penumbra-sdk-dex/parallel", + "penumbra-sdk-governance/parallel", + "penumbra-sdk-stake/parallel", ] -download-proving-keys = ["penumbra-proof-params/download-proving-keys"] +download-proving-keys = ["penumbra-sdk-proof-params/download-proving-keys"] [dependencies] anyhow = {workspace = true} @@ -36,22 +40,22 @@ ibc-types = {workspace = true, default-features = false} num-bigint = {workspace = true} once_cell = {workspace = true} pbjson-types = {workspace = true} -penumbra-asset = {workspace = true, default-features = false} -penumbra-community-pool = {workspace = true, default-features = false} -penumbra-auction = {workspace = true, default-features = false} -penumbra-dex = {workspace = true, default-features = false} -penumbra-fee = {workspace = true, default-features = false} -penumbra-governance = {workspace = true, default-features = false} -penumbra-ibc = {workspace = true, default-features = false} -penumbra-keys = {workspace = true, default-features = false} -penumbra-num = {workspace = true, default-features = false} -penumbra-proof-params = {workspace = true, default-features = true} -penumbra-proto = {workspace = true, default-features = true} -penumbra-sct = {workspace = true, default-features = false} -penumbra-shielded-pool = {workspace = true, default-features = false} -penumbra-stake = {workspace = true, default-features = false} -penumbra-tct = {workspace = true, default-features = true } -penumbra-txhash = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = false} +penumbra-sdk-community-pool = {workspace = true, default-features = false} +penumbra-sdk-auction = {workspace = true, default-features = false} +penumbra-sdk-dex = {workspace = true, default-features = false} +penumbra-sdk-fee = {workspace = true, default-features = false} +penumbra-sdk-governance = {workspace = true, default-features = false} +penumbra-sdk-ibc = {workspace = true, default-features = false} +penumbra-sdk-keys = {workspace = true, default-features = false} +penumbra-sdk-num = {workspace = true, default-features = false} +penumbra-sdk-proof-params = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, default-features = true} +penumbra-sdk-sct = {workspace = true, default-features = false} +penumbra-sdk-shielded-pool = {workspace = true, default-features = false} +penumbra-sdk-stake = {workspace = true, default-features = false} +penumbra-sdk-tct = {workspace = true, default-features = true } +penumbra-sdk-txhash = {workspace = true, default-features = false} poseidon377 = {workspace = true, features = ["r1cs"]} rand = {workspace = true} rand_core = {workspace = true, features = ["getrandom"]} @@ -69,4 +73,4 @@ proptest-derive = {workspace = true} serde_json = {workspace = true} tendermint = {workspace = true} ed25519-consensus = {workspace = true} -penumbra-tct = {workspace = true, default-features = true, features = ["arbitrary"] } +penumbra-sdk-tct = {workspace = true, default-features = true, features = ["arbitrary"] } diff --git a/crates/core/transaction/src/action.rs b/crates/core/transaction/src/action.rs index 0ce196f431..68a5705e8f 100644 --- a/crates/core/transaction/src/action.rs +++ b/crates/core/transaction/src/action.rs @@ -1,12 +1,12 @@ use anyhow::anyhow; -use penumbra_auction::auction::dutch::actions::{ +use penumbra_sdk_auction::auction::dutch::actions::{ ActionDutchAuctionEnd, ActionDutchAuctionSchedule, ActionDutchAuctionWithdraw, }; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use std::convert::{TryFrom, TryInto}; -use penumbra_asset::balance; -use penumbra_proto::{core::transaction::v1 as pb, DomainType}; +use penumbra_sdk_asset::balance; +use penumbra_sdk_proto::{core::transaction::v1 as pb, DomainType}; use crate::{ActionView, IsAction, TransactionPerspective}; use serde::{Deserialize, Serialize}; @@ -16,31 +16,31 @@ use serde::{Deserialize, Serialize}; #[serde(try_from = "pb::Action", into = "pb::Action")] #[allow(clippy::large_enum_variant)] pub enum Action { - Output(penumbra_shielded_pool::Output), - Spend(penumbra_shielded_pool::Spend), - ValidatorDefinition(penumbra_stake::validator::Definition), - IbcRelay(penumbra_ibc::IbcRelay), - Swap(penumbra_dex::swap::Swap), - SwapClaim(penumbra_dex::swap_claim::SwapClaim), - ProposalSubmit(penumbra_governance::ProposalSubmit), - ProposalWithdraw(penumbra_governance::ProposalWithdraw), - DelegatorVote(penumbra_governance::DelegatorVote), - ValidatorVote(penumbra_governance::ValidatorVote), - ProposalDepositClaim(penumbra_governance::ProposalDepositClaim), + Output(penumbra_sdk_shielded_pool::Output), + Spend(penumbra_sdk_shielded_pool::Spend), + ValidatorDefinition(penumbra_sdk_stake::validator::Definition), + IbcRelay(penumbra_sdk_ibc::IbcRelay), + Swap(penumbra_sdk_dex::swap::Swap), + SwapClaim(penumbra_sdk_dex::swap_claim::SwapClaim), + ProposalSubmit(penumbra_sdk_governance::ProposalSubmit), + ProposalWithdraw(penumbra_sdk_governance::ProposalWithdraw), + DelegatorVote(penumbra_sdk_governance::DelegatorVote), + ValidatorVote(penumbra_sdk_governance::ValidatorVote), + ProposalDepositClaim(penumbra_sdk_governance::ProposalDepositClaim), - PositionOpen(penumbra_dex::lp::action::PositionOpen), - PositionClose(penumbra_dex::lp::action::PositionClose), - PositionWithdraw(penumbra_dex::lp::action::PositionWithdraw), + PositionOpen(penumbra_sdk_dex::lp::action::PositionOpen), + PositionClose(penumbra_sdk_dex::lp::action::PositionClose), + PositionWithdraw(penumbra_sdk_dex::lp::action::PositionWithdraw), - Delegate(penumbra_stake::Delegate), - Undelegate(penumbra_stake::Undelegate), - UndelegateClaim(penumbra_stake::UndelegateClaim), + Delegate(penumbra_sdk_stake::Delegate), + Undelegate(penumbra_sdk_stake::Undelegate), + UndelegateClaim(penumbra_sdk_stake::UndelegateClaim), - Ics20Withdrawal(penumbra_shielded_pool::Ics20Withdrawal), + Ics20Withdrawal(penumbra_sdk_shielded_pool::Ics20Withdrawal), - CommunityPoolSpend(penumbra_community_pool::CommunityPoolSpend), - CommunityPoolOutput(penumbra_community_pool::CommunityPoolOutput), - CommunityPoolDeposit(penumbra_community_pool::CommunityPoolDeposit), + CommunityPoolSpend(penumbra_sdk_community_pool::CommunityPoolSpend), + CommunityPoolOutput(penumbra_sdk_community_pool::CommunityPoolOutput), + CommunityPoolDeposit(penumbra_sdk_community_pool::CommunityPoolDeposit), ActionDutchAuctionSchedule(ActionDutchAuctionSchedule), ActionDutchAuctionEnd(ActionDutchAuctionEnd), diff --git a/crates/core/transaction/src/action_list.rs b/crates/core/transaction/src/action_list.rs index 8c9ce51b58..7278aa4de1 100644 --- a/crates/core/transaction/src/action_list.rs +++ b/crates/core/transaction/src/action_list.rs @@ -4,11 +4,11 @@ use std::collections::BTreeMap; use crate::plan::MemoPlan; use crate::{gas::GasCost, TransactionParameters}; use crate::{ActionPlan, TransactionPlan}; -use penumbra_asset::{asset, Balance}; -use penumbra_fee::{Fee, FeeTier, Gas, GasPrices}; -use penumbra_keys::Address; -use penumbra_num::Amount; -use penumbra_shielded_pool::{fmd, OutputPlan}; +use penumbra_sdk_asset::{asset, Balance}; +use penumbra_sdk_fee::{Fee, FeeTier, Gas, GasPrices}; +use penumbra_sdk_keys::Address; +use penumbra_sdk_num::Amount; +use penumbra_sdk_shielded_pool::{fmd, OutputPlan}; use rand_core::{CryptoRng, RngCore}; /// A list of planned actions to be turned into a TransactionPlan. diff --git a/crates/core/transaction/src/auth_data.rs b/crates/core/transaction/src/auth_data.rs index 2897e33c98..9a6b00a856 100644 --- a/crates/core/transaction/src/auth_data.rs +++ b/crates/core/transaction/src/auth_data.rs @@ -1,7 +1,7 @@ use decaf377_rdsa::{Signature, SpendAuth}; -use penumbra_proto::{core::transaction::v1 as pb, DomainType}; -use penumbra_txhash::EffectHash; +use penumbra_sdk_proto::{core::transaction::v1 as pb, DomainType}; +use penumbra_sdk_txhash::EffectHash; /// Authorization data returned in response to a /// [`TransactionDescription`](crate::TransactionDescription). diff --git a/crates/core/transaction/src/detection_data.rs b/crates/core/transaction/src/detection_data.rs index b968a3e9ff..e306352f11 100644 --- a/crates/core/transaction/src/detection_data.rs +++ b/crates/core/transaction/src/detection_data.rs @@ -1,8 +1,8 @@ use anyhow::Error; use decaf377_fmd::Clue; -use penumbra_proto::core::transaction::v1 as pbt; -use penumbra_proto::DomainType; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_proto::core::transaction::v1 as pbt; +use penumbra_sdk_proto::DomainType; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; /// Detection data used by a detection server using Fuzzy Message Detection. /// diff --git a/crates/core/transaction/src/gas.rs b/crates/core/transaction/src/gas.rs index 34b4ea035b..a2559ae5e1 100644 --- a/crates/core/transaction/src/gas.rs +++ b/crates/core/transaction/src/gas.rs @@ -1,16 +1,16 @@ -use penumbra_auction::auction::dutch::actions::{ +use penumbra_sdk_auction::auction::dutch::actions::{ ActionDutchAuctionEnd, ActionDutchAuctionSchedule, ActionDutchAuctionWithdraw, }; -use penumbra_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; -use penumbra_dex::{PositionClose, PositionOpen, PositionWithdraw, Swap, SwapClaim}; -use penumbra_fee::Gas; -use penumbra_ibc::IbcRelay; -use penumbra_shielded_pool::{Ics20Withdrawal, Output, Spend}; -use penumbra_stake::{ +use penumbra_sdk_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; +use penumbra_sdk_dex::{PositionClose, PositionOpen, PositionWithdraw, Swap, SwapClaim}; +use penumbra_sdk_fee::Gas; +use penumbra_sdk_ibc::IbcRelay; +use penumbra_sdk_shielded_pool::{Ics20Withdrawal, Output, Spend}; +use penumbra_sdk_stake::{ validator::Definition as ValidatorDefinition, Delegate, Undelegate, UndelegateClaim, }; -use penumbra_governance::{ +use penumbra_sdk_governance::{ DelegatorVote, ProposalDepositClaim, ProposalSubmit, ProposalWithdraw, ValidatorVote, }; @@ -19,7 +19,7 @@ use crate::{ Action, Transaction, }; -use penumbra_proto::DomainType; +use penumbra_sdk_proto::DomainType; const NULLIFIER_SIZE: u64 = 2 + 32; const NOTEPAYLOAD_SIZE: u64 = 32 + 32 + 176; diff --git a/crates/core/transaction/src/is_action.rs b/crates/core/transaction/src/is_action.rs index 8784d0987c..b985f56e0a 100644 --- a/crates/core/transaction/src/is_action.rs +++ b/crates/core/transaction/src/is_action.rs @@ -1,12 +1,12 @@ use ark_ff::Zero; use decaf377::Fr; -use penumbra_asset::{balance, Value}; -use penumbra_auction::auction::dutch::actions::{ +use penumbra_sdk_asset::{balance, Value}; +use penumbra_sdk_auction::auction::dutch::actions::{ view::{ActionDutchAuctionScheduleView, ActionDutchAuctionWithdrawView}, ActionDutchAuctionEnd, ActionDutchAuctionSchedule, ActionDutchAuctionWithdraw, }; -use penumbra_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; -use penumbra_dex::{ +use penumbra_sdk_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; +use penumbra_sdk_dex::{ lp::{ action::{PositionClose, PositionOpen, PositionWithdraw}, position, LpNft, @@ -14,13 +14,13 @@ use penumbra_dex::{ swap::{Swap, SwapCiphertext, SwapView}, swap_claim::{SwapClaim, SwapClaimView}, }; -use penumbra_governance::{ +use penumbra_sdk_governance::{ DelegatorVote, DelegatorVoteView, ProposalDepositClaim, ProposalSubmit, ProposalWithdraw, ValidatorVote, VotingReceiptToken, }; -use penumbra_ibc::IbcRelay; -use penumbra_shielded_pool::{Ics20Withdrawal, Note, Output, OutputView, Spend, SpendView}; -use penumbra_stake::{Delegate, Undelegate, UndelegateClaim}; +use penumbra_sdk_ibc::IbcRelay; +use penumbra_sdk_shielded_pool::{Ics20Withdrawal, Note, Output, OutputView, Spend, SpendView}; +use penumbra_sdk_stake::{Delegate, Undelegate, UndelegateClaim}; use crate::{Action, ActionView, TransactionPerspective}; diff --git a/crates/core/transaction/src/lib.rs b/crates/core/transaction/src/lib.rs index 71debd5f09..f4b8fce69a 100644 --- a/crates/core/transaction/src/lib.rs +++ b/crates/core/transaction/src/lib.rs @@ -39,7 +39,7 @@ pub use detection_data::DetectionData; pub use error::Error; pub use is_action::IsAction; pub use parameters::TransactionParameters; -pub use penumbra_txhash as txhash; +pub use penumbra_sdk_txhash as txhash; pub use plan::{ActionPlan, TransactionPlan}; pub use transaction::{Transaction, TransactionBody}; pub use view::{ActionView, MemoPlaintextView, MemoView, TransactionPerspective, TransactionView}; diff --git a/crates/core/transaction/src/memo.rs b/crates/core/transaction/src/memo.rs index aee628c8fa..f1c29632e6 100644 --- a/crates/core/transaction/src/memo.rs +++ b/crates/core/transaction/src/memo.rs @@ -6,16 +6,16 @@ use std::{ use anyhow::anyhow; use decaf377_ka as ka; -use penumbra_asset::balance; -use penumbra_keys::{ +use penumbra_sdk_asset::balance; +use penumbra_sdk_keys::{ address::ADDRESS_LEN_BYTES, keys::OutgoingViewingKey, symmetric::{OvkWrappedKey, PayloadKey, PayloadKind, WrappedMemoKey}, Address, }; -use penumbra_proto::{core::transaction::v1 as pbt, DomainType}; -use penumbra_shielded_pool::{note, Note}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_proto::{core::transaction::v1 as pbt, DomainType}; +use penumbra_sdk_shielded_pool::{note, Note}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; pub const MEMO_CIPHERTEXT_LEN_BYTES: usize = 528; @@ -264,8 +264,8 @@ mod tests { use super::*; use decaf377::Fr; - use penumbra_asset::{asset, Value}; - use penumbra_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; + use penumbra_sdk_asset::{asset, Value}; + use penumbra_sdk_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; use proptest::prelude::*; diff --git a/crates/core/transaction/src/parameters.rs b/crates/core/transaction/src/parameters.rs index 1e3811cd56..291a4d8895 100644 --- a/crates/core/transaction/src/parameters.rs +++ b/crates/core/transaction/src/parameters.rs @@ -1,8 +1,8 @@ use anyhow::Error; -use penumbra_fee::Fee; -use penumbra_proto::core::transaction::v1 as pbt; -use penumbra_proto::DomainType; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_fee::Fee; +use penumbra_sdk_proto::core::transaction::v1 as pbt; +use penumbra_sdk_proto::DomainType; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; /// Parameters determining when the transaction should be accepted to the chain. #[derive(Clone, Debug, Default)] diff --git a/crates/core/transaction/src/plan.rs b/crates/core/transaction/src/plan.rs index 7040d40da2..17280905b6 100644 --- a/crates/core/transaction/src/plan.rs +++ b/crates/core/transaction/src/plan.rs @@ -3,22 +3,22 @@ use anyhow::Result; use decaf377_fmd::Precision; -use penumbra_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; -use penumbra_dex::{ +use penumbra_sdk_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; +use penumbra_sdk_dex::{ lp::action::{PositionClose, PositionOpen}, lp::plan::PositionWithdrawPlan, swap::SwapPlan, swap_claim::SwapClaimPlan, }; -use penumbra_governance::{ +use penumbra_sdk_governance::{ DelegatorVotePlan, ProposalDepositClaim, ProposalSubmit, ProposalWithdraw, ValidatorVote, }; -use penumbra_ibc::IbcRelay; -use penumbra_keys::{Address, FullViewingKey, PayloadKey}; -use penumbra_proto::{core::transaction::v1 as pb, DomainType}; -use penumbra_shielded_pool::{Ics20Withdrawal, OutputPlan, SpendPlan}; -use penumbra_stake::{Delegate, Undelegate, UndelegateClaimPlan}; -use penumbra_txhash::{EffectHash, EffectingData}; +use penumbra_sdk_ibc::IbcRelay; +use penumbra_sdk_keys::{Address, FullViewingKey, PayloadKey}; +use penumbra_sdk_proto::{core::transaction::v1 as pb, DomainType}; +use penumbra_sdk_shielded_pool::{Ics20Withdrawal, OutputPlan, SpendPlan}; +use penumbra_sdk_stake::{Delegate, Undelegate, UndelegateClaimPlan}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; use rand::{CryptoRng, Rng}; use serde::{Deserialize, Serialize}; @@ -173,7 +173,7 @@ impl TransactionPlan { pub fn validator_definitions( &self, - ) -> impl Iterator { + ) -> impl Iterator { self.actions.iter().filter_map(|action| { if let ActionPlan::ValidatorDefinition(d) = action { Some(d) @@ -436,17 +436,17 @@ impl TryFrom for TransactionPlan { #[cfg(test)] mod tests { - use penumbra_asset::{asset, Value, STAKING_TOKEN_ASSET_ID}; - use penumbra_dex::{swap::SwapPlaintext, swap::SwapPlan, TradingPair}; - use penumbra_fee::Fee; - use penumbra_keys::{ + use penumbra_sdk_asset::{asset, Value, STAKING_TOKEN_ASSET_ID}; + use penumbra_sdk_dex::{swap::SwapPlaintext, swap::SwapPlan, TradingPair}; + use penumbra_sdk_fee::Fee; + use penumbra_sdk_keys::{ keys::{Bip44Path, SeedPhrase, SpendKey}, Address, }; - use penumbra_shielded_pool::Note; - use penumbra_shielded_pool::{OutputPlan, SpendPlan}; - use penumbra_tct as tct; - use penumbra_txhash::EffectingData as _; + use penumbra_sdk_shielded_pool::Note; + use penumbra_sdk_shielded_pool::{OutputPlan, SpendPlan}; + use penumbra_sdk_tct as tct; + use penumbra_sdk_txhash::EffectingData as _; use rand_core::OsRng; use crate::{ diff --git a/crates/core/transaction/src/plan/action.rs b/crates/core/transaction/src/plan/action.rs index 6f1edace55..8ef121ce0d 100644 --- a/crates/core/transaction/src/plan/action.rs +++ b/crates/core/transaction/src/plan/action.rs @@ -3,14 +3,14 @@ use crate::WitnessData; use anyhow::{anyhow, Context, Result}; use ark_ff::Zero; use decaf377::Fr; -use penumbra_asset::Balance; -use penumbra_auction::auction::dutch::actions::ActionDutchAuctionEnd; -use penumbra_auction::auction::dutch::actions::ActionDutchAuctionSchedule; -use penumbra_auction::auction::dutch::actions::ActionDutchAuctionWithdrawPlan; -use penumbra_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; -use penumbra_txhash::{EffectHash, EffectingData}; - -use penumbra_dex::{ +use penumbra_sdk_asset::Balance; +use penumbra_sdk_auction::auction::dutch::actions::ActionDutchAuctionEnd; +use penumbra_sdk_auction::auction::dutch::actions::ActionDutchAuctionSchedule; +use penumbra_sdk_auction::auction::dutch::actions::ActionDutchAuctionWithdrawPlan; +use penumbra_sdk_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; +use penumbra_sdk_txhash::{EffectHash, EffectingData}; + +use penumbra_sdk_dex::{ lp::{ action::{PositionClose, PositionOpen}, plan::PositionWithdrawPlan, @@ -18,16 +18,16 @@ use penumbra_dex::{ swap::SwapPlan, swap_claim::SwapClaimPlan, }; -use penumbra_governance::{ +use penumbra_sdk_governance::{ delegator_vote::DelegatorVotePlan, ProposalDepositClaim, ProposalSubmit, ProposalWithdraw, ValidatorVote, }; -use penumbra_ibc::IbcRelay; -use penumbra_keys::{symmetric::PayloadKey, FullViewingKey}; -use penumbra_proto::{core::transaction::v1 as pb_t, DomainType}; -use penumbra_shielded_pool::{Ics20Withdrawal, OutputPlan, SpendPlan}; -use penumbra_stake::{Delegate, Undelegate, UndelegateClaimPlan}; +use penumbra_sdk_ibc::IbcRelay; +use penumbra_sdk_keys::{symmetric::PayloadKey, FullViewingKey}; +use penumbra_sdk_proto::{core::transaction::v1 as pb_t, DomainType}; +use penumbra_sdk_shielded_pool::{Ics20Withdrawal, OutputPlan, SpendPlan}; +use penumbra_sdk_stake::{Delegate, Undelegate, UndelegateClaimPlan}; use serde::{Deserialize, Serialize}; /// A declaration of a planned [`Action`], for use in transaction creation. @@ -50,7 +50,7 @@ pub enum ActionPlan { /// because we don't yet use flow encryption. Undelegate(Undelegate), UndelegateClaim(UndelegateClaimPlan), - ValidatorDefinition(penumbra_stake::validator::Definition), + ValidatorDefinition(penumbra_sdk_stake::validator::Definition), /// Describes a proposed swap. Swap(SwapPlan), /// Describes a swap claim. @@ -337,8 +337,8 @@ impl From for ActionPlan { } } -impl From for ActionPlan { - fn from(inner: penumbra_stake::validator::Definition) -> ActionPlan { +impl From for ActionPlan { + fn from(inner: penumbra_sdk_stake::validator::Definition) -> ActionPlan { ActionPlan::ValidatorDefinition(inner) } } @@ -498,7 +498,7 @@ impl From for pb_t::ActionPlan { }, ActionPlan::PositionWithdraw(inner) => pb_t::ActionPlan { action: Some(pb_t::action_plan::Action::PositionWithdraw(Into::< - penumbra_proto::core::component::dex::v1::PositionWithdrawPlan, + penumbra_sdk_proto::core::component::dex::v1::PositionWithdrawPlan, >::into( inner ))), diff --git a/crates/core/transaction/src/plan/auth.rs b/crates/core/transaction/src/plan/auth.rs index bd32bc0ced..831d34f075 100644 --- a/crates/core/transaction/src/plan/auth.rs +++ b/crates/core/transaction/src/plan/auth.rs @@ -1,7 +1,7 @@ use anyhow::Result; use rand::{CryptoRng, RngCore}; -use penumbra_keys::keys::SpendKey; +use penumbra_sdk_keys::keys::SpendKey; use crate::{AuthorizationData, TransactionPlan}; diff --git a/crates/core/transaction/src/plan/build.rs b/crates/core/transaction/src/plan/build.rs index 0b687b017f..1eb831a162 100644 --- a/crates/core/transaction/src/plan/build.rs +++ b/crates/core/transaction/src/plan/build.rs @@ -2,8 +2,8 @@ use anyhow::Result; use ark_ff::Zero; use decaf377::Fr; use decaf377_rdsa as rdsa; -use penumbra_keys::FullViewingKey; -use penumbra_txhash::AuthorizingData; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_txhash::AuthorizingData; use super::TransactionPlan; use crate::ActionPlan; @@ -191,10 +191,10 @@ impl TransactionPlan { } /// Returns a [`WitnessData`], which may be used to build this transaction. - pub fn witness_data(&self, sct: &penumbra_tct::Tree) -> Result { + pub fn witness_data(&self, sct: &penumbra_sdk_tct::Tree) -> Result { let anchor = sct.root(); - let witness_note = |spend: &penumbra_shielded_pool::SpendPlan| { + let witness_note = |spend: &penumbra_sdk_shielded_pool::SpendPlan| { let commitment = spend.note.commit(); sct.witness(commitment) .ok_or_else(|| anyhow::anyhow!("commitment should exist in tree")) diff --git a/crates/core/transaction/src/plan/clue.rs b/crates/core/transaction/src/plan/clue.rs index 66e648da95..faa6febb52 100644 --- a/crates/core/transaction/src/plan/clue.rs +++ b/crates/core/transaction/src/plan/clue.rs @@ -1,6 +1,6 @@ use decaf377_fmd::{Clue, Precision}; -use penumbra_keys::Address; -use penumbra_proto::{core::transaction::v1 as pb, DomainType}; +use penumbra_sdk_keys::Address; +use penumbra_sdk_proto::{core::transaction::v1 as pb, DomainType}; use rand::{CryptoRng, RngCore}; diff --git a/crates/core/transaction/src/plan/detection_data.rs b/crates/core/transaction/src/plan/detection_data.rs index 7ea26e3881..8a4a18b069 100644 --- a/crates/core/transaction/src/plan/detection_data.rs +++ b/crates/core/transaction/src/plan/detection_data.rs @@ -1,7 +1,7 @@ use crate::DetectionData; use super::CluePlan; -use penumbra_proto::{core::transaction::v1 as pb, DomainType}; +use penumbra_sdk_proto::{core::transaction::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Default, Serialize, Deserialize)] diff --git a/crates/core/transaction/src/plan/memo.rs b/crates/core/transaction/src/plan/memo.rs index 84ff9cf190..b0107996be 100644 --- a/crates/core/transaction/src/plan/memo.rs +++ b/crates/core/transaction/src/plan/memo.rs @@ -1,6 +1,6 @@ use anyhow::Context; -use penumbra_keys::{symmetric::PayloadKey, Address}; -use penumbra_proto::{core::transaction::v1 as pb, DomainType}; +use penumbra_sdk_keys::{symmetric::PayloadKey, Address}; +use penumbra_sdk_proto::{core::transaction::v1 as pb, DomainType}; use rand::{CryptoRng, RngCore}; diff --git a/crates/core/transaction/src/plan/spend.rs b/crates/core/transaction/src/plan/spend.rs index f5565df95f..a43d6fd41b 100644 --- a/crates/core/transaction/src/plan/spend.rs +++ b/crates/core/transaction/src/plan/spend.rs @@ -1,2 +1,2 @@ -// use penumbra_tct::Tree; -// use {super::*, penumbra_proto::DomainType, penumbra_shielded_pool::SpendPlan}; +// use penumbra_sdk_tct::Tree; +// use {super::*, penumbra_sdk_proto::DomainType, penumbra_sdk_shielded_pool::SpendPlan}; diff --git a/crates/core/transaction/src/transaction.rs b/crates/core/transaction/src/transaction.rs index 39a7113248..1307a1a428 100644 --- a/crates/core/transaction/src/transaction.rs +++ b/crates/core/transaction/src/transaction.rs @@ -7,25 +7,25 @@ use anyhow::{Context, Error}; use ark_ff::Zero; use decaf377::Fr; use decaf377_rdsa::{Binding, Signature, VerificationKey, VerificationKeyBytes}; -use penumbra_asset::Balance; -use penumbra_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; -use penumbra_dex::{ +use penumbra_sdk_asset::Balance; +use penumbra_sdk_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; +use penumbra_sdk_dex::{ lp::action::{PositionClose, PositionOpen}, swap::Swap, }; -use penumbra_governance::{DelegatorVote, ProposalSubmit, ProposalWithdraw, ValidatorVote}; -use penumbra_ibc::IbcRelay; -use penumbra_keys::{AddressView, FullViewingKey, PayloadKey}; -use penumbra_proto::{ +use penumbra_sdk_governance::{DelegatorVote, ProposalSubmit, ProposalWithdraw, ValidatorVote}; +use penumbra_sdk_ibc::IbcRelay; +use penumbra_sdk_keys::{AddressView, FullViewingKey, PayloadKey}; +use penumbra_sdk_proto::{ core::transaction::v1::{self as pbt}, DomainType, Message, }; -use penumbra_sct::Nullifier; -use penumbra_shielded_pool::{Note, Output, Spend}; -use penumbra_stake::{Delegate, Undelegate, UndelegateClaim}; -use penumbra_tct as tct; -use penumbra_tct::StateCommitment; -use penumbra_txhash::{ +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_shielded_pool::{Note, Output, Spend}; +use penumbra_sdk_stake::{Delegate, Undelegate, UndelegateClaim}; +use penumbra_sdk_tct as tct; +use penumbra_sdk_tct::StateCommitment; +use penumbra_sdk_txhash::{ AuthHash, AuthorizingData, EffectHash, EffectingData, TransactionContext, TransactionId, }; use serde::{Deserialize, Serialize}; @@ -437,7 +437,7 @@ impl Transaction { pub fn validator_definitions( &self, - ) -> impl Iterator { + ) -> impl Iterator { self.actions().filter_map(|action| { if let Action::ValidatorDefinition(d) = action { Some(d) diff --git a/crates/core/transaction/src/view.rs b/crates/core/transaction/src/view.rs index e4cd0f800c..14ca9e95b6 100644 --- a/crates/core/transaction/src/view.rs +++ b/crates/core/transaction/src/view.rs @@ -1,17 +1,17 @@ use anyhow::Context; use decaf377_rdsa::{Binding, Signature}; -use penumbra_asset::{Balance, Value}; -use penumbra_dex::{swap::SwapView, swap_claim::SwapClaimView}; -use penumbra_keys::AddressView; -use penumbra_proto::{core::transaction::v1 as pbt, DomainType}; -use penumbra_shielded_pool::{OutputView, SpendView}; +use penumbra_sdk_asset::{Balance, Value}; +use penumbra_sdk_dex::{swap::SwapView, swap_claim::SwapClaimView}; +use penumbra_sdk_keys::AddressView; +use penumbra_sdk_proto::{core::transaction::v1 as pbt, DomainType}; +use penumbra_sdk_shielded_pool::{OutputView, SpendView}; use serde::{Deserialize, Serialize}; pub mod action_view; mod transaction_perspective; pub use action_view::ActionView; -use penumbra_tct as tct; +use penumbra_sdk_tct as tct; pub use transaction_perspective::TransactionPerspective; use crate::{ @@ -435,32 +435,32 @@ mod test { use decaf377::Fr; use decaf377::{Element, Fq}; use decaf377_rdsa::{Domain, VerificationKey}; - use penumbra_asset::{ + use penumbra_sdk_asset::{ asset::{self, Cache, Id}, balance::Commitment, STAKING_TOKEN_ASSET_ID, }; - use penumbra_dex::swap::proof::SwapProof; - use penumbra_dex::swap::{SwapCiphertext, SwapPayload}; - use penumbra_dex::Swap; - use penumbra_dex::{ + use penumbra_sdk_dex::swap::proof::SwapProof; + use penumbra_sdk_dex::swap::{SwapCiphertext, SwapPayload}; + use penumbra_sdk_dex::Swap; + use penumbra_sdk_dex::{ swap::{SwapPlaintext, SwapPlan}, TradingPair, }; - use penumbra_fee::Fee; - use penumbra_keys::keys::Bip44Path; - use penumbra_keys::keys::{SeedPhrase, SpendKey}; - use penumbra_keys::{ + use penumbra_sdk_fee::Fee; + use penumbra_sdk_keys::keys::Bip44Path; + use penumbra_sdk_keys::keys::{SeedPhrase, SpendKey}; + use penumbra_sdk_keys::{ symmetric::{OvkWrappedKey, WrappedMemoKey}, test_keys, Address, FullViewingKey, PayloadKey, }; - use penumbra_num::Amount; - use penumbra_proof_params::GROTH16_PROOF_LENGTH_BYTES; - use penumbra_sct::Nullifier; - use penumbra_shielded_pool::Rseed; - use penumbra_shielded_pool::{output, spend, Note, NoteView, OutputPlan, SpendPlan}; - use penumbra_tct::structure::Hash; - use penumbra_tct::StateCommitment; + use penumbra_sdk_num::Amount; + use penumbra_sdk_proof_params::GROTH16_PROOF_LENGTH_BYTES; + use penumbra_sdk_sct::Nullifier; + use penumbra_sdk_shielded_pool::Rseed; + use penumbra_sdk_shielded_pool::{output, spend, Note, NoteView, OutputPlan, SpendPlan}; + use penumbra_sdk_tct::structure::Hash; + use penumbra_sdk_tct::StateCommitment; use rand_core::OsRng; use std::ops::Deref; @@ -488,7 +488,7 @@ mod test { #[cfg(test)] fn dummy_proof_spend() -> spend::SpendProof { spend::SpendProof::try_from( - penumbra_proto::penumbra::core::component::shielded_pool::v1::ZkSpendProof { + penumbra_sdk_proto::penumbra::core::component::shielded_pool::v1::ZkSpendProof { inner: vec![0u8; GROTH16_PROOF_LENGTH_BYTES], }, ) @@ -498,7 +498,7 @@ mod test { #[cfg(test)] fn dummy_proof_output() -> output::OutputProof { output::OutputProof::try_from( - penumbra_proto::penumbra::core::component::shielded_pool::v1::ZkOutputProof { + penumbra_sdk_proto::penumbra::core::component::shielded_pool::v1::ZkOutputProof { inner: vec![0u8; GROTH16_PROOF_LENGTH_BYTES], }, ) @@ -508,7 +508,7 @@ mod test { #[cfg(test)] fn dummy_proof_swap() -> SwapProof { SwapProof::try_from( - penumbra_proto::penumbra::core::component::dex::v1::ZkSwapProof { + penumbra_sdk_proto::penumbra::core::component::dex::v1::ZkSwapProof { inner: vec![0u8; GROTH16_PROOF_LENGTH_BYTES], }, ) @@ -517,7 +517,7 @@ mod test { #[cfg(test)] fn dummy_spend() -> spend::Spend { - use penumbra_shielded_pool::EncryptedBackref; + use penumbra_sdk_shielded_pool::EncryptedBackref; spend::Spend { body: spend::Body { @@ -535,13 +535,15 @@ mod test { fn dummy_output() -> output::Output { output::Output { body: output::Body { - note_payload: penumbra_shielded_pool::NotePayload { - note_commitment: penumbra_shielded_pool::note::StateCommitment(Fq::default()), + note_payload: penumbra_sdk_shielded_pool::NotePayload { + note_commitment: penumbra_sdk_shielded_pool::note::StateCommitment( + Fq::default(), + ), ephemeral_key: [0u8; 32] .as_slice() .try_into() .expect("can create dummy ephemeral key"), - encrypted_note: penumbra_shielded_pool::NoteCiphertext([0u8; 176]), + encrypted_note: penumbra_sdk_shielded_pool::NoteCiphertext([0u8; 176]), }, balance_commitment: dummy_commitment(), ovk_wrapped_key: OvkWrappedKey([0u8; 48]), @@ -581,7 +583,7 @@ mod test { #[cfg(test)] fn dummy_swap() -> Swap { - use penumbra_dex::swap::Body; + use penumbra_sdk_dex::swap::Body; let seed_phrase = SeedPhrase::generate(OsRng); let sk_recipient = SpendKey::from_seed_phrase_bip44(seed_phrase, &Bip44Path::new(0)); @@ -662,7 +664,7 @@ mod test { match action { ActionPlan::Output(x) => Some(ActionView::Output( - penumbra_shielded_pool::OutputView::Visible { + penumbra_sdk_shielded_pool::OutputView::Visible { output: dummy_output(), note: convert_note(cache, fvk, &x.output_note()), payload_key: PayloadKey::from([0u8; 32]), @@ -768,7 +770,7 @@ mod test { }; let transaction_view = TransactionView { - anchor: penumbra_tct::Root(Hash::zero()), + anchor: penumbra_sdk_tct::Root(Hash::zero()), binding_sig: Signature::from([0u8; 64]), body_view: TransactionBodyView { action_views: plan @@ -864,7 +866,7 @@ mod test { }; let transaction_view = TransactionView { - anchor: penumbra_tct::Root(Hash::zero()), + anchor: penumbra_sdk_tct::Root(Hash::zero()), binding_sig: Signature::from([0u8; 64]), body_view: TransactionBodyView { action_views: plan diff --git a/crates/core/transaction/src/view/action_view.rs b/crates/core/transaction/src/view/action_view.rs index 4ed7ecb537..d06f98d2ed 100644 --- a/crates/core/transaction/src/view/action_view.rs +++ b/crates/core/transaction/src/view/action_view.rs @@ -1,23 +1,25 @@ -use penumbra_auction::auction::dutch::{ +use penumbra_sdk_auction::auction::dutch::{ actions::view::{ActionDutchAuctionScheduleView, ActionDutchAuctionWithdrawView}, ActionDutchAuctionEnd, }; -use penumbra_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; -use penumbra_dex::{ +use penumbra_sdk_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; +use penumbra_sdk_dex::{ lp::action::{PositionClose, PositionOpen, PositionWithdraw}, swap::SwapView, swap_claim::SwapClaimView, }; -use penumbra_governance::{ProposalDepositClaim, ProposalSubmit, ProposalWithdraw, ValidatorVote}; -use penumbra_ibc::IbcRelay; -use penumbra_proto::{core::transaction::v1 as pbt, DomainType}; -use penumbra_shielded_pool::Ics20Withdrawal; -use penumbra_stake::{Delegate, Undelegate, UndelegateClaim}; +use penumbra_sdk_governance::{ + ProposalDepositClaim, ProposalSubmit, ProposalWithdraw, ValidatorVote, +}; +use penumbra_sdk_ibc::IbcRelay; +use penumbra_sdk_proto::{core::transaction::v1 as pbt, DomainType}; +use penumbra_sdk_shielded_pool::Ics20Withdrawal; +use penumbra_sdk_stake::{Delegate, Undelegate, UndelegateClaim}; use serde::{Deserialize, Serialize}; -pub use penumbra_governance::DelegatorVoteView; -pub use penumbra_shielded_pool::OutputView; -pub use penumbra_shielded_pool::SpendView; +pub use penumbra_sdk_governance::DelegatorVoteView; +pub use penumbra_sdk_shielded_pool::OutputView; +pub use penumbra_sdk_shielded_pool::SpendView; use crate::Action; @@ -32,7 +34,7 @@ pub enum ActionView { SwapClaim(SwapClaimView), DelegatorVote(DelegatorVoteView), // Action types with transparent contents - ValidatorDefinition(penumbra_stake::validator::Definition), + ValidatorDefinition(penumbra_sdk_stake::validator::Definition), IbcRelay(IbcRelay), ProposalSubmit(ProposalSubmit), ProposalWithdraw(ProposalWithdraw), diff --git a/crates/core/transaction/src/view/transaction_perspective.rs b/crates/core/transaction/src/view/transaction_perspective.rs index a81ab0b865..72b8a3bf89 100644 --- a/crates/core/transaction/src/view/transaction_perspective.rs +++ b/crates/core/transaction/src/view/transaction_perspective.rs @@ -1,14 +1,14 @@ use anyhow::anyhow; use pbjson_types::Any; -use penumbra_asset::{asset, EstimatedPrice, Value, ValueView}; -use penumbra_dex::BatchSwapOutputData; -use penumbra_keys::{Address, AddressView, PayloadKey}; -use penumbra_proto::core::transaction::v1::{ +use penumbra_sdk_asset::{asset, EstimatedPrice, Value, ValueView}; +use penumbra_sdk_dex::BatchSwapOutputData; +use penumbra_sdk_keys::{Address, AddressView, PayloadKey}; +use penumbra_sdk_proto::core::transaction::v1::{ self as pb, NullifierWithNote, PayloadKeyWithCommitment, }; -use penumbra_sct::Nullifier; -use penumbra_shielded_pool::{note, Note, NoteView}; -use penumbra_txhash::TransactionId; +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_shielded_pool::{note, Note, NoteView}; +use penumbra_sdk_txhash::TransactionId; use std::collections::BTreeMap; diff --git a/crates/core/transaction/src/witness_data.rs b/crates/core/transaction/src/witness_data.rs index 557e34d64e..f5d7f40ce1 100644 --- a/crates/core/transaction/src/witness_data.rs +++ b/crates/core/transaction/src/witness_data.rs @@ -1,8 +1,8 @@ use std::collections::BTreeMap; -use penumbra_proto::{core::transaction::v1 as pb, DomainType}; -use penumbra_shielded_pool::note; -use penumbra_tct as tct; +use penumbra_sdk_proto::{core::transaction::v1 as pb, DomainType}; +use penumbra_sdk_shielded_pool::note; +use penumbra_sdk_tct as tct; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Serialize, Deserialize)] diff --git a/crates/core/transaction/tests/generate_transaction_signing_test_vectors.rs b/crates/core/transaction/tests/generate_transaction_signing_test_vectors.rs index 969d1c55ef..4172659c49 100644 --- a/crates/core/transaction/tests/generate_transaction_signing_test_vectors.rs +++ b/crates/core/transaction/tests/generate_transaction_signing_test_vectors.rs @@ -8,8 +8,8 @@ use ibc_types::core::{ commitment::MerkleProof, }; use ibc_types::timestamp::Timestamp; -use penumbra_asset::asset::{Id, Metadata}; -use penumbra_auction::auction::{ +use penumbra_sdk_asset::asset::{Id, Metadata}; +use penumbra_sdk_auction::auction::{ dutch::{ actions::{ ActionDutchAuctionEnd, ActionDutchAuctionSchedule, ActionDutchAuctionWithdrawPlan, @@ -18,8 +18,8 @@ use penumbra_auction::auction::{ }, AuctionId, }; -use penumbra_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; -use penumbra_dex::{ +use penumbra_sdk_community_pool::{CommunityPoolDeposit, CommunityPoolOutput, CommunityPoolSpend}; +use penumbra_sdk_dex::{ lp::{ plan::PositionWithdrawPlan, position::{Position, State as PositionState}, @@ -29,25 +29,25 @@ use penumbra_dex::{ swap_claim::SwapClaimPlan, BatchSwapOutputData, PositionClose, PositionOpen, TradingPair, }; -use penumbra_fee::Fee; -use penumbra_governance::{ +use penumbra_sdk_fee::Fee; +use penumbra_sdk_governance::{ proposal_state::{Outcome as ProposalOutcome, Withdrawn}, DelegatorVotePlan, Proposal, ProposalDepositClaim, ProposalPayload, ProposalSubmit, ProposalWithdraw, ValidatorVote, ValidatorVoteBody, ValidatorVoteReason, Vote, }; -use penumbra_ibc::IbcRelay; -use penumbra_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; -use penumbra_keys::test_keys::SEED_PHRASE; -use penumbra_keys::{Address, FullViewingKey}; -use penumbra_num::Amount; -use penumbra_proto::DomainType; -use penumbra_sct::epoch::Epoch; -use penumbra_shielded_pool::{Ics20Withdrawal, Note, OutputPlan, Rseed, SpendPlan}; -use penumbra_stake::{ +use penumbra_sdk_ibc::IbcRelay; +use penumbra_sdk_keys::keys::{Bip44Path, SeedPhrase, SpendKey}; +use penumbra_sdk_keys::test_keys::SEED_PHRASE; +use penumbra_sdk_keys::{Address, FullViewingKey}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::DomainType; +use penumbra_sdk_sct::epoch::Epoch; +use penumbra_sdk_shielded_pool::{Ics20Withdrawal, Note, OutputPlan, Rseed, SpendPlan}; +use penumbra_sdk_stake::{ validator, validator::Definition, Delegate, FundingStreams, GovernanceKey, IdentityKey, Penalty, Undelegate, UndelegateClaimPlan, }; -use penumbra_transaction::{ActionPlan, TransactionParameters, TransactionPlan}; +use penumbra_sdk_transaction::{ActionPlan, TransactionParameters, TransactionPlan}; use proptest::prelude::*; use proptest::strategy::ValueTree; use proptest::test_runner::{Config, TestRunner}; @@ -63,12 +63,12 @@ fn amount_strategy() -> impl Strategy { } fn asset_id_strategy() -> impl Strategy { - Just(*penumbra_asset::STAKING_TOKEN_ASSET_ID) + Just(*penumbra_sdk_asset::STAKING_TOKEN_ASSET_ID) } -fn value_strategy() -> impl Strategy { +fn value_strategy() -> impl Strategy { (asset_id_strategy(), amount_strategy()) - .prop_map(|(asset_id, amount)| penumbra_asset::Value { amount, asset_id }) + .prop_map(|(asset_id, amount)| penumbra_sdk_asset::Value { amount, asset_id }) } fn address_strategy() -> impl Strategy { @@ -88,7 +88,7 @@ fn note_strategy(addr: Address) -> impl Strategy { } fn spend_plan_strategy(fvk: &FullViewingKey) -> impl Strategy { - let tct_strategy = any::(); + let tct_strategy = any::(); let note_strategy = note_strategy(fvk.incoming().payment_address(0u32.into()).0); (tct_strategy, note_strategy) @@ -298,7 +298,7 @@ fn swap_claim_plan_strategy() -> impl Strategy { (swap_plaintext_strategy(), batch_swap_output_data_strategy()).prop_map( |(swap_plaintext, output_data)| SwapClaimPlan { swap_plaintext, - position: penumbra_tct::Position::from(0u64), + position: penumbra_sdk_tct::Position::from(0u64), output_data, epoch_duration: 1000u64, proof_blinding_r: Fq::rand(&mut OsRng), @@ -401,10 +401,10 @@ fn delegator_vote_strategy() -> impl Strategy { |(proposal, vote, unbonded_amount, staked_note)| DelegatorVotePlan { proposal, vote, - start_position: penumbra_tct::Position::from(0u64), + start_position: penumbra_sdk_tct::Position::from(0u64), staked_note, unbonded_amount, - position: penumbra_tct::Position::from(0u64), + position: penumbra_sdk_tct::Position::from(0u64), randomizer: Fr::rand(&mut OsRng), proof_blinding_r: Fq::rand(&mut OsRng), proof_blinding_s: Fq::rand(&mut OsRng), diff --git a/crates/core/txhash/Cargo.toml b/crates/core/txhash/Cargo.toml index d60a79181d..17cd7ba1a4 100644 --- a/crates/core/txhash/Cargo.toml +++ b/crates/core/txhash/Cargo.toml @@ -1,13 +1,17 @@ [package] -name = "penumbra-txhash" +name = "penumbra-sdk-txhash" +authors = {workspace = true} +repository = {workspace = true} +description = "Produce Penumbra tx effecting data and authorization hashes" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [dependencies] anyhow = {workspace = true} blake2b_simd = {workspace = true} hex = {workspace = true} -penumbra-proto = {workspace = true, default-features = false} -penumbra-tct = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, default-features = false} +penumbra-sdk-tct = {workspace = true, default-features = true} serde = {workspace = true} getrandom = {workspace = true} diff --git a/crates/core/txhash/src/context.rs b/crates/core/txhash/src/context.rs index 672d003ac4..e036657a5a 100644 --- a/crates/core/txhash/src/context.rs +++ b/crates/core/txhash/src/context.rs @@ -1,5 +1,5 @@ use crate::EffectHash; -use penumbra_tct as tct; +use penumbra_sdk_tct as tct; /// Stateless verification context for a transaction. /// diff --git a/crates/core/txhash/src/effect_hash.rs b/crates/core/txhash/src/effect_hash.rs index aefc84c8aa..c775bdc0d9 100644 --- a/crates/core/txhash/src/effect_hash.rs +++ b/crates/core/txhash/src/effect_hash.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{penumbra::core::txhash::v1 as pb, DomainType, Message, Name}; +use penumbra_sdk_proto::{penumbra::core::txhash::v1 as pb, DomainType, Message, Name}; /// A hash of a transaction's _effecting data_, describing its effects on the /// chain state. diff --git a/crates/core/txhash/src/transaction_id.rs b/crates/core/txhash/src/transaction_id.rs index cc270b33ea..e06e77e436 100644 --- a/crates/core/txhash/src/transaction_id.rs +++ b/crates/core/txhash/src/transaction_id.rs @@ -1,6 +1,6 @@ use std::str::FromStr; -use penumbra_proto::{penumbra::core::txhash::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::core::txhash::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; /// A transaction ID (hash), the Sha256 hash used by Tendermint to identify transactions. diff --git a/crates/crypto/decaf377-fmd/Cargo.toml b/crates/crypto/decaf377-fmd/Cargo.toml index f3f5e97467..60a98bdc22 100644 --- a/crates/crypto/decaf377-fmd/Cargo.toml +++ b/crates/crypto/decaf377-fmd/Cargo.toml @@ -1,7 +1,11 @@ [package] name = "decaf377-fmd" +license = {workspace = true} version = {workspace = true} edition = {workspace = true} +authors = {workspace = true} +repository = {workspace = true} +description = "An implementation of Fuzzy Message Detection (FMD)." [[bench]] name = "fmd" diff --git a/crates/crypto/decaf377-frost/Cargo.toml b/crates/crypto/decaf377-frost/Cargo.toml index 7b7c469ecb..f3cf96c75c 100644 --- a/crates/crypto/decaf377-frost/Cargo.toml +++ b/crates/crypto/decaf377-frost/Cargo.toml @@ -1,6 +1,10 @@ [package] name = "decaf377-frost" +authors = {workspace = true} +repository = {workspace = true} +description = "An implementation of FROST built on top of Decaf377" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [dependencies] @@ -12,4 +16,4 @@ decaf377-rdsa = {workspace = true} frost-core = "0.7" frost-rerandomized = "0.7" rand_core = {workspace = true, features = ["getrandom"]} -penumbra-proto = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, default-features = true} diff --git a/crates/crypto/decaf377-frost/src/keys/dkg.rs b/crates/crypto/decaf377-frost/src/keys/dkg.rs index 1146faf8a9..2650c88be0 100644 --- a/crates/crypto/decaf377-frost/src/keys/dkg.rs +++ b/crates/crypto/decaf377-frost/src/keys/dkg.rs @@ -1,6 +1,6 @@ //! Distributed key generation without a trusted dealer. use anyhow::anyhow; -use penumbra_proto::crypto::decaf377_frost::v1 as pb; +use penumbra_sdk_proto::crypto::decaf377_frost::v1 as pb; // Copied from frost-ed25519 ("MIT or Apache-2.0") (more or less) @@ -8,7 +8,7 @@ use super::*; /// DKG Round 1 structures. pub mod round1 { - use penumbra_proto::DomainType; + use penumbra_sdk_proto::DomainType; use super::*; @@ -65,7 +65,7 @@ pub mod round1 { /// DKG Round 2 structures. pub mod round2 { - use penumbra_proto::DomainType; + use penumbra_sdk_proto::DomainType; use super::*; diff --git a/crates/crypto/decaf377-frost/src/lib.rs b/crates/crypto/decaf377-frost/src/lib.rs index d3cbcf749e..90dfcf07c6 100644 --- a/crates/crypto/decaf377-frost/src/lib.rs +++ b/crates/crypto/decaf377-frost/src/lib.rs @@ -8,7 +8,7 @@ use anyhow::anyhow; use frost_core::frost; -use penumbra_proto::crypto::decaf377_frost::v1 as pb; +use penumbra_sdk_proto::crypto::decaf377_frost::v1 as pb; use std::collections::{BTreeMap, HashMap}; /// A FROST-related error. @@ -33,7 +33,7 @@ pub type Identifier = frost::Identifier; /// Signing round 1 functionality and types. pub mod round1 { - use penumbra_proto::DomainType; + use penumbra_sdk_proto::DomainType; use crate::keys::SigningShare; @@ -138,7 +138,7 @@ impl SigningPackage { /// Signing Round 2 functionality and types. pub mod round2 { use frost_rerandomized::Randomizer; - use penumbra_proto::DomainType; + use penumbra_sdk_proto::DomainType; use super::*; diff --git a/crates/crypto/decaf377-ka/Cargo.toml b/crates/crypto/decaf377-ka/Cargo.toml index 3f04f3f34c..6e2b61f434 100644 --- a/crates/crypto/decaf377-ka/Cargo.toml +++ b/crates/crypto/decaf377-ka/Cargo.toml @@ -1,6 +1,10 @@ [package] name = "decaf377-ka" +authors = {workspace = true} +repository = {workspace = true} +description = "Key-agreement over Decaf377" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] diff --git a/crates/crypto/eddy/Cargo.toml b/crates/crypto/eddy/Cargo.toml index cdc2be5f8e..7be37a88b1 100644 --- a/crates/crypto/eddy/Cargo.toml +++ b/crates/crypto/eddy/Cargo.toml @@ -1,6 +1,10 @@ [package] -name = "penumbra-eddy" +name = "penumbra-sdk-eddy" +authors = {workspace = true} +repository = {workspace = true} +description = "A research implementation of flow encryption for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] diff --git a/crates/crypto/proof-params/Cargo.toml b/crates/crypto/proof-params/Cargo.toml index 8199e5caef..bdda5add5d 100644 --- a/crates/crypto/proof-params/Cargo.toml +++ b/crates/crypto/proof-params/Cargo.toml @@ -1,7 +1,12 @@ [package] -name = "penumbra-proof-params" +name = "penumbra-sdk-proof-params" +authors = {workspace = true} +repository = {workspace = true} +description = "Penumbra Proof parameters" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} +exclude = ["src/gen/*.bin"] [build-dependencies] regex = { version = "1", optional = true } @@ -15,6 +20,7 @@ hex = { version = "0.4.3", optional = true } anyhow = "1" [features] +default = [] bundled-proving-keys = [] download-proving-keys = [ "regex", @@ -51,3 +57,6 @@ rand_core = {workspace = true, features = ["getrandom"]} serde = {workspace = true, features = ["derive"]} sha2 = {workspace = true} tracing = {workspace = true} + +[package.metadata.docs.rs] +features = ["bundled-proving-keys"] # docs.rs diff --git a/crates/crypto/proof-setup/Cargo.toml b/crates/crypto/proof-setup/Cargo.toml index fe2490c5d5..9e58c3ce25 100644 --- a/crates/crypto/proof-setup/Cargo.toml +++ b/crates/crypto/proof-setup/Cargo.toml @@ -1,13 +1,16 @@ [package] -name = "penumbra-proof-setup" +name = "penumbra-sdk-proof-setup" +authors = {workspace = true} +repository = {workspace = true} +description = "Decentralized setup for Groth16" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [[bench]] name = "all" harness = false - [features] default = [] parallel = [ @@ -16,7 +19,7 @@ parallel = [ "ark-groth16/parallel", "decaf377/parallel", "rayon", - "penumbra-shielded-pool/parallel", + "penumbra-sdk-shielded-pool/parallel", ] [dependencies] @@ -29,12 +32,12 @@ ark-relations = {workspace = true} ark-serialize = {workspace = true} blake2b_simd = {workspace = true} decaf377 = {workspace = true, default-features = false} -penumbra-dex = {workspace = true, default-features = true} -penumbra-governance = {workspace = true, default-features = true} -penumbra-proof-params = {workspace = true, default-features = true} -penumbra-proto = {workspace = true, default-features = true} -penumbra-shielded-pool = {workspace = true, default-features = true} -penumbra-stake = {workspace = true, features = ["component"], default-features = true} +penumbra-sdk-dex = {workspace = true, default-features = true} +penumbra-sdk-governance = {workspace = true, default-features = true} +penumbra-sdk-proof-params = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, default-features = true} +penumbra-sdk-shielded-pool = {workspace = true, default-features = true} +penumbra-sdk-stake = {workspace = true, features = ["component"], default-features = true} rand_core = {workspace = true, features = ["getrandom"]} rayon = { version = "1.8.0", optional = true } @@ -42,6 +45,6 @@ rayon = { version = "1.8.0", optional = true } ark-r1cs-std = {workspace = true} ark-snark = {workspace = true} criterion = {workspace = true, features = ["html_reports"]} -penumbra-dex = {workspace = true, default-features = true} -penumbra-proof-params = {workspace = true, default-features = true} +penumbra-sdk-dex = {workspace = true, default-features = true} +penumbra-sdk-proof-params = {workspace = true, default-features = true} rand_chacha = {workspace = true} diff --git a/crates/crypto/proof-setup/benches/all.rs b/crates/crypto/proof-setup/benches/all.rs index 0ef7a756ca..bd52d5590e 100644 --- a/crates/crypto/proof-setup/benches/all.rs +++ b/crates/crypto/proof-setup/benches/all.rs @@ -1,5 +1,5 @@ use criterion::{criterion_group, criterion_main, Criterion}; -use penumbra_proof_setup::all::{ +use penumbra_sdk_proof_setup::all::{ transition, AllExtraTransitionInformation, Phase1CeremonyCRS, Phase1CeremonyContribution, Phase1RawCeremonyContribution, Phase2CeremonyCRS, Phase2CeremonyContribution, Phase2RawCeremonyContribution, diff --git a/crates/crypto/proof-setup/src/all.rs b/crates/crypto/proof-setup/src/all.rs index b3c0f9f0d9..a3e4331b29 100644 --- a/crates/crypto/proof-setup/src/all.rs +++ b/crates/crypto/proof-setup/src/all.rs @@ -19,11 +19,11 @@ use ark_groth16::ProvingKey; use ark_relations::r1cs::ConstraintMatrices; use ark_serialize::{CanonicalDeserialize, CanonicalSerialize, Compress, Validate}; use decaf377::Bls12_377; -use penumbra_dex::{swap::proof::SwapCircuit, swap_claim::proof::SwapClaimCircuit}; -use penumbra_governance::DelegatorVoteCircuit; -use penumbra_proof_params::generate_constraint_matrices; -use penumbra_proto::tools::summoning::v1::{self as pb}; -use penumbra_shielded_pool::{ +use penumbra_sdk_dex::{swap::proof::SwapCircuit, swap_claim::proof::SwapClaimCircuit}; +use penumbra_sdk_governance::DelegatorVoteCircuit; +use penumbra_sdk_proof_params::generate_constraint_matrices; +use penumbra_sdk_proto::tools::summoning::v1::{self as pb}; +use penumbra_sdk_shielded_pool::{ ConvertCircuit, NullifierDerivationCircuit, OutputCircuit, SpendCircuit, }; diff --git a/crates/crypto/tct/Cargo.toml b/crates/crypto/tct/Cargo.toml index 211051c579..44f8dbe9a3 100644 --- a/crates/crypto/tct/Cargo.toml +++ b/crates/crypto/tct/Cargo.toml @@ -1,6 +1,10 @@ [package] -name = "penumbra-tct" +name = "penumbra-sdk-tct" +authors = {workspace = true} +repository = {workspace = true} +description = "The tiered commitment tree for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [features] @@ -26,7 +30,7 @@ hex = {workspace = true} im = {workspace = true, features = ["serde"]} once_cell = {workspace = true} parking_lot = {workspace = true} -penumbra-proto = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, default-features = true} poseidon377 = {workspace = true, features = ["r1cs"]} proptest = {workspace = true, optional = true} proptest-derive = {workspace = true, optional = true} diff --git a/crates/crypto/tct/src/block.rs b/crates/crypto/tct/src/block.rs index 96b88c05a4..ecaae19d85 100644 --- a/crates/crypto/tct/src/block.rs +++ b/crates/crypto/tct/src/block.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use decaf377::Fq; use hash_hasher::HashedMap; -use penumbra_proto::{penumbra::crypto::tct::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::crypto::tct::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::error::block::*; diff --git a/crates/crypto/tct/src/commitment.rs b/crates/crypto/tct/src/commitment.rs index 8cbe477576..4d10cf3538 100644 --- a/crates/crypto/tct/src/commitment.rs +++ b/crates/crypto/tct/src/commitment.rs @@ -1,5 +1,5 @@ use decaf377::Fq; -use penumbra_proto::{penumbra::crypto::tct::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::crypto::tct::v1 as pb, DomainType}; /// A commitment to a note or swap. #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] diff --git a/crates/crypto/tct/src/epoch.rs b/crates/crypto/tct/src/epoch.rs index 53e97aeb90..7aa28b31e3 100644 --- a/crates/crypto/tct/src/epoch.rs +++ b/crates/crypto/tct/src/epoch.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use decaf377::Fq; use hash_hasher::HashedMap; -use penumbra_proto::{penumbra::crypto::tct::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::crypto::tct::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; use crate::error::epoch::*; diff --git a/crates/crypto/tct/src/internal/path.rs b/crates/crypto/tct/src/internal/path.rs index 88a8cbb351..ec7ea8b1a8 100644 --- a/crates/crypto/tct/src/internal/path.rs +++ b/crates/crypto/tct/src/internal/path.rs @@ -235,7 +235,7 @@ mod test { pub struct PathDecodeError; use decaf377::Fq; -use penumbra_proto::penumbra::crypto::tct::v1 as pb; +use penumbra_sdk_proto::penumbra::crypto::tct::v1 as pb; use std::{ collections::VecDeque, ops::{Index, IndexMut}, diff --git a/crates/crypto/tct/src/internal/proof.rs b/crates/crypto/tct/src/internal/proof.rs index 369684d4a0..13f18b317d 100644 --- a/crates/crypto/tct/src/internal/proof.rs +++ b/crates/crypto/tct/src/internal/proof.rs @@ -70,7 +70,7 @@ impl VerifyError { pub struct ProofDecodeError; use decaf377::Fq; -use penumbra_proto::penumbra::crypto::tct::v1 as pb; +use penumbra_sdk_proto::penumbra::crypto::tct::v1 as pb; impl From> for pb::StateCommitmentProof where diff --git a/crates/crypto/tct/src/proof.rs b/crates/crypto/tct/src/proof.rs index a46b331c52..fe1199d86a 100644 --- a/crates/crypto/tct/src/proof.rs +++ b/crates/crypto/tct/src/proof.rs @@ -121,7 +121,7 @@ impl Proof { } } -use penumbra_proto::penumbra::crypto::tct::v1 as pb; +use penumbra_sdk_proto::penumbra::crypto::tct::v1 as pb; use rand::Rng; impl From for pb::StateCommitmentProof { @@ -138,6 +138,6 @@ impl TryFrom for Proof { } } -impl penumbra_proto::DomainType for Proof { +impl penumbra_sdk_proto::DomainType for Proof { type Proto = pb::StateCommitmentProof; } diff --git a/crates/crypto/tct/src/tree.rs b/crates/crypto/tct/src/tree.rs index 4e4f55fa22..3721486fbb 100644 --- a/crates/crypto/tct/src/tree.rs +++ b/crates/crypto/tct/src/tree.rs @@ -4,7 +4,7 @@ use std::{ }; use decaf377::Fq; -use penumbra_proto::{penumbra::crypto::tct::v1 as pb, DomainType}; +use penumbra_sdk_proto::{penumbra::crypto::tct::v1 as pb, DomainType}; use crate::error::*; use crate::prelude::{Witness as _, *}; diff --git a/crates/custody/Cargo.toml b/crates/custody/Cargo.toml index d93683643d..1ff5311d51 100644 --- a/crates/custody/Cargo.toml +++ b/crates/custody/Cargo.toml @@ -1,6 +1,10 @@ [package] -name = "penumbra-custody" +name = "penumbra-sdk-custody" +authors = {workspace = true} +repository = {workspace = true} +description = "Modular custody for Penumbra" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [dependencies] @@ -13,18 +17,18 @@ blake2b_simd = {workspace = true} bytes = {workspace = true, features = ["serde"]} chacha20poly1305 = {workspace = true} decaf377 = {workspace = true} -decaf377-frost = { path = "../crypto/decaf377-frost" } +decaf377-frost = { version = "0.82.0-alpha.0", path = "../crypto/decaf377-frost" } decaf377-ka = {workspace = true} decaf377-rdsa = {workspace = true} ed25519-consensus = {workspace = true} futures = {workspace = true} hex = {workspace = true} -penumbra-governance = {workspace = true, default-features = false} -penumbra-keys = {workspace = true, default-features = true} -penumbra-proto = {workspace = true, features = ["rpc"], default-features = true} -penumbra-stake = {workspace = true, default-features = false} -penumbra-transaction = {workspace = true, default-features = true} -penumbra-txhash = {workspace = true, default-features = true} +penumbra-sdk-governance = {workspace = true, default-features = false} +penumbra-sdk-keys = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, features = ["rpc"], default-features = true} +penumbra-sdk-stake = {workspace = true, default-features = false} +penumbra-sdk-transaction = {workspace = true, default-features = true} +penumbra-sdk-txhash = {workspace = true, default-features = true} prost = {workspace = true} rand_core = {workspace = true} serde = {workspace = true, features = ["derive"]} diff --git a/crates/custody/src/client.rs b/crates/custody/src/client.rs index 10b014a9ef..15d9ebf58b 100644 --- a/crates/custody/src/client.rs +++ b/crates/custody/src/client.rs @@ -1,7 +1,7 @@ use anyhow::Result; use futures::FutureExt; -use penumbra_proto::custody::v1::custody_service_client::CustodyServiceClient; -use penumbra_proto::custody::v1::AuthorizeResponse; +use penumbra_sdk_proto::custody::v1::custody_service_client::CustodyServiceClient; +use penumbra_sdk_proto::custody::v1::AuthorizeResponse; use std::{future::Future, pin::Pin}; use tonic::codegen::Bytes; diff --git a/crates/custody/src/encrypted.rs b/crates/custody/src/encrypted.rs index 827e510ab7..21c561c0e8 100644 --- a/crates/custody/src/encrypted.rs +++ b/crates/custody/src/encrypted.rs @@ -1,4 +1,4 @@ -use penumbra_proto::custody::v1::{self as pb, AuthorizeResponse}; +use penumbra_sdk_proto::custody::v1::{self as pb, AuthorizeResponse}; use rand_core::OsRng; use serde::{Deserialize, Serialize}; use serde_with::{formats::Uppercase, hex::Hex}; diff --git a/crates/custody/src/null_kms.rs b/crates/custody/src/null_kms.rs index 907b511418..ff1443b064 100644 --- a/crates/custody/src/null_kms.rs +++ b/crates/custody/src/null_kms.rs @@ -1,7 +1,7 @@ //! A basic software key management system that stores keys in memory but //! presents as an asynchronous signer. -use penumbra_proto::custody::v1::{self as pb}; +use penumbra_sdk_proto::custody::v1::{self as pb}; use tonic::{async_trait, Request, Response, Status}; /// A "null KMS" that has no keys and errors on any requests. diff --git a/crates/custody/src/policy.rs b/crates/custody/src/policy.rs index e2ce26d6ba..3d65b7dca7 100644 --- a/crates/custody/src/policy.rs +++ b/crates/custody/src/policy.rs @@ -2,8 +2,8 @@ use std::collections::HashSet; -use penumbra_keys::Address; -use penumbra_proto::{ +use penumbra_sdk_keys::Address; +use penumbra_sdk_proto::{ core::{ component::{ governance::v1::ValidatorVoteBody as ProtoValidatorVoteBody, @@ -13,7 +13,7 @@ use penumbra_proto::{ }, Message as _, }; -use penumbra_transaction::plan::ActionPlan; +use penumbra_sdk_transaction::plan::ActionPlan; use serde::{Deserialize, Serialize}; use crate::{ @@ -59,7 +59,7 @@ pub enum AuthPolicy { /// This policy should be combined with an `AllowList` to prevent sending /// funds outside of the relayer account. OnlyIbcRelay, - /// Require specific pre-authorizations for submitted [`TransactionPlan`](penumbra_transaction::TransactionPlan)s. + /// Require specific pre-authorizations for submitted [`TransactionPlan`](penumbra_sdk_transaction::TransactionPlan)s. PreAuthorization(PreAuthorizationPolicy), } @@ -132,7 +132,7 @@ impl PreAuthorizationPolicy { mod address_as_string { use std::str::FromStr; - use penumbra_keys::Address; + use penumbra_sdk_keys::Address; pub fn serialize( addresses: &[Address], diff --git a/crates/custody/src/pre_auth.rs b/crates/custody/src/pre_auth.rs index 8105d6cac9..ac8ed73d83 100644 --- a/crates/custody/src/pre_auth.rs +++ b/crates/custody/src/pre_auth.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{custody::v1 as pb, DomainType}; +use penumbra_sdk_proto::{custody::v1 as pb, DomainType}; use serde::{Deserialize, Serialize}; /// A pre-authorization packet. This allows a custodian to delegate (partial) diff --git a/crates/custody/src/request.rs b/crates/custody/src/request.rs index 1d5398a264..dcc6858561 100644 --- a/crates/custody/src/request.rs +++ b/crates/custody/src/request.rs @@ -1,7 +1,7 @@ -use penumbra_governance::ValidatorVoteBody; -use penumbra_proto::{custody::v1 as pb, DomainType}; -use penumbra_stake::validator::Validator; -use penumbra_transaction::TransactionPlan; +use penumbra_sdk_governance::ValidatorVoteBody; +use penumbra_sdk_proto::{custody::v1 as pb, DomainType}; +use penumbra_sdk_stake::validator::Validator; +use penumbra_sdk_transaction::TransactionPlan; use crate::PreAuthorization; diff --git a/crates/custody/src/soft_kms.rs b/crates/custody/src/soft_kms.rs index 4e49b654be..1bdae057a6 100644 --- a/crates/custody/src/soft_kms.rs +++ b/crates/custody/src/soft_kms.rs @@ -2,7 +2,7 @@ //! presents as an asynchronous signer. use decaf377_rdsa::{Signature, SpendAuth}; -use penumbra_proto::{ +use penumbra_sdk_proto::{ core::component::{ governance::v1::ValidatorVoteBody as ProtoValidatorVoteBody, stake::v1::Validator as ProtoValidator, @@ -10,7 +10,7 @@ use penumbra_proto::{ custody::v1::{self as pb, AuthorizeResponse}, Message as _, }; -use penumbra_transaction::AuthorizationData; +use penumbra_sdk_transaction::AuthorizationData; use rand_core::OsRng; use tonic::{async_trait, Request, Response, Status}; @@ -35,7 +35,7 @@ impl SoftKms { Self { config } } - /// Attempt to authorize the requested [`TransactionPlan`](penumbra_transaction::TransactionPlan). + /// Attempt to authorize the requested [`TransactionPlan`](penumbra_sdk_transaction::TransactionPlan). #[tracing::instrument(skip(self, request), name = "softhsm_sign")] pub fn sign(&self, request: &AuthorizeRequest) -> anyhow::Result { tracing::debug!(?request.plan); diff --git a/crates/custody/src/soft_kms/config.rs b/crates/custody/src/soft_kms/config.rs index 512169430e..42cf6e2e7c 100644 --- a/crates/custody/src/soft_kms/config.rs +++ b/crates/custody/src/soft_kms/config.rs @@ -1,5 +1,5 @@ use crate::policy::AuthPolicy; -use penumbra_keys::keys::SpendKey; +use penumbra_sdk_keys::keys::SpendKey; use serde::{Deserialize, Serialize}; use serde_with::DisplayFromStr; @@ -38,7 +38,7 @@ fn is_default(value: &T) -> bool { #[cfg(test)] mod tests { - use penumbra_keys::keys::{Bip44Path, SeedPhrase}; + use penumbra_sdk_keys::keys::{Bip44Path, SeedPhrase}; use crate::policy::PreAuthorizationPolicy; diff --git a/crates/custody/src/terminal.rs b/crates/custody/src/terminal.rs index 7f9e00f0f8..ac241f82cd 100644 --- a/crates/custody/src/terminal.rs +++ b/crates/custody/src/terminal.rs @@ -1,8 +1,8 @@ use anyhow::Result; -use penumbra_governance::ValidatorVoteBody; -use penumbra_proto::DomainType; -use penumbra_stake::validator::Validator; -use penumbra_transaction::TransactionPlan; +use penumbra_sdk_governance::ValidatorVoteBody; +use penumbra_sdk_proto::DomainType; +use penumbra_sdk_stake::validator::Validator; +use penumbra_sdk_transaction::TransactionPlan; use serde::de::DeserializeOwned; use tonic::async_trait; diff --git a/crates/custody/src/threshold.rs b/crates/custody/src/threshold.rs index dd5521674f..c2b0bc8453 100644 --- a/crates/custody/src/threshold.rs +++ b/crates/custody/src/threshold.rs @@ -1,11 +1,11 @@ use anyhow::{anyhow, Result}; -use penumbra_transaction::AuthorizationData; +use penumbra_sdk_transaction::AuthorizationData; use rand_core::OsRng; use serde::Serialize; use tonic::{async_trait, Request, Response, Status}; -use penumbra_keys::{keys::AddressIndex, Address, FullViewingKey}; -use penumbra_proto::{custody::v1 as pb, DomainType}; +use penumbra_sdk_keys::{keys::AddressIndex, Address, FullViewingKey}; +use penumbra_sdk_proto::{custody::v1 as pb, DomainType}; use crate::{AuthorizeRequest, AuthorizeValidatorDefinitionRequest, AuthorizeValidatorVoteRequest}; @@ -362,7 +362,7 @@ impl pb::custody_service_server::CustodySer mod test { use std::collections::HashMap; - use penumbra_transaction::TransactionPlan; + use penumbra_sdk_transaction::TransactionPlan; use tokio::sync; diff --git a/crates/custody/src/threshold/config.rs b/crates/custody/src/threshold/config.rs index fbfd1d1d3b..9ac396b4ad 100644 --- a/crates/custody/src/threshold/config.rs +++ b/crates/custody/src/threshold/config.rs @@ -2,7 +2,7 @@ use anyhow::Result; use decaf377::Fq; use decaf377_frost as frost; use ed25519_consensus::{SigningKey, VerificationKey}; -use penumbra_keys::{keys::NullifierKey, FullViewingKey}; +use penumbra_sdk_keys::{keys::NullifierKey, FullViewingKey}; use rand_core::CryptoRngCore; use serde::{Deserialize, Serialize}; use serde_with::{formats::Uppercase, hex::Hex, DisplayFromStr, TryFromInto}; diff --git a/crates/custody/src/threshold/dkg.rs b/crates/custody/src/threshold/dkg.rs index 438afa5551..2b659942f6 100644 --- a/crates/custody/src/threshold/dkg.rs +++ b/crates/custody/src/threshold/dkg.rs @@ -7,7 +7,7 @@ use std::collections::{HashMap, HashSet}; mod encryption; use ed25519_consensus::{Signature, SigningKey, VerificationKey}; use encryption::EncryptionKey; -use penumbra_proto::{custody::threshold::v1 as pb, DomainType, Message}; +use penumbra_sdk_proto::{custody::threshold::v1 as pb, DomainType, Message}; use rand_core::CryptoRngCore; use self::encryption::DecryptionKey; diff --git a/crates/custody/src/threshold/sign.rs b/crates/custody/src/threshold/sign.rs index 1ba7f80d83..fe0ac495c5 100644 --- a/crates/custody/src/threshold/sign.rs +++ b/crates/custody/src/threshold/sign.rs @@ -5,18 +5,18 @@ use std::{ use anyhow::{anyhow, Result}; use ed25519_consensus::{Signature, SigningKey, VerificationKey}; -use penumbra_keys::FullViewingKey; +use penumbra_sdk_keys::FullViewingKey; use rand_core::CryptoRngCore; use decaf377_frost as frost; use frost::round1::SigningCommitments; -use penumbra_proto::core::component::{ +use penumbra_sdk_proto::core::component::{ governance::v1::ValidatorVoteBody as ProtoValidatorVoteBody, stake::v1::Validator as ProtoValidator, }; -use penumbra_proto::{penumbra::custody::threshold::v1 as pb, DomainType, Message}; -use penumbra_transaction::AuthorizationData; -use penumbra_txhash::EffectHash; +use penumbra_sdk_proto::{penumbra::custody::threshold::v1 as pb, DomainType, Message}; +use penumbra_sdk_transaction::AuthorizationData; +use penumbra_sdk_txhash::EffectHash; use crate::terminal::SigningRequest; diff --git a/crates/misc/measure/Cargo.toml b/crates/misc/measure/Cargo.toml index f60b627eb3..9610985bda 100644 --- a/crates/misc/measure/Cargo.toml +++ b/crates/misc/measure/Cargo.toml @@ -1,6 +1,10 @@ [package] -name = "penumbra-measure" +name = "penumbra-sdk-measure" +authors = {workspace = true} +repository = {workspace = true} +description = "A benchmark tool for Penumbra RPCs" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [package.metadata.dist] @@ -18,9 +22,9 @@ anyhow = {workspace = true} bytesize = "1.2" clap = {workspace = true, features = ["derive", "env"]} indicatif = {workspace = true} -penumbra-compact-block = {workspace = true, default-features = false} -penumbra-proto = {workspace = true, features = ["rpc"], default-features = true} -penumbra-view = {workspace = true} +penumbra-sdk-compact-block = {workspace = true, default-features = false} +penumbra-sdk-proto = {workspace = true, features = ["rpc"], default-features = true} +penumbra-sdk-view = {workspace = true} rustls = {workspace = true} serde_json = {workspace = true} tokio = {workspace = true, features = ["full"]} diff --git a/crates/misc/measure/src/main.rs b/crates/misc/measure/src/main.rs index 9cd9e7ec5d..dcb1ac7790 100644 --- a/crates/misc/measure/src/main.rs +++ b/crates/misc/measure/src/main.rs @@ -8,8 +8,8 @@ use rustls::crypto::aws_lc_rs; use tracing::Instrument; use tracing_subscriber::EnvFilter; -use penumbra_compact_block::CompactBlock; -use penumbra_proto::{ +use penumbra_sdk_compact_block::CompactBlock; +use penumbra_sdk_proto::{ core::component::compact_block::v1::CompactBlockRequest, penumbra::{ core::component::compact_block::v1::{ @@ -22,7 +22,7 @@ use penumbra_proto::{ }, DomainType, Message, }; -use penumbra_view::ViewServer; +use penumbra_sdk_view::ViewServer; use tonic::transport::Channel; use url::Url; @@ -249,7 +249,7 @@ impl Opt { let mut sp_note_count = 0; let mut sp_swap_count = 0; - use penumbra_compact_block::StatePayload; + use penumbra_sdk_compact_block::StatePayload; while let Some(block_rsp) = stream.message().await? { cb_count += 1; diff --git a/crates/misc/tct-visualize/Cargo.toml b/crates/misc/tct-visualize/Cargo.toml index adb96c663f..1f8ee7e1c7 100644 --- a/crates/misc/tct-visualize/Cargo.toml +++ b/crates/misc/tct-visualize/Cargo.toml @@ -1,6 +1,10 @@ [package] -name = "penumbra-tct-visualize" +name = "penumbra-sdk-tct-visualize" +authors = {workspace = true} +repository = {workspace = true} +description = "Visualize a TCT in action" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [package.metadata.dist] @@ -12,9 +16,8 @@ name = "tct-visualize" [[bin]] name = "tct-live-edit" - [dependencies] -penumbra-tct = {workspace = true, features = ["arbitrary"], default-features = true} +penumbra-sdk-tct = {workspace = true, features = ["arbitrary"], default-features = true} decaf377 = {workspace = true} tokio = {workspace = true, features = ["full"]} tokio-util = {workspace = true, features = ["full"]} diff --git a/crates/misc/tct-visualize/src/bin/tct-live-edit.rs b/crates/misc/tct-visualize/src/bin/tct-live-edit.rs index d529c91e3c..01fbf3bfa5 100644 --- a/crates/misc/tct-visualize/src/bin/tct-live-edit.rs +++ b/crates/misc/tct-visualize/src/bin/tct-live-edit.rs @@ -8,8 +8,8 @@ use include_flate::flate; use tokio::sync::watch; use tower_http::trace::TraceLayer; -use penumbra_tct::Tree; -use penumbra_tct_visualize::live::{self, ViewExtensions}; +use penumbra_sdk_tct::Tree; +use penumbra_sdk_tct_visualize::live::{self, ViewExtensions}; /// Visualize the structure of the Tiered Commitment Tree. #[derive(Parser, Debug)] diff --git a/crates/misc/tct-visualize/src/bin/tct-visualize.rs b/crates/misc/tct-visualize/src/bin/tct-visualize.rs index 066b6fb70b..85f2f0c9ec 100644 --- a/crates/misc/tct-visualize/src/bin/tct-visualize.rs +++ b/crates/misc/tct-visualize/src/bin/tct-visualize.rs @@ -13,11 +13,11 @@ use std::{ use anyhow::Result; use clap::Parser; -use penumbra_tct_visualize::render; +use penumbra_sdk_tct_visualize::render; use rand::{seq::SliceRandom, Rng, RngCore, SeedableRng}; use rand_distr::Binomial; -use penumbra_tct::{self as tct, StateCommitment, Tree, Witness}; +use penumbra_sdk_tct::{self as tct, StateCommitment, Tree, Witness}; use tct::structure::Hash; /// Visualize the structure of the Tiered Commitment Tree. diff --git a/crates/misc/tct-visualize/src/live.rs b/crates/misc/tct-visualize/src/live.rs index 9ef72cbdbf..279c579691 100644 --- a/crates/misc/tct-visualize/src/live.rs +++ b/crates/misc/tct-visualize/src/live.rs @@ -15,7 +15,7 @@ pub use query::query; mod control; pub use control::control; -use penumbra_tct::Tree; +use penumbra_sdk_tct::Tree; /// Combine the [`control`], [`query`], and [`view`] endpoints into a single [`Router`]. /// diff --git a/crates/misc/tct-visualize/src/live/control.rs b/crates/misc/tct-visualize/src/live/control.rs index f7df472c49..d7f568cb2e 100644 --- a/crates/misc/tct-visualize/src/live/control.rs +++ b/crates/misc/tct-visualize/src/live/control.rs @@ -12,7 +12,7 @@ use rand::{seq::SliceRandom, Rng}; use serde_json::json; use tokio::{sync::watch, task::spawn_blocking}; -use penumbra_tct::{ +use penumbra_sdk_tct::{ builder::{block, epoch}, StateCommitment, Tree, Witness, }; diff --git a/crates/misc/tct-visualize/src/live/query.rs b/crates/misc/tct-visualize/src/live/query.rs index 06f14abb59..2241743096 100644 --- a/crates/misc/tct-visualize/src/live/query.rs +++ b/crates/misc/tct-visualize/src/live/query.rs @@ -10,7 +10,7 @@ use axum::{ use serde_json::json; use tokio::sync::watch; -use penumbra_tct::{ +use penumbra_sdk_tct::{ structure::{self, Hash}, StateCommitment, Tree, }; diff --git a/crates/misc/tct-visualize/src/live/view.rs b/crates/misc/tct-visualize/src/live/view.rs index 40606a0b7f..f3d8090a94 100644 --- a/crates/misc/tct-visualize/src/live/view.rs +++ b/crates/misc/tct-visualize/src/live/view.rs @@ -19,7 +19,7 @@ use serde_json::json; use tokio::sync::{mpsc, watch}; use tokio_stream::{wrappers::ReceiverStream, StreamExt}; -use penumbra_tct::{Forgotten, Position, Tree}; +use penumbra_sdk_tct::{Forgotten, Position, Tree}; mod resources; use resources::*; diff --git a/crates/misc/tct-visualize/src/render.rs b/crates/misc/tct-visualize/src/render.rs index 6da8336875..3a52afd7b0 100644 --- a/crates/misc/tct-visualize/src/render.rs +++ b/crates/misc/tct-visualize/src/render.rs @@ -1,6 +1,6 @@ use std::io::{self, Write}; -use penumbra_tct::{ +use penumbra_sdk_tct::{ structure::{Kind, Node, Place}, Position, Tree, }; diff --git a/crates/proto/Cargo.toml b/crates/proto/Cargo.toml index ca137d5709..6cbd73c140 100644 --- a/crates/proto/Cargo.toml +++ b/crates/proto/Cargo.toml @@ -1,6 +1,10 @@ [package] -name = "penumbra-proto" +name = "penumbra-sdk-proto" +authors = {workspace = true} +repository = {workspace = true} +description = "Bindings and extension traits for Penumbra protobufs" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [build-dependencies] @@ -24,7 +28,7 @@ async-trait = {workspace = true} bech32 = {workspace = true} bytes = {workspace = true, features = ["serde"]} chrono = {workspace = true, optional = true, default-features = false, features = ["serde"]} -cnidarium = {workspace = true, optional = true, default-features = true} +cnidarium = {workspace = true, optional = true, default-features = true, features = ["rpc"]} decaf377-fmd = {workspace = true} decaf377-rdsa = {workspace = true} futures = {workspace = true} diff --git a/crates/proto/src/lib.rs b/crates/proto/src/lib.rs index 24efda9fd4..95ae722521 100644 --- a/crates/proto/src/lib.rs +++ b/crates/proto/src/lib.rs @@ -7,7 +7,7 @@ //! //! ```ascii //! ┌───────┐ ┌──────────────┐ ┌──────────────┐ -//! │encoded│ protobuf │penumbra_proto│ TryFrom/Into │ domain types │ +//! │encoded│ protobuf │penumbra_sdk_proto│ TryFrom/Into │ domain types │ //! │ bytes │<──wire ─>│ types │<─validation ─>│(other crates)│ //! └───────┘ format └──────────────┘ boundary └──────────────┘ //! ``` diff --git a/crates/proto/src/protobuf/tendermint_compat.rs b/crates/proto/src/protobuf/tendermint_compat.rs index 47111a3fff..e4081c5e3a 100644 --- a/crates/proto/src/protobuf/tendermint_compat.rs +++ b/crates/proto/src/protobuf/tendermint_compat.rs @@ -4,12 +4,12 @@ // this is not an exhaustive pass at providing compatibility between all of the types in either // library. accordingly, it is grouped by conversions needed for each RPC endpoint. -use crate::util::tendermint_proxy::v1 as penumbra_pb; +use crate::util::tendermint_proxy::v1 as penumbra_sdk_pb; use anyhow::anyhow; // === get_tx === -impl From for penumbra_pb::GetTxResponse { +impl From for penumbra_sdk_pb::GetTxResponse { fn from( tendermint_rpc::endpoint::tx::Response { hash, @@ -30,7 +30,7 @@ impl From for penumbra_pb::GetTxResponse } } -impl From for penumbra_pb::TxResult { +impl From for penumbra_sdk_pb::TxResult { fn from( tendermint::abci::types::ExecTxResult { log, @@ -52,14 +52,14 @@ impl From for penumbra_pb::TxResult { tags: events .into_iter() .flat_map(|Event { attributes, .. }: Event| { - attributes.into_iter().map(penumbra_pb::Tag::from) + attributes.into_iter().map(penumbra_sdk_pb::Tag::from) }) .collect(), } } } -impl From for penumbra_pb::Tag { +impl From for penumbra_sdk_pb::Tag { fn from(event_attr: tendermint::abci::EventAttribute) -> Self { Self { key: event_attr.key_bytes().into(), @@ -72,7 +72,7 @@ impl From for penumbra_pb::Tag { } } -// impl From for penumbra_pb::Tag { +// impl From for penumbra_sdk_pb::Tag { // fn from( // tendermint::abci::event::v0_37::EventAttribute { // key, @@ -94,7 +94,7 @@ impl From for penumbra_pb::Tag { // === broadcast_tx_async === impl From - for penumbra_pb::BroadcastTxAsyncResponse + for penumbra_sdk_pb::BroadcastTxAsyncResponse { fn from( tendermint_rpc::endpoint::broadcast::tx_async::Response { @@ -117,7 +117,7 @@ impl From // === broadcast_tx_sync === impl From - for penumbra_pb::BroadcastTxSyncResponse + for penumbra_sdk_pb::BroadcastTxSyncResponse { fn from( tendermint_rpc::endpoint::broadcast::tx_sync::Response { @@ -139,7 +139,7 @@ impl From // === get_status === -impl From for penumbra_pb::GetStatusResponse { +impl From for penumbra_sdk_pb::GetStatusResponse { fn from( tendermint_rpc::endpoint::status::Response { node_info, @@ -187,7 +187,7 @@ impl From for crate::tendermint::p2p::DefaultNodeInfo { } } -impl From for penumbra_pb::SyncInfo { +impl From for penumbra_sdk_pb::SyncInfo { fn from( tendermint_rpc::endpoint::status::SyncInfo { latest_block_hash, @@ -273,7 +273,9 @@ pub struct HeightOverflowError { source: >::Error, } -impl TryFrom for penumbra_pb::AbciQueryResponse { +impl TryFrom + for penumbra_sdk_pb::AbciQueryResponse +{ type Error = HeightOverflowError; fn try_from( tendermint_rpc::endpoint::abci_query::AbciQuery { @@ -338,7 +340,9 @@ impl From for crate::tendermint::crypto::Pro // === get_block_by_height === -impl TryFrom for penumbra_pb::GetBlockByHeightResponse { +impl TryFrom + for penumbra_sdk_pb::GetBlockByHeightResponse +{ type Error = anyhow::Error; fn try_from( tendermint_rpc::endpoint::block::Response { diff --git a/crates/test/mock-client/Cargo.toml b/crates/test/mock-client/Cargo.toml index b05dc6f2b3..42745d569c 100644 --- a/crates/test/mock-client/Cargo.toml +++ b/crates/test/mock-client/Cargo.toml @@ -1,24 +1,25 @@ [package] -name = "penumbra-mock-client" -authors.workspace = true +name = "penumbra-sdk-mock-client" +authors = {workspace = true} +repository = {workspace = true} +description = "Mock a client to build end-to-end tests" edition.workspace = true version.workspace = true -repository.workspace = true homepage.workspace = true license.workspace = true [dependencies] anyhow = {workspace = true} cnidarium = {workspace = true, default-features = true} -penumbra-asset = {workspace = true} -penumbra-compact-block = {workspace = true, default-features = true} -penumbra-dex = {workspace = true, default-features = true} -penumbra-keys = {workspace = true, default-features = true} -penumbra-sct = {workspace = true, default-features = true} -penumbra-shielded-pool = {workspace = true, features = [ +penumbra-sdk-asset = {workspace = true} +penumbra-sdk-compact-block = {workspace = true, default-features = true} +penumbra-sdk-dex = {workspace = true, default-features = true} +penumbra-sdk-keys = {workspace = true, default-features = true} +penumbra-sdk-sct = {workspace = true, default-features = true} +penumbra-sdk-shielded-pool = {workspace = true, features = [ "component", ], default-features = true} -penumbra-tct = {workspace = true, default-features = true} -penumbra-transaction = {workspace = true, default-features = true} +penumbra-sdk-tct = {workspace = true, default-features = true} +penumbra-sdk-transaction = {workspace = true, default-features = true} rand_core = {workspace = true} diff --git a/crates/test/mock-client/src/lib.rs b/crates/test/mock-client/src/lib.rs index d8920c0a0a..a40c0a84c9 100644 --- a/crates/test/mock-client/src/lib.rs +++ b/crates/test/mock-client/src/lib.rs @@ -1,15 +1,15 @@ use anyhow::Error; use cnidarium::StateRead; -use penumbra_compact_block::{component::StateReadExt as _, CompactBlock, StatePayload}; -use penumbra_dex::{swap::SwapPlaintext, swap_claim::SwapClaimPlan}; -use penumbra_keys::{keys::SpendKey, FullViewingKey}; -use penumbra_sct::{ +use penumbra_sdk_compact_block::{component::StateReadExt as _, CompactBlock, StatePayload}; +use penumbra_sdk_dex::{swap::SwapPlaintext, swap_claim::SwapClaimPlan}; +use penumbra_sdk_keys::{keys::SpendKey, FullViewingKey}; +use penumbra_sdk_sct::{ component::{clock::EpochRead, tree::SctRead}, Nullifier, }; -use penumbra_shielded_pool::{note, Note, SpendPlan}; -use penumbra_tct as tct; -use penumbra_transaction::{AuthorizationData, Transaction, TransactionPlan, WitnessData}; +use penumbra_sdk_shielded_pool::{note, Note, SpendPlan}; +use penumbra_sdk_tct as tct; +use penumbra_sdk_transaction::{AuthorizationData, Transaction, TransactionPlan, WitnessData}; use rand_core::OsRng; use std::collections::BTreeMap; @@ -24,7 +24,7 @@ pub struct MockClient { /// Whether a note was spent or not. pub spent_notes: BTreeMap, swaps: BTreeMap, - pub sct: penumbra_tct::Tree, + pub sct: penumbra_sdk_tct::Tree, } impl MockClient { @@ -97,7 +97,7 @@ impl MockClient { } pub fn scan_block(&mut self, block: CompactBlock) -> anyhow::Result<()> { - use penumbra_tct::Witness::*; + use penumbra_sdk_tct::Witness::*; if self.latest_height.wrapping_add(1) != block.height { anyhow::bail!( @@ -198,7 +198,7 @@ impl MockClient { Ok(()) } - pub fn latest_height_and_sct_root(&self) -> (u64, penumbra_tct::Root) { + pub fn latest_height_and_sct_root(&self) -> (u64, penumbra_sdk_tct::Root) { (self.latest_height, self.sct.root()) } @@ -210,7 +210,10 @@ impl MockClient { self.swaps.get(commitment).cloned() } - pub fn position(&self, commitment: note::StateCommitment) -> Option { + pub fn position( + &self, + commitment: note::StateCommitment, + ) -> Option { self.sct.witness(commitment).map(|proof| proof.position()) } @@ -228,7 +231,7 @@ impl MockClient { pub fn witness_commitment( &self, commitment: note::StateCommitment, - ) -> Option { + ) -> Option { self.sct.witness(commitment) } @@ -270,7 +273,7 @@ impl MockClient { pub fn notes_by_asset( &self, - asset_id: penumbra_asset::asset::Id, + asset_id: penumbra_sdk_asset::asset::Id, ) -> impl Iterator + '_ { self.notes .values() @@ -283,7 +286,7 @@ impl MockClient { pub fn spendable_notes_by_asset( &self, - asset_id: penumbra_asset::asset::Id, + asset_id: penumbra_sdk_asset::asset::Id, ) -> impl Iterator + '_ { self.notes .values() diff --git a/crates/test/mock-consensus/Cargo.toml b/crates/test/mock-consensus/Cargo.toml index 9b1ba0b45c..8316d2de34 100644 --- a/crates/test/mock-consensus/Cargo.toml +++ b/crates/test/mock-consensus/Cargo.toml @@ -1,9 +1,10 @@ [package] -name = "penumbra-mock-consensus" -authors.workspace = true +name = "penumbra-sdk-mock-consensus" +authors = {workspace = true} +repository = {workspace = true} +description = "Mock consensus to build application tests" edition.workspace = true version.workspace = true -repository.workspace = true homepage.workspace = true license.workspace = true diff --git a/crates/test/mock-tendermint-proxy/Cargo.toml b/crates/test/mock-tendermint-proxy/Cargo.toml index 519ef180e1..722eff0941 100644 --- a/crates/test/mock-tendermint-proxy/Cargo.toml +++ b/crates/test/mock-tendermint-proxy/Cargo.toml @@ -1,17 +1,18 @@ [package] -name = "penumbra-mock-tendermint-proxy" -authors.workspace = true +name = "penumbra-sdk-mock-tendermint-proxy" +authors = {workspace = true} +repository = {workspace = true} +description = "Mock the tendermint proxy crate for e2e tests" edition.workspace = true version.workspace = true -repository.workspace = true homepage.workspace = true license.workspace = true [dependencies] hex = { workspace = true } pbjson-types = { workspace = true } -penumbra-mock-consensus = { workspace = true } -penumbra-proto = { workspace = true, features = ["rpc", "tendermint"] } +penumbra-sdk-mock-consensus = { workspace = true } +penumbra-sdk-proto = { workspace = true, features = ["rpc", "tendermint"] } tap = { workspace = true } tendermint = { workspace = true } tendermint-proto = { workspace = true } diff --git a/crates/test/mock-tendermint-proxy/src/proxy.rs b/crates/test/mock-tendermint-proxy/src/proxy.rs index 0a4d9a8a66..0b4a3ceb56 100644 --- a/crates/test/mock-tendermint-proxy/src/proxy.rs +++ b/crates/test/mock-tendermint-proxy/src/proxy.rs @@ -1,5 +1,5 @@ use { - penumbra_proto::{ + penumbra_sdk_proto::{ tendermint::p2p::DefaultNodeInfo, util::tendermint_proxy::v1::{ tendermint_proxy_service_server::TendermintProxyService, AbciQueryRequest, @@ -25,7 +25,7 @@ use { /// A tendermint proxy service for use in tests. /// /// This type implements [`TendermintProxyService`], but can be configured to report the blocks -/// generated by a [`penumbra_mock_consensus::TestNode`]. +/// generated by a [`penumbra_sdk_mock_consensus::TestNode`]. #[derive(Default)] pub struct TestNodeProxy { inner: Arc, @@ -44,7 +44,7 @@ impl TestNodeProxy { } /// Returns a boxed function that will add [`Blocks`] to this proxy. - pub fn on_block_callback(&self) -> penumbra_mock_consensus::OnBlockFn { + pub fn on_block_callback(&self) -> penumbra_sdk_mock_consensus::OnBlockFn { // Create a new reference to the shared map of blocks we've seen. let Self { inner } = self; let inner = Arc::clone(inner); @@ -218,7 +218,7 @@ impl TendermintProxyService for TestNodeProxy { // the response uses the penumbra type but internally we use the tendermint type let proto_block = block .clone() - .map(penumbra_proto::tendermint::types::Block::try_from) + .map(penumbra_sdk_proto::tendermint::types::Block::try_from) .transpose() .or_else(|e| { tracing::warn!(?height, error = ?e, "proxy: error fetching blocks"); @@ -226,9 +226,9 @@ impl TendermintProxyService for TestNodeProxy { })?; Ok(GetBlockByHeightResponse { - block_id: block.map(|b| penumbra_proto::tendermint::types::BlockId { + block_id: block.map(|b| penumbra_sdk_proto::tendermint::types::BlockId { hash: b.header.hash().into(), - part_set_header: Some(penumbra_proto::tendermint::types::PartSetHeader { + part_set_header: Some(penumbra_sdk_proto::tendermint::types::PartSetHeader { total: 0, hash: vec![], }), diff --git a/crates/test/mock-tendermint-proxy/src/stub.rs b/crates/test/mock-tendermint-proxy/src/stub.rs index 188d42a4b5..6e3ea88481 100644 --- a/crates/test/mock-tendermint-proxy/src/stub.rs +++ b/crates/test/mock-tendermint-proxy/src/stub.rs @@ -1,5 +1,5 @@ use { - penumbra_proto::util::tendermint_proxy::v1::{ + penumbra_sdk_proto::util::tendermint_proxy::v1::{ tendermint_proxy_service_server::TendermintProxyService, AbciQueryRequest, AbciQueryResponse, BroadcastTxAsyncRequest, BroadcastTxAsyncResponse, BroadcastTxSyncRequest, BroadcastTxSyncResponse, GetBlockByHeightRequest, diff --git a/crates/test/tct-property-test/Cargo.toml b/crates/test/tct-property-test/Cargo.toml index 0ca346f61a..f554a62657 100644 --- a/crates/test/tct-property-test/Cargo.toml +++ b/crates/test/tct-property-test/Cargo.toml @@ -1,12 +1,16 @@ [package] -name = "penumbra-tct-property-test" +name = "penumbra-sdk-tct-property-test" +authors = {workspace = true} +repository = {workspace = true} +description = "Property testing for the TCT, as a library" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [dev-dependencies] anyhow = {workspace = true} futures = {workspace = true} -penumbra-tct = {workspace = true, features = ["arbitrary"], default-features = true} +penumbra-sdk-tct = {workspace = true, features = ["arbitrary"], default-features = true} proptest = {workspace = true} proptest-derive = {workspace = true} tokio = {workspace = true, features = ["full"]} diff --git a/crates/test/tct-property-test/src/lib.rs b/crates/test/tct-property-test/src/lib.rs index 50aee18cfa..88caa56541 100644 --- a/crates/test/tct-property-test/src/lib.rs +++ b/crates/test/tct-property-test/src/lib.rs @@ -1,4 +1,4 @@ -//! This is an empty crate that exists solely to contain property tests for the `penumbra_tct` +//! This is an empty crate that exists solely to contain property tests for the `penumbra_sdk_tct` //! package, so we can isolate expensive tests and run them with different optimizations. // Requires nightly. #![cfg_attr(docsrs, feature(doc_auto_cfg))] diff --git a/crates/test/tct-property-test/tests/serialize.rs b/crates/test/tct-property-test/tests/serialize.rs index 26cda7ea5d..f06def5198 100644 --- a/crates/test/tct-property-test/tests/serialize.rs +++ b/crates/test/tct-property-test/tests/serialize.rs @@ -5,7 +5,7 @@ use std::fmt::{Debug, Display}; use proptest::{arbitrary::*, prelude::*}; -use penumbra_tct::{storage::InMemory, validate, StateCommitment, Tree, Witness}; +use penumbra_sdk_tct::{storage::InMemory, validate, StateCommitment, Tree, Witness}; const MAX_USED_COMMITMENTS: usize = 3; const MAX_TIER_ACTIONS: usize = 10; diff --git a/crates/test/tct-property-test/tests/simulate/mod.rs b/crates/test/tct-property-test/tests/simulate/mod.rs index a3c966368c..38a437aba8 100644 --- a/crates/test/tct-property-test/tests/simulate/mod.rs +++ b/crates/test/tct-property-test/tests/simulate/mod.rs @@ -2,7 +2,7 @@ use std::fmt::Debug; use proptest_derive::Arbitrary; -use penumbra_tct::{self as real, spec, Commitment, Witness}; +use penumbra_sdk_tct::{self as real, spec, Commitment, Witness}; /// Simulate an action being run on both a specification and a real implementation simultaneously. pub trait Simulate { diff --git a/crates/test/tct-property-test/tests/spec.rs b/crates/test/tct-property-test/tests/spec.rs index a850650256..6eddbca4a9 100644 --- a/crates/test/tct-property-test/tests/spec.rs +++ b/crates/test/tct-property-test/tests/spec.rs @@ -1,6 +1,6 @@ // use proptest::{arbitrary::*, prelude::*}; -// use penumbra_tct::Commitment; +// use penumbra_sdk_tct::Commitment; // mod simulate; // use simulate::{Params, Simulate}; diff --git a/crates/test/tct-property-test/tests/witness.rs b/crates/test/tct-property-test/tests/witness.rs index 139dd1be82..bae9731ea9 100644 --- a/crates/test/tct-property-test/tests/witness.rs +++ b/crates/test/tct-property-test/tests/witness.rs @@ -5,7 +5,7 @@ use std::collections::HashSet; use proptest::{arbitrary::*, prelude::*}; -use penumbra_tct::{validate, StateCommitment, Tree, Witness}; +use penumbra_sdk_tct::{validate, StateCommitment, Tree, Witness}; const MAX_USED_COMMITMENTS: usize = 3; const MAX_TIER_ACTIONS: usize = 10; diff --git a/crates/test/tracing-subscriber/Cargo.toml b/crates/test/tracing-subscriber/Cargo.toml index f4be0e6d37..c71dec1bce 100644 --- a/crates/test/tracing-subscriber/Cargo.toml +++ b/crates/test/tracing-subscriber/Cargo.toml @@ -1,12 +1,13 @@ [package] -name = "penumbra-test-subscriber" -authors.workspace = true +name = "penumbra-sdk-test-subscriber" +authors = {workspace = true} +repository = {workspace = true} +description = "Subscriber for Penumbra app tests" edition.workspace = true version.workspace = true -repository.workspace = true homepage.workspace = true license.workspace = true -publish = false +publish = true [dependencies] tracing = { workspace = true } diff --git a/crates/test/tracing-subscriber/src/lib.rs b/crates/test/tracing-subscriber/src/lib.rs index 8b067e0ba3..c7693f7492 100644 --- a/crates/test/tracing-subscriber/src/lib.rs +++ b/crates/test/tracing-subscriber/src/lib.rs @@ -12,7 +12,7 @@ use { // NB: this is marked as "dead code" but it is used by integration tests. #[allow(dead_code)] pub fn set_tracing_subscriber() -> DefaultGuard { - let filter = "info,penumbra_app=trace,penumbra_mock_consensus=trace"; + let filter = "info,penumbra_sdk_app=trace,penumbra_sdk_mock_consensus=trace"; let filter = EnvFilter::try_from_default_env() .or_else(|_| EnvFilter::try_new(filter)) .expect("should have a valid filter directive"); diff --git a/crates/util/auto-https/Cargo.toml b/crates/util/auto-https/Cargo.toml index 3250622b9b..e801c0bf30 100644 --- a/crates/util/auto-https/Cargo.toml +++ b/crates/util/auto-https/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "penumbra-auto-https" +name = "penumbra-sdk-auto-https" version = {workspace = true} authors = {workspace = true} edition = {workspace = true} @@ -7,7 +7,7 @@ description = "Automatic HTTPS management for Penumbra" repository = {workspace = true} homepage = {workspace = true} license = {workspace = true} -publish = false +publish = true [dependencies] anyhow = {workspace = true} diff --git a/crates/util/cometindex/Cargo.toml b/crates/util/cometindex/Cargo.toml index 0b7df78674..2e3421b93b 100644 --- a/crates/util/cometindex/Cargo.toml +++ b/crates/util/cometindex/Cargo.toml @@ -7,7 +7,7 @@ description = "A library for building indexers for CometBFT events" repository = {workspace = true} homepage = {workspace = true} license = {workspace = true} -publish = false +publish = true [dependencies] tokio = {workspace = true, features = ["full"]} diff --git a/crates/util/tendermint-proxy/Cargo.toml b/crates/util/tendermint-proxy/Cargo.toml index 8157b35cd1..4308ab0955 100644 --- a/crates/util/tendermint-proxy/Cargo.toml +++ b/crates/util/tendermint-proxy/Cargo.toml @@ -1,9 +1,10 @@ [package] -name = "penumbra-tendermint-proxy" -authors.workspace = true +name = "penumbra-sdk-tendermint-proxy" +authors = {workspace = true} +repository = {workspace = true} +description = "A gRPC proxy for Tendermint/CometBFT APIs" edition.workspace = true version.workspace = true -repository.workspace = true homepage.workspace = true license.workspace = true @@ -15,8 +16,8 @@ hex = { workspace = true } http = { workspace = true } metrics = { workspace = true } pbjson-types = { workspace = true } -penumbra-proto = { workspace = true, features = ["rpc", "tendermint"] } -penumbra-transaction = { workspace = true } +penumbra-sdk-proto = { workspace = true, features = ["rpc", "tendermint"] } +penumbra-sdk-transaction = { workspace = true } pin-project = { workspace = true } pin-project-lite = { workspace = true } sha2 = { workspace = true } diff --git a/crates/util/tendermint-proxy/src/tendermint_proxy.rs b/crates/util/tendermint-proxy/src/tendermint_proxy.rs index 7c902f9314..bf5120528c 100644 --- a/crates/util/tendermint-proxy/src/tendermint_proxy.rs +++ b/crates/util/tendermint-proxy/src/tendermint_proxy.rs @@ -1,5 +1,5 @@ use crate::TendermintProxy; -use penumbra_proto::{ +use penumbra_sdk_proto::{ util::tendermint_proxy::v1::{ tendermint_proxy_service_server::TendermintProxyService, AbciQueryRequest, AbciQueryResponse, BroadcastTxAsyncRequest, BroadcastTxAsyncResponse, @@ -8,7 +8,7 @@ use penumbra_proto::{ }, DomainType, }; -use penumbra_transaction::Transaction; +use penumbra_sdk_transaction::Transaction; use tap::TapFallible; use tendermint::{abci::Code, block::Height}; use tendermint_rpc::{Client, HttpClient}; diff --git a/crates/util/tower-trace/Cargo.toml b/crates/util/tower-trace/Cargo.toml index af48e6b2af..3177c50eb1 100644 --- a/crates/util/tower-trace/Cargo.toml +++ b/crates/util/tower-trace/Cargo.toml @@ -1,6 +1,10 @@ [package] -name = "penumbra-tower-trace" +name = "penumbra-sdk-tower-trace" +authors = {workspace = true} +repository = {workspace = true} +description = "Penumbra's tower-trace layer" version = {workspace = true} +license = {workspace = true} edition = {workspace = true} [dependencies] diff --git a/crates/view/Cargo.toml b/crates/view/Cargo.toml index 3e6e067a42..3eaf9def53 100644 --- a/crates/view/Cargo.toml +++ b/crates/view/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "penumbra-view" +name = "penumbra-sdk-view" version = {workspace = true} authors = {workspace = true} edition = {workspace = true} @@ -7,7 +7,7 @@ description = "The view RPC library for the Penumbra Zone" repository = {workspace = true} homepage = {workspace = true} license = {workspace = true} -publish = false +publish = true [features] default = ["std"] @@ -34,25 +34,25 @@ ibc-types = {workspace = true, default-features = false} metrics = {workspace = true} once_cell = {workspace = true} parking_lot = {workspace = true} -penumbra-app = {workspace = true, default-features = false} -penumbra-asset = {workspace = true, default-features = true} -penumbra-community-pool = {workspace = true, default-features = false} -penumbra-compact-block = {workspace = true, default-features = false} -penumbra-dex = {workspace = true, default-features = false} -penumbra-distributions = {workspace = true, default-features = false} -penumbra-fee = {workspace = true, default-features = false} -penumbra-funding = {workspace = true, default-features = false} -penumbra-governance = {workspace = true, default-features = false} -penumbra-ibc = {workspace = true, default-features = false} -penumbra-keys = {workspace = true, default-features = true} -penumbra-num = {workspace = true, default-features = true} -penumbra-proto = {workspace = true, features = ["rpc"], default-features = true} -penumbra-sct = {workspace = true, default-features = false} -penumbra-shielded-pool = {workspace = true, default-features = false} -penumbra-stake = {workspace = true, default-features = false} -penumbra-tct = {workspace = true, default-features = true} -penumbra-transaction = {workspace = true, default-features = true} -penumbra-auction = {workspace = true, default-features = false} +penumbra-sdk-app = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = true} +penumbra-sdk-community-pool = {workspace = true, default-features = false} +penumbra-sdk-compact-block = {workspace = true, default-features = false} +penumbra-sdk-dex = {workspace = true, default-features = false} +penumbra-sdk-distributions = {workspace = true, default-features = false} +penumbra-sdk-fee = {workspace = true, default-features = false} +penumbra-sdk-funding = {workspace = true, default-features = false} +penumbra-sdk-governance = {workspace = true, default-features = false} +penumbra-sdk-ibc = {workspace = true, default-features = false} +penumbra-sdk-keys = {workspace = true, default-features = true} +penumbra-sdk-num = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, features = ["rpc"], default-features = true} +penumbra-sdk-sct = {workspace = true, default-features = false} +penumbra-sdk-shielded-pool = {workspace = true, default-features = false} +penumbra-sdk-stake = {workspace = true, default-features = false} +penumbra-sdk-tct = {workspace = true, default-features = true} +penumbra-sdk-transaction = {workspace = true, default-features = true} +penumbra-sdk-auction = {workspace = true, default-features = false} prost = {workspace = true} r2d2 = {workspace = true} r2d2_sqlite = {workspace = true, features = ["bundled"]} diff --git a/crates/view/src/client.rs b/crates/view/src/client.rs index 18d3a11a25..1359c4ff60 100644 --- a/crates/view/src/client.rs +++ b/crates/view/src/client.rs @@ -3,30 +3,30 @@ use std::{collections::BTreeMap, future::Future, pin::Pin}; use anyhow::Result; use futures::{FutureExt, Stream, StreamExt, TryStreamExt}; use pbjson_types::Any; -use penumbra_auction::auction::AuctionId; +use penumbra_sdk_auction::auction::AuctionId; use tonic::{codegen::Bytes, Streaming}; use tracing::instrument; -use penumbra_app::params::AppParameters; -use penumbra_asset::{ +use penumbra_sdk_app::params::AppParameters; +use penumbra_sdk_asset::{ asset::{self, Id, Metadata}, ValueView, }; -use penumbra_dex::{ +use penumbra_sdk_dex::{ lp::position::{self, Position}, TradingPair, }; -use penumbra_fee::GasPrices; -use penumbra_keys::{keys::AddressIndex, Address}; -use penumbra_num::Amount; -use penumbra_proto::view::v1::{ +use penumbra_sdk_fee::GasPrices; +use penumbra_sdk_keys::{keys::AddressIndex, Address}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::view::v1::{ self as pb, view_service_client::ViewServiceClient, BalancesResponse, BroadcastTransactionResponse, WitnessRequest, }; -use penumbra_sct::Nullifier; -use penumbra_shielded_pool::{fmd, note}; -use penumbra_stake::IdentityKey; -use penumbra_transaction::{ +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_shielded_pool::{fmd, note}; +use penumbra_sdk_stake::IdentityKey; +use penumbra_sdk_transaction::{ txhash::TransactionId, AuthorizationData, Transaction, TransactionPlan, WitnessData, }; @@ -135,7 +135,7 @@ pub trait ViewClient { /// Queries for a specific swap by commitment, returning immediately if it is not found. fn swap_by_commitment( &mut self, - swap_commitment: penumbra_tct::StateCommitment, + swap_commitment: penumbra_sdk_tct::StateCommitment, ) -> Pin> + Send + 'static>>; /// Queries for a specific nullifier's status, returning immediately if it is not found. @@ -559,7 +559,7 @@ where fn swap_by_commitment( &mut self, - swap_commitment: penumbra_tct::StateCommitment, + swap_commitment: penumbra_sdk_tct::StateCommitment, ) -> Pin> + Send + 'static>> { let mut self2 = self.clone(); async move { diff --git a/crates/view/src/lib.rs b/crates/view/src/lib.rs index 69b0014ad4..b6a4263cf1 100644 --- a/crates/view/src/lib.rs +++ b/crates/view/src/lib.rs @@ -5,7 +5,7 @@ //! documentation of [`ViewClient`] and a [`ViewServer`] for more information. //! //! This crate also provides a [`Planner`]. This is a planner for -//! [`TransactionPlan`][penumbra_transaction::TransactionPlan]. +//! [`TransactionPlan`][penumbra_sdk_transaction::TransactionPlan]. //! //! Finally, this crate provides a [`Storage`] type for managing persistent sqlite storage. diff --git a/crates/view/src/note_record.rs b/crates/view/src/note_record.rs index 0d09ad7765..23612127e5 100644 --- a/crates/view/src/note_record.rs +++ b/crates/view/src/note_record.rs @@ -1,9 +1,9 @@ -use penumbra_asset::Value; -use penumbra_keys::{keys::AddressIndex, Address, AddressView}; -use penumbra_proto::{view::v1 as pb, DomainType}; -use penumbra_sct::{CommitmentSource, Nullifier}; -use penumbra_shielded_pool::{note, Note, Rseed}; -use penumbra_tct::Position; +use penumbra_sdk_asset::Value; +use penumbra_sdk_keys::{keys::AddressIndex, Address, AddressView}; +use penumbra_sdk_proto::{view::v1 as pb, DomainType}; +use penumbra_sdk_sct::{CommitmentSource, Nullifier}; +use penumbra_sdk_shielded_pool::{note, Note, Rseed}; +use penumbra_sdk_tct::Position; use r2d2_sqlite::rusqlite::Row; use serde::{Deserialize, Serialize}; diff --git a/crates/view/src/planner.rs b/crates/view/src/planner.rs index 156e885b4b..a0c3f95dd6 100644 --- a/crates/view/src/planner.rs +++ b/crates/view/src/planner.rs @@ -5,22 +5,22 @@ use std::{ }; use anyhow::{Context, Result}; -use penumbra_sct::epoch::Epoch; +use penumbra_sdk_sct::epoch::Epoch; use rand::{CryptoRng, RngCore}; use rand_core::OsRng; use tracing::instrument; use crate::{SpendableNoteRecord, ViewClient}; use anyhow::anyhow; -use penumbra_asset::{asset, Value}; -use penumbra_auction::auction::dutch::DutchAuctionDescription; -use penumbra_auction::auction::dutch::{actions::ActionDutchAuctionWithdrawPlan, DutchAuction}; -use penumbra_auction::auction::{ +use penumbra_sdk_asset::{asset, Value}; +use penumbra_sdk_auction::auction::dutch::DutchAuctionDescription; +use penumbra_sdk_auction::auction::dutch::{actions::ActionDutchAuctionWithdrawPlan, DutchAuction}; +use penumbra_sdk_auction::auction::{ dutch::actions::{ActionDutchAuctionEnd, ActionDutchAuctionSchedule}, AuctionId, }; -use penumbra_community_pool::CommunityPoolDeposit; -use penumbra_dex::{ +use penumbra_sdk_community_pool::CommunityPoolDeposit; +use penumbra_sdk_dex::{ lp::action::{PositionClose, PositionOpen}, lp::plan::PositionWithdrawPlan, lp::position::{self, Position}, @@ -30,19 +30,19 @@ use penumbra_dex::{ swap_claim::SwapClaimPlan, TradingPair, }; -use penumbra_fee::{Fee, FeeTier, GasPrices}; -use penumbra_governance::{ +use penumbra_sdk_fee::{Fee, FeeTier, GasPrices}; +use penumbra_sdk_governance::{ proposal_state, DelegatorVotePlan, Proposal, ProposalDepositClaim, ProposalSubmit, ProposalWithdraw, ValidatorVote, Vote, }; -use penumbra_ibc::IbcRelay; -use penumbra_keys::{keys::AddressIndex, Address}; -use penumbra_num::Amount; -use penumbra_proto::view::v1::{NotesForVotingRequest, NotesRequest}; -use penumbra_shielded_pool::{Ics20Withdrawal, Note, OutputPlan, SpendPlan}; -use penumbra_stake::{rate::RateData, validator, IdentityKey, UndelegateClaimPlan}; -use penumbra_tct as tct; -use penumbra_transaction::{ +use penumbra_sdk_ibc::IbcRelay; +use penumbra_sdk_keys::{keys::AddressIndex, Address}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::view::v1::{NotesForVotingRequest, NotesRequest}; +use penumbra_sdk_shielded_pool::{Ics20Withdrawal, Note, OutputPlan, SpendPlan}; +use penumbra_sdk_stake::{rate::RateData, validator, IdentityKey, UndelegateClaimPlan}; +use penumbra_sdk_tct as tct; +use penumbra_sdk_transaction::{ memo::MemoPlaintext, plan::{ActionPlan, MemoPlan, TransactionPlan}, ActionList, TransactionParameters, diff --git a/crates/view/src/service.rs b/crates/view/src/service.rs index 46d948e097..c2ad52a6bf 100644 --- a/crates/view/src/service.rs +++ b/crates/view/src/service.rs @@ -9,7 +9,7 @@ use async_stream::try_stream; use camino::Utf8Path; use decaf377::Fq; use futures::stream::{self, StreamExt, TryStreamExt}; -use penumbra_auction::auction::dutch::actions::view::{ +use penumbra_sdk_auction::auction::dutch::actions::view::{ ActionDutchAuctionScheduleView, ActionDutchAuctionWithdrawView, }; use rand::Rng; @@ -23,8 +23,8 @@ use tonic::{async_trait, transport::Channel, Request, Response, Status}; use tracing::{instrument, Instrument}; use url::Url; -use penumbra_asset::{asset, asset::Metadata, Value}; -use penumbra_dex::{ +use penumbra_sdk_asset::{asset, asset::Metadata, Value}; +use penumbra_sdk_dex::{ lp::{ position::{self, Position}, Reserves, @@ -32,14 +32,14 @@ use penumbra_dex::{ swap_claim::SwapClaimPlan, TradingPair, }; -use penumbra_fee::Fee; -use penumbra_keys::{ +use penumbra_sdk_fee::Fee; +use penumbra_sdk_keys::{ keys::WalletId, keys::{AddressIndex, FullViewingKey}, Address, AddressView, }; -use penumbra_num::Amount; -use penumbra_proto::{ +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{ util::tendermint_proxy::v1::{ tendermint_proxy_service_client::TendermintProxyServiceClient, BroadcastTxSyncRequest, GetStatusRequest, GetStatusResponse, SyncInfo, @@ -56,9 +56,9 @@ use penumbra_proto::{ }, DomainType, }; -use penumbra_stake::rate::RateData; -use penumbra_tct::{Proof, StateCommitment}; -use penumbra_transaction::{ +use penumbra_sdk_stake::rate::RateData; +use penumbra_sdk_tct::{Proof, StateCommitment}; +use penumbra_sdk_transaction::{ AuthorizationData, Transaction, TransactionPerspective, TransactionPlan, WitnessData, }; @@ -86,7 +86,7 @@ pub struct ViewServer { // rather than a Tokio Mutex because it should be uncontended. error_slot: Arc>>, // A copy of the SCT used by the worker task. - state_commitment_tree: Arc>, + state_commitment_tree: Arc>, // The Url for the pd gRPC endpoint on remote node. node: Url, /// Used to watch for changes to the sync height. @@ -251,9 +251,9 @@ impl ViewServer { transaction .actions() .filter_map(|action| match action { - penumbra_transaction::Action::Spend(spend) => Some(spend.body.nullifier), + penumbra_sdk_transaction::Action::Spend(spend) => Some(spend.body.nullifier), /* - penumbra_transaction::Action::SwapClaim(swap_claim) => { + penumbra_sdk_transaction::Action::SwapClaim(swap_claim) => { Some(swap_claim.body.nullifier) } */ @@ -423,8 +423,8 @@ impl ViewService for ViewServer { &self, request: tonic::Request, ) -> Result, tonic::Status> { - use penumbra_proto::core::component::auction::v1 as pb_auction; - use penumbra_proto::core::component::auction::v1::query_service_client::QueryServiceClient as AuctionQueryServiceClient; + use penumbra_sdk_proto::core::component::auction::v1 as pb_auction; + use penumbra_sdk_proto::core::component::auction::v1::query_service_client::QueryServiceClient as AuctionQueryServiceClient; let parameters = request.into_inner(); let query_latest_state = parameters.query_latest_state; @@ -925,7 +925,7 @@ impl ViewService for ViewServer { // Next, extend the TxP with the openings of commitments known to our view server // but not included in the transaction body, for instance spent notes or swap claim outputs. for action in tx.actions() { - use penumbra_transaction::Action; + use penumbra_sdk_transaction::Action; match action { Action::Spend(spend) => { let nullifier = spend.body.nullifier; @@ -975,8 +975,8 @@ impl ViewService for ViewServer { let mut address_views = BTreeMap::new(); let mut asset_ids = BTreeSet::new(); for action_view in min_view.action_views() { - use penumbra_dex::{swap::SwapView, swap_claim::SwapClaimView}; - use penumbra_transaction::view::action_view::{ + use penumbra_sdk_dex::{swap::SwapView, swap_claim::SwapClaimView}; + use penumbra_sdk_transaction::view::action_view::{ ActionView, DelegatorVoteView, OutputView, SpendView, }; match action_view { diff --git a/crates/view/src/status.rs b/crates/view/src/status.rs index 8c50cc57d8..47349401ef 100644 --- a/crates/view/src/status.rs +++ b/crates/view/src/status.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{view::v1 as pb, DomainType}; +use penumbra_sdk_proto::{view::v1 as pb, DomainType}; #[derive(Clone, Copy, Debug)] pub struct StatusStreamResponse { diff --git a/crates/view/src/storage.rs b/crates/view/src/storage.rs index 330b47c7a9..0d88e650da 100644 --- a/crates/view/src/storage.rs +++ b/crates/view/src/storage.rs @@ -5,7 +5,7 @@ use camino::Utf8Path; use decaf377::Fq; use once_cell::sync::Lazy; use parking_lot::Mutex; -use penumbra_auction::auction::AuctionId; +use penumbra_sdk_auction::auction::AuctionId; use r2d2_sqlite::{ rusqlite::{OpenFlags, OptionalExtension}, SqliteConnectionManager, @@ -19,26 +19,26 @@ use tokio::{ use tracing::{error_span, Instrument}; use url::Url; -use penumbra_app::params::AppParameters; -use penumbra_asset::{asset, asset::Id, asset::Metadata, Value}; -use penumbra_dex::{ +use penumbra_sdk_app::params::AppParameters; +use penumbra_sdk_asset::{asset, asset::Id, asset::Metadata, Value}; +use penumbra_sdk_dex::{ lp::position::{self, Position, State}, TradingPair, }; -use penumbra_fee::GasPrices; -use penumbra_keys::{keys::AddressIndex, Address, FullViewingKey}; -use penumbra_num::Amount; -use penumbra_proto::{ +use penumbra_sdk_fee::GasPrices; +use penumbra_sdk_keys::{keys::AddressIndex, Address, FullViewingKey}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{ core::app::v1::{ query_service_client::QueryServiceClient as AppQueryServiceClient, AppParametersRequest, }, DomainType, }; -use penumbra_sct::{CommitmentSource, Nullifier}; -use penumbra_shielded_pool::{fmd, note, Note, Rseed}; -use penumbra_stake::{DelegationToken, IdentityKey}; -use penumbra_tct as tct; -use penumbra_transaction::Transaction; +use penumbra_sdk_sct::{CommitmentSource, Nullifier}; +use penumbra_sdk_shielded_pool::{fmd, note, Note, Rseed}; +use penumbra_sdk_stake::{DelegationToken, IdentityKey}; +use penumbra_sdk_tct as tct; +use penumbra_sdk_transaction::Transaction; use sct::TreeStore; use tct::StateCommitment; @@ -878,7 +878,7 @@ impl Storage { &self, include_spent: bool, asset_id: Option, - address_index: Option, + address_index: Option, amount_to_spend: Option, ) -> anyhow::Result> { // If set, return spent notes as well as unspent notes. @@ -986,7 +986,7 @@ impl Storage { pub async fn notes_for_voting( &self, - address_index: Option, + address_index: Option, votable_at_height: u64, ) -> anyhow::Result> { // If set, only return notes with the specified address index. diff --git a/crates/view/src/storage/sct.rs b/crates/view/src/storage/sct.rs index a3e9bdce86..686e809ae4 100644 --- a/crates/view/src/storage/sct.rs +++ b/crates/view/src/storage/sct.rs @@ -5,7 +5,7 @@ use genawaiter::{rc::gen, yield_}; use r2d2_sqlite::rusqlite::Transaction; use core::fmt::Debug; -use penumbra_tct::{ +use penumbra_sdk_tct::{ storage::{Read, StoredPosition, Write}, structure::Hash, Forgotten, Position, StateCommitment, @@ -291,7 +291,7 @@ impl Write for TreeStore<'_, '_> { mod test { use super::*; - use penumbra_tct::{StateCommitment, Witness}; + use penumbra_sdk_tct::{StateCommitment, Witness}; #[test] fn tree_store_spot_check() { @@ -304,11 +304,11 @@ mod test { let mut store = TreeStore(&mut tx); // Check that the currently stored tree is the empty tree: - let deserialized = penumbra_tct::Tree::from_reader(&mut store).unwrap(); - assert_eq!(deserialized, penumbra_tct::Tree::new()); + let deserialized = penumbra_sdk_tct::Tree::from_reader(&mut store).unwrap(); + assert_eq!(deserialized, penumbra_sdk_tct::Tree::new()); // Make some kind of tree: - let mut tree = penumbra_tct::Tree::new(); + let mut tree = penumbra_sdk_tct::Tree::new(); tree.insert(Witness::Keep, StateCommitment::try_from([0; 32]).unwrap()) .unwrap(); tree.end_block().unwrap(); @@ -322,7 +322,7 @@ mod test { tree.to_writer(&mut store).unwrap(); // Read the tree back from the database: - let deserialized = penumbra_tct::Tree::from_reader(&mut store).unwrap(); + let deserialized = penumbra_sdk_tct::Tree::from_reader(&mut store).unwrap(); assert_eq!(tree, deserialized); } diff --git a/crates/view/src/swap_record.rs b/crates/view/src/swap_record.rs index 4622c73a13..febf956e04 100644 --- a/crates/view/src/swap_record.rs +++ b/crates/view/src/swap_record.rs @@ -1,7 +1,7 @@ -use penumbra_dex::{swap::SwapPlaintext, BatchSwapOutputData}; -use penumbra_proto::{view::v1 as pb, DomainType}; -use penumbra_sct::{CommitmentSource, Nullifier}; -use penumbra_tct as tct; +use penumbra_sdk_dex::{swap::SwapPlaintext, BatchSwapOutputData}; +use penumbra_sdk_proto::{view::v1 as pb, DomainType}; +use penumbra_sdk_sct::{CommitmentSource, Nullifier}; +use penumbra_sdk_tct as tct; use r2d2_sqlite::rusqlite::Row; use serde::{Deserialize, Serialize}; diff --git a/crates/view/src/sync.rs b/crates/view/src/sync.rs index 772422b9aa..fd4468cd59 100644 --- a/crates/view/src/sync.rs +++ b/crates/view/src/sync.rs @@ -1,12 +1,12 @@ use std::collections::BTreeMap; -use penumbra_compact_block::{CompactBlock, StatePayload}; -use penumbra_dex::swap::{SwapPayload, SwapPlaintext}; -use penumbra_fee::GasPrices; -use penumbra_keys::FullViewingKey; -use penumbra_sct::Nullifier; -use penumbra_shielded_pool::{fmd, Note, NotePayload}; -use penumbra_tct::{self as tct, StateCommitment}; +use penumbra_sdk_compact_block::{CompactBlock, StatePayload}; +use penumbra_sdk_dex::swap::{SwapPayload, SwapPlaintext}; +use penumbra_sdk_fee::GasPrices; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_sct::Nullifier; +use penumbra_sdk_shielded_pool::{fmd, Note, NotePayload}; +use penumbra_sdk_tct::{self as tct, StateCommitment}; use tracing::Instrument; use crate::{SpendableNoteRecord, Storage, SwapRecord}; diff --git a/crates/view/src/transaction_info.rs b/crates/view/src/transaction_info.rs index 24faf63bd1..0a1ba5727f 100644 --- a/crates/view/src/transaction_info.rs +++ b/crates/view/src/transaction_info.rs @@ -1,4 +1,4 @@ -use penumbra_transaction::{ +use penumbra_sdk_transaction::{ txhash::TransactionId, Transaction, TransactionPerspective, TransactionView, }; diff --git a/crates/view/src/worker.rs b/crates/view/src/worker.rs index 5bd6e41d4e..8ca7bbf5ca 100644 --- a/crates/view/src/worker.rs +++ b/crates/view/src/worker.rs @@ -5,11 +5,11 @@ use std::{ }; use anyhow::Context; -use penumbra_auction::auction::AuctionNft; -use penumbra_compact_block::CompactBlock; -use penumbra_dex::lp::{position, LpNft}; -use penumbra_keys::FullViewingKey; -use penumbra_proto::core::{ +use penumbra_sdk_auction::auction::AuctionNft; +use penumbra_sdk_compact_block::CompactBlock; +use penumbra_sdk_dex::lp::{position, LpNft}; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_proto::core::{ app::v1::{ query_service_client::QueryServiceClient as AppQueryServiceClient, TransactionsByHeightRequest, @@ -25,8 +25,8 @@ use penumbra_proto::core::{ }, }, }; -use penumbra_sct::{CommitmentSource, Nullifier}; -use penumbra_transaction::Transaction; +use penumbra_sdk_sct::{CommitmentSource, Nullifier}; +use penumbra_sdk_transaction::Transaction; use tap::Tap; use tokio::sync::{watch, RwLock}; use tonic::transport::Channel; @@ -42,7 +42,7 @@ const MAX_CB_SIZE_BYTES: usize = 12 * 1024 * 1024; pub struct Worker { storage: Storage, - sct: Arc>, + sct: Arc>, fvk: FullViewingKey, // TODO: notifications (see TODOs on ViewService) error_slot: Arc>>, sync_height_tx: watch::Sender, @@ -64,7 +64,7 @@ impl Worker { ) -> Result< ( Self, - Arc>, + Arc>, Arc>>, watch::Receiver, ), @@ -263,7 +263,7 @@ impl Worker { for transaction in &transactions { for action in transaction.actions() { match action { - penumbra_transaction::Action::PositionOpen(position_open) => { + penumbra_sdk_transaction::Action::PositionOpen(position_open) => { let position_id = position_open.position.id(); // Record every possible permutation. @@ -290,7 +290,7 @@ impl Worker { .record_position(position_open.position.clone()) .await?; } - penumbra_transaction::Action::PositionClose(position_close) => { + penumbra_sdk_transaction::Action::PositionClose(position_close) => { let position_id = position_close.position_id; // Update the position record @@ -298,7 +298,9 @@ impl Worker { .update_position(position_id, position::State::Closed) .await?; } - penumbra_transaction::Action::PositionWithdraw(position_withdraw) => { + penumbra_sdk_transaction::Action::PositionWithdraw( + position_withdraw, + ) => { let position_id = position_withdraw.position_id; // Record the LPNFT for the current sequence number. @@ -312,7 +314,7 @@ impl Worker { // Update the position record self.storage.update_position(position_id, state).await?; } - penumbra_transaction::Action::ActionDutchAuctionSchedule( + penumbra_sdk_transaction::Action::ActionDutchAuctionSchedule( schedule_da, ) => { let auction_id = schedule_da.description.id(); @@ -328,7 +330,7 @@ impl Worker { ) .await?; } - penumbra_transaction::Action::ActionDutchAuctionEnd(end_da) => { + penumbra_sdk_transaction::Action::ActionDutchAuctionEnd(end_da) => { let auction_id = end_da.auction_id; let auction_nft_closed = AuctionNft::new(auction_id, 1); let nft_metadata_closed = auction_nft_closed.metadata.clone(); @@ -339,7 +341,7 @@ impl Worker { .record_auction_with_state(end_da.auction_id, 1) .await?; } - penumbra_transaction::Action::ActionDutchAuctionWithdraw( + penumbra_sdk_transaction::Action::ActionDutchAuctionWithdraw( withdraw_da, ) => { let auction_id = withdraw_da.auction_id; @@ -483,11 +485,11 @@ async fn fetch_transactions( async fn sct_divergence_check( channel: Channel, height: u64, - actual_root: penumbra_tct::Root, + actual_root: penumbra_sdk_tct::Root, ) -> anyhow::Result<()> { use cnidarium::proto::v1::query_service_client::QueryServiceClient; - use penumbra_proto::DomainType; - use penumbra_sct::state_key as sct_state_key; + use penumbra_sdk_proto::DomainType; + use penumbra_sdk_sct::state_key as sct_state_key; let mut client = QueryServiceClient::new(channel); tracing::info!(?height, "fetching anchor @ height"); @@ -503,7 +505,7 @@ async fn sct_divergence_check( .value .context("sct state not found")?; - let expected_root = penumbra_tct::Root::decode(value.value.as_slice())?; + let expected_root = penumbra_sdk_tct::Root::decode(value.value.as_slice())?; if actual_root == expected_root { tracing::info!(?height, ?actual_root, ?expected_root, "sct roots match"); diff --git a/crates/wallet/Cargo.toml b/crates/wallet/Cargo.toml index 6bce49542c..71ce5135ea 100644 --- a/crates/wallet/Cargo.toml +++ b/crates/wallet/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "penumbra-wallet" +name = "penumbra-sdk-wallet" version = {workspace = true} authors = {workspace = true} edition = {workspace = true} @@ -7,11 +7,11 @@ description = "The wallet software for the Penumbra Zone" repository = {workspace = true} homepage = {workspace = true} license = {workspace = true} -publish = false +publish = true [features] default = [] -parallel = ["penumbra-transaction/parallel"] +parallel = ["penumbra-sdk-transaction/parallel"] [dependencies] anyhow = {workspace = true} @@ -20,20 +20,20 @@ bincode = {workspace = true} bytes = {workspace = true} decaf377 = {workspace = true, default-features = true} hex = {workspace = true} -penumbra-app = {workspace = true, default-features = false} -penumbra-asset = {workspace = true, default-features = true} -penumbra-custody = {workspace = true} -penumbra-dex = {workspace = true, default-features = false} -penumbra-fee = {workspace = true, default-features = false} -penumbra-governance = {workspace = true, default-features = false} -penumbra-keys = {workspace = true, default-features = true} -penumbra-num = {workspace = true, default-features = true} -penumbra-proto = {workspace = true, default-features = true} -penumbra-stake = {workspace = true, default-features = false} -penumbra-tct = {workspace = true, default-features = true} -penumbra-sct = {workspace = true, default-features = false} -penumbra-transaction = {workspace = true, default-features = true} -penumbra-view = {workspace = true} +penumbra-sdk-app = {workspace = true, default-features = false} +penumbra-sdk-asset = {workspace = true, default-features = true} +penumbra-sdk-custody = {workspace = true} +penumbra-sdk-dex = {workspace = true, default-features = false} +penumbra-sdk-fee = {workspace = true, default-features = false} +penumbra-sdk-governance = {workspace = true, default-features = false} +penumbra-sdk-keys = {workspace = true, default-features = true} +penumbra-sdk-num = {workspace = true, default-features = true} +penumbra-sdk-proto = {workspace = true, default-features = true} +penumbra-sdk-stake = {workspace = true, default-features = false} +penumbra-sdk-tct = {workspace = true, default-features = true} +penumbra-sdk-sct = {workspace = true, default-features = false} +penumbra-sdk-transaction = {workspace = true, default-features = true} +penumbra-sdk-view = {workspace = true} pin-project = {workspace = true} rand = {workspace = true} rand_core = {workspace = true, features = ["getrandom"]} diff --git a/crates/wallet/src/build.rs b/crates/wallet/src/build.rs index 24577816d7..ef8132b01a 100644 --- a/crates/wallet/src/build.rs +++ b/crates/wallet/src/build.rs @@ -1,9 +1,9 @@ use anyhow::Result; -use penumbra_custody::{AuthorizeRequest, CustodyClient}; -use penumbra_keys::FullViewingKey; -use penumbra_transaction::{AuthorizationData, Transaction, TransactionPlan}; -use penumbra_view::ViewClient; +use penumbra_sdk_custody::{AuthorizeRequest, CustodyClient}; +use penumbra_sdk_keys::FullViewingKey; +use penumbra_sdk_transaction::{AuthorizationData, Transaction, TransactionPlan}; +use penumbra_sdk_view::ViewClient; pub async fn build_transaction( fvk: &FullViewingKey, diff --git a/crates/wallet/src/plan.rs b/crates/wallet/src/plan.rs index c79df99513..69d62ba134 100644 --- a/crates/wallet/src/plan.rs +++ b/crates/wallet/src/plan.rs @@ -5,12 +5,12 @@ use decaf377::Fq; use rand_core::{CryptoRng, RngCore}; use tracing::instrument; -use penumbra_dex::swap_claim::SwapClaimPlan; -use penumbra_keys::keys::AddressIndex; -use penumbra_proto::view::v1::NotesRequest; -use penumbra_transaction::{TransactionParameters, TransactionPlan}; -pub use penumbra_view::Planner; -use penumbra_view::{SpendableNoteRecord, ViewClient}; +use penumbra_sdk_dex::swap_claim::SwapClaimPlan; +use penumbra_sdk_keys::keys::AddressIndex; +use penumbra_sdk_proto::view::v1::NotesRequest; +use penumbra_sdk_transaction::{TransactionParameters, TransactionPlan}; +pub use penumbra_sdk_view::Planner; +use penumbra_sdk_view::{SpendableNoteRecord, ViewClient}; pub const SWEEP_COUNT: usize = 8; diff --git a/deployments/scripts/check-wasm-compat.sh b/deployments/scripts/check-wasm-compat.sh index 9e87e56da6..9d21ec28b8 100755 --- a/deployments/scripts/check-wasm-compat.sh +++ b/deployments/scripts/check-wasm-compat.sh @@ -17,23 +17,23 @@ set -euo pipefail # to make sure at least all of those crates are tracked here. packages=( - penumbra-asset - penumbra-community-pool - penumbra-compact-block - penumbra-auction - penumbra-dex - penumbra-distributions - penumbra-fee - penumbra-funding - penumbra-governance - penumbra-ibc - penumbra-keys - penumbra-sct - penumbra-shielded-pool - penumbra-stake - penumbra-tct - penumbra-transaction - penumbra-txhash + penumbra-sdk-asset + penumbra-sdk-community-pool + penumbra-sdk-compact-block + penumbra-sdk-auction + penumbra-sdk-dex + penumbra-sdk-distributions + penumbra-sdk-fee + penumbra-sdk-funding + penumbra-sdk-governance + penumbra-sdk-ibc + penumbra-sdk-keys + penumbra-sdk-sct + penumbra-sdk-shielded-pool + penumbra-sdk-stake + penumbra-sdk-tct + penumbra-sdk-transaction + penumbra-sdk-txhash # N.B. we can't include those ones because they rely on `getrandom`, # but there's a `js` feature... # decaf377-fmd diff --git a/deployments/scripts/rust-docs b/deployments/scripts/rust-docs index 571418bb2f..39b3009f4c 100755 --- a/deployments/scripts/rust-docs +++ b/deployments/scripts/rust-docs @@ -32,32 +32,32 @@ cargo +nightly doc --no-deps \ -p pclientd \ -p pd \ -p pmonitor \ - -p penumbra-app \ - -p penumbra-asset \ - -p penumbra-community-pool \ - -p penumbra-custody \ - -p penumbra-dex \ - -p penumbra-distributions \ - -p penumbra-fee \ - -p penumbra-governance \ - -p penumbra-ibc \ - -p penumbra-keys \ - -p penumbra-measure \ - -p penumbra-mock-consensus \ - -p penumbra-mock-tendermint-proxy \ - -p penumbra-mock-client \ - -p penumbra-num \ - -p penumbra-proof-params \ - -p penumbra-proof-setup \ - -p penumbra-proto \ - -p penumbra-sct \ - -p penumbra-shielded-pool \ - -p penumbra-stake \ - -p penumbra-tct \ - -p penumbra-transaction \ - -p penumbra-txhash \ - -p penumbra-view \ - -p penumbra-wallet \ + -p penumbra-sdk-app \ + -p penumbra-sdk-asset \ + -p penumbra-sdk-community-pool \ + -p penumbra-sdk-custody \ + -p penumbra-sdk-dex \ + -p penumbra-sdk-distributions \ + -p penumbra-sdk-fee \ + -p penumbra-sdk-governance \ + -p penumbra-sdk-ibc \ + -p penumbra-sdk-keys \ + -p penumbra-sdk-measure \ + -p penumbra-sdk-mock-consensus \ + -p penumbra-sdk-mock-tendermint-proxy \ + -p penumbra-sdk-mock-client \ + -p penumbra-sdk-num \ + -p penumbra-sdk-proof-params \ + -p penumbra-sdk-proof-setup \ + -p penumbra-sdk-proto \ + -p penumbra-sdk-sct \ + -p penumbra-sdk-shielded-pool \ + -p penumbra-sdk-stake \ + -p penumbra-sdk-tct \ + -p penumbra-sdk-transaction \ + -p penumbra-sdk-txhash \ + -p penumbra-sdk-view \ + -p penumbra-sdk-wallet \ -p poseidon-permutation \ -p poseidon377 \ -p tendermint \ diff --git a/flake.nix b/flake.nix index 0f626e935f..e4ad017140 100644 --- a/flake.nix +++ b/flake.nix @@ -152,6 +152,7 @@ inputsFrom = [ penumbra ]; packages = [ buf + cargo-hack cargo-nextest cargo-release cargo-watch diff --git a/tools/parameter-setup/Cargo.toml b/tools/parameter-setup/Cargo.toml index 19c2bf11e2..4d0abf0f4d 100644 --- a/tools/parameter-setup/Cargo.toml +++ b/tools/parameter-setup/Cargo.toml @@ -1,10 +1,11 @@ [package] -name = "penumbra-parameter-setup" +name = "penumbra-sdk-parameter-setup" +description = "Penumbra proof parameters setup utilities" authors = { workspace = true } edition = { workspace = true } homepage = { workspace = true } license = { workspace = true } -publish = false +publish = true repository = { workspace = true } version = { workspace = true } @@ -12,11 +13,11 @@ version = { workspace = true } ark-groth16 = { workspace = true } ark-serialize = { workspace = true } decaf377 = { workspace = true, features = ["r1cs"] } -penumbra-community-pool = { workspace = true , features = ["component"] } -penumbra-dex = { workspace = true } -penumbra-governance = { workspace = true } -penumbra-proof-params = { workspace = true } -penumbra-proof-setup = { workspace = true, features = ["parallel"] } -penumbra-shielded-pool = { workspace = true, features = ["parallel"] } -penumbra-stake = { workspace = true, features = ["component"] } +penumbra-sdk-community-pool = { workspace = true , features = ["component"] } +penumbra-sdk-dex = { workspace = true } +penumbra-sdk-governance = { workspace = true } +penumbra-sdk-proof-params = { workspace = true } +penumbra-sdk-proof-setup = { workspace = true, features = ["parallel"] } +penumbra-sdk-shielded-pool = { workspace = true, features = ["parallel"] } +penumbra-sdk-stake = { workspace = true, features = ["component"] } rand_core = { workspace = true } diff --git a/tools/parameter-setup/src/main.rs b/tools/parameter-setup/src/main.rs index 4e17c0ca40..aa9eefdbfd 100644 --- a/tools/parameter-setup/src/main.rs +++ b/tools/parameter-setup/src/main.rs @@ -8,16 +8,16 @@ use std::{ use ark_groth16::{ProvingKey, VerifyingKey}; use ark_serialize::CanonicalSerialize; use decaf377::Bls12_377; -use penumbra_dex::{swap::proof::SwapCircuit, swap_claim::proof::SwapClaimCircuit}; -use penumbra_governance::DelegatorVoteCircuit; -use penumbra_proof_params::{ +use penumbra_sdk_dex::{swap::proof::SwapCircuit, swap_claim::proof::SwapClaimCircuit}; +use penumbra_sdk_governance::DelegatorVoteCircuit; +use penumbra_sdk_proof_params::{ generate_constraint_matrices, DummyWitness, ProvingKeyExt, VerifyingKeyExt, }; -use penumbra_proof_setup::single::{ +use penumbra_sdk_proof_setup::single::{ circuit_degree, combine, log::Hashable, transition, Phase1CRSElements, Phase1Contribution, Phase2Contribution, }; -use penumbra_shielded_pool::{ +use penumbra_sdk_shielded_pool::{ ConvertCircuit, NullifierDerivationCircuit, OutputCircuit, SpendCircuit, }; use rand_core::OsRng; diff --git a/tools/proto-compiler/Cargo.toml b/tools/proto-compiler/Cargo.toml index de3295b4a0..d949e90639 100644 --- a/tools/proto-compiler/Cargo.toml +++ b/tools/proto-compiler/Cargo.toml @@ -1,8 +1,15 @@ [package] name = "penumbra-proto-compiler" -version = "0.1.0" +# We don't use `{ workspace = true }` attributes, because the proto-compiler tool +# is excluded from the workspace. +authors = ["Penumbra Labs usize { diff --git a/tools/summonerd/src/participant.rs b/tools/summonerd/src/participant.rs index f0b0035505..fbd9be806b 100644 --- a/tools/summonerd/src/participant.rs +++ b/tools/summonerd/src/participant.rs @@ -1,7 +1,7 @@ use anyhow::{Context, Result}; -use penumbra_keys::Address; -use penumbra_num::Amount; -use penumbra_proto::{ +use penumbra_sdk_keys::Address; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proto::{ penumbra::tools::summoning::v1::{ self as pb, participate_request::Msg as RequestMsg, diff --git a/tools/summonerd/src/penumbra_knower.rs b/tools/summonerd/src/penumbra_knower.rs index 00b74b637c..fd6625f7b0 100644 --- a/tools/summonerd/src/penumbra_knower.rs +++ b/tools/summonerd/src/penumbra_knower.rs @@ -1,9 +1,9 @@ use anyhow::Result; use camino::Utf8Path; -use penumbra_asset::STAKING_TOKEN_ASSET_ID; -use penumbra_keys::{Address, FullViewingKey}; -use penumbra_num::Amount; -use penumbra_view::{Storage, ViewServer}; +use penumbra_sdk_asset::STAKING_TOKEN_ASSET_ID; +use penumbra_sdk_keys::{Address, FullViewingKey}; +use penumbra_sdk_num::Amount; +use penumbra_sdk_view::{Storage, ViewServer}; use url::Url; /// Knows things about a running penumbra system, requires internet connectivity diff --git a/tools/summonerd/src/phase.rs b/tools/summonerd/src/phase.rs index 7ff636a229..623ac1cfed 100644 --- a/tools/summonerd/src/phase.rs +++ b/tools/summonerd/src/phase.rs @@ -1,11 +1,11 @@ use anyhow::Result; use async_trait::async_trait; -use penumbra_keys::Address; -use penumbra_proof_setup::all::{ +use penumbra_sdk_keys::Address; +use penumbra_sdk_proof_setup::all::{ Phase1CeremonyCRS, Phase1CeremonyContribution, Phase1RawCeremonyContribution, Phase2CeremonyCRS, Phase2CeremonyContribution, Phase2RawCeremonyContribution, }; -use penumbra_proto::tools::summoning::v1::{ +use penumbra_sdk_proto::tools::summoning::v1::{ participate_request::Contribution as PBContribution, CeremonyCrs, }; diff --git a/tools/summonerd/src/queue.rs b/tools/summonerd/src/queue.rs index 10aaa313f1..ef27dd8b19 100644 --- a/tools/summonerd/src/queue.rs +++ b/tools/summonerd/src/queue.rs @@ -1,8 +1,8 @@ use anyhow::Result; use std::{collections::HashSet, sync::Arc}; -use penumbra_keys::Address; -use penumbra_num::Amount; +use penumbra_sdk_keys::Address; +use penumbra_sdk_num::Amount; use tokio::sync::RwLock; use crate::participant::Participant; diff --git a/tools/summonerd/src/server.rs b/tools/summonerd/src/server.rs index f1b892cda9..1f54fda854 100644 --- a/tools/summonerd/src/server.rs +++ b/tools/summonerd/src/server.rs @@ -1,5 +1,5 @@ -use penumbra_keys::Address; -use penumbra_proto::penumbra::tools::summoning::v1::{ +use penumbra_sdk_keys::Address; +use penumbra_sdk_proto::penumbra::tools::summoning::v1::{ self as pb, ceremony_coordinator_service_server as server, participate_request::{Identify, Msg}, }; diff --git a/tools/summonerd/src/storage.rs b/tools/summonerd/src/storage.rs index 0ca82c1d53..ba35f450b4 100644 --- a/tools/summonerd/src/storage.rs +++ b/tools/summonerd/src/storage.rs @@ -2,9 +2,9 @@ use std::time::{SystemTime, UNIX_EPOCH}; use anyhow::Result; use camino::Utf8Path; -use penumbra_keys::Address; -use penumbra_num::Amount; -use penumbra_proof_setup::{ +use penumbra_sdk_keys::Address; +use penumbra_sdk_num::Amount; +use penumbra_sdk_proof_setup::{ all::{ AllExtraTransitionInformation, Phase1CeremonyCRS, Phase1CeremonyContribution, Phase1RawCeremonyCRS, Phase1RawCeremonyContribution, Phase2CeremonyCRS, @@ -12,7 +12,7 @@ use penumbra_proof_setup::{ }, single::log::Hashable, }; -use penumbra_proto::{ +use penumbra_sdk_proto::{ penumbra::tools::summoning::v1::{ self as pb, participate_request::Contribution as PBContribution, }, diff --git a/tools/summonerd/src/web.rs b/tools/summonerd/src/web.rs index c2a142f9ed..644c6852b1 100644 --- a/tools/summonerd/src/web.rs +++ b/tools/summonerd/src/web.rs @@ -6,7 +6,7 @@ use axum::{ routing::get, Router, }; -use penumbra_keys::Address; +use penumbra_sdk_keys::Address; use std::sync::Arc; use crate::{config::Config, PhaseMarker}; From 03106edb588ac829a7d6540810e244c38e872740 Mon Sep 17 00:00:00 2001 From: Conor Schaefer Date: Tue, 7 Jan 2025 12:46:29 -0800 Subject: [PATCH 2/2] build: publish workspace to crates.io We want all the crates Penumbra protocol workspace to be published to crates.io, so that external developers can depend on them in downstream projects. For now, we'll skip doing so for the binaries, but we can circle back on them. The major obstacle is that the `penumbra-sdk-proof-params` create contains binary keyfiles, which are managed in git-lfs. We cannot upload the raw keyfiles to crates.io, because that'd result in a 100MB crate. Instead, we use a custom script to revert the binary keyfiles to plaintext lfs pointers immediately prior to publishing to crates.io, which stays under the limit, and allows third-party tools to opt into downloading the key material via the `download-proving-keys` feature. The ratelimit of "20s" between crates publishing has been working reliably when publishing alpha versions (i.e. an HTTP 429 is avoided). Publishing all crates takes ~12m. This commit also condenses several "alpha" series releases matching `0.82.0-alpha.*`, culminating `1.0.0-alpha.0`. Most of these versions have been published to crates.io, to evaluate CI behavior on publishing crates. build: warn-only if download-proving-keys not set The goal is to warn if keys are not set, but still permit the build. --- Cargo.lock | 106 ++++++++------- Cargo.toml | 76 ++++++----- crates/bench/Cargo.toml | 1 + crates/bin/pcli/Cargo.toml | 2 +- crates/bin/pclientd/Cargo.toml | 4 + crates/bin/pd/Cargo.toml | 8 +- crates/bin/pindexer/Cargo.toml | 5 +- crates/bin/pmonitor/Cargo.toml | 7 +- crates/core/app-tests/Cargo.toml | 2 +- crates/core/app-tests/src/lib.rs | 2 + crates/core/app/Cargo.toml | 11 +- crates/crypto/proof-params/Cargo.toml | 9 +- crates/crypto/proof-params/build.rs | 157 ++++++++++++++++------- crates/custody/Cargo.toml | 2 +- crates/misc/measure/Cargo.toml | 1 + crates/misc/tct-visualize/Cargo.toml | 1 + crates/test/tct-property-test/Cargo.toml | 1 + deployments/scripts/publish-crates | 72 +++++++++++ flake.nix | 2 +- tools/parameter-setup/Cargo.toml | 2 +- tools/summonerd/Cargo.toml | 5 +- 21 files changed, 313 insertions(+), 163 deletions(-) create mode 100644 crates/core/app-tests/src/lib.rs create mode 100755 deployments/scripts/publish-crates diff --git a/Cargo.lock b/Cargo.lock index 6cf18dc7e0..cb4f1c9447 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1319,7 +1319,7 @@ dependencies = [ [[package]] name = "cnidarium-component" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "async-trait", @@ -1357,7 +1357,7 @@ dependencies = [ [[package]] name = "cometindex" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "async-trait", @@ -1731,7 +1731,7 @@ dependencies = [ [[package]] name = "decaf377-fmd" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "ark-ff", "ark-serialize", @@ -1746,7 +1746,7 @@ dependencies = [ [[package]] name = "decaf377-frost" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -1761,7 +1761,7 @@ dependencies = [ [[package]] name = "decaf377-ka" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "ark-ff", "decaf377", @@ -4373,7 +4373,7 @@ dependencies = [ [[package]] name = "pcli" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -4456,7 +4456,7 @@ dependencies = [ [[package]] name = "pclientd" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "assert_cmd", @@ -4509,7 +4509,7 @@ dependencies = [ [[package]] name = "pd" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -4664,18 +4664,16 @@ dependencies = [ [[package]] name = "penumbra-sdk-app" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", "async-trait", - "axum-server", "base64 0.21.7", "bech32", "bincode", "bitvec", "blake2b_simd 1.0.2", - "camino", "cfg-if", "cnidarium", "cnidarium-component", @@ -4704,9 +4702,6 @@ dependencies = [ "penumbra-sdk-governance", "penumbra-sdk-ibc", "penumbra-sdk-keys", - "penumbra-sdk-mock-client", - "penumbra-sdk-mock-consensus", - "penumbra-sdk-mock-tendermint-proxy", "penumbra-sdk-num", "penumbra-sdk-proof-params", "penumbra-sdk-proto", @@ -4714,7 +4709,6 @@ dependencies = [ "penumbra-sdk-shielded-pool", "penumbra-sdk-stake", "penumbra-sdk-tct", - "penumbra-sdk-test-subscriber", "penumbra-sdk-tower-trace", "penumbra-sdk-transaction", "penumbra-sdk-txhash", @@ -4751,7 +4745,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-app-tests" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -4841,7 +4835,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-asset" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -4881,7 +4875,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-auction" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -4936,7 +4930,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-auto-https" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "axum-server", @@ -4948,7 +4942,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-bench" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-bls12-377", @@ -4992,7 +4986,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-community-pool" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -5024,7 +5018,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-compact-block" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -5059,7 +5053,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-custody" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "argon2", @@ -5095,7 +5089,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-dex" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -5157,7 +5151,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-distributions" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "async-trait", @@ -5175,7 +5169,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-eddy" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -5193,7 +5187,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-fee" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -5220,7 +5214,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-funding" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "async-trait", @@ -5243,7 +5237,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-governance" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -5297,7 +5291,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-ibc" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -5334,7 +5328,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-keys" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "aes", "anyhow", @@ -5381,7 +5375,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-measure" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "assert_cmd", @@ -5403,7 +5397,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-mock-client" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "cnidarium", @@ -5420,7 +5414,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-mock-consensus" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "bytes", @@ -5440,7 +5434,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-mock-tendermint-proxy" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "hex", "pbjson-types", @@ -5455,7 +5449,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-num" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -5492,7 +5486,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-parameter-setup" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "ark-groth16", "ark-serialize", @@ -5509,7 +5503,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-proof-params" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ec", @@ -5537,7 +5531,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-proof-setup" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ec", @@ -5564,7 +5558,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-proto" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "async-trait", @@ -5599,7 +5593,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-sct" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -5635,7 +5629,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-shielded-pool" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -5689,7 +5683,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-stake" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -5742,7 +5736,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-tct" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "ark-ed-on-bls12-377", "ark-ff", @@ -5774,7 +5768,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-tct-property-test" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "futures", @@ -5786,7 +5780,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-tct-visualize" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "axum", @@ -5817,7 +5811,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-tendermint-proxy" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "chrono", @@ -5849,7 +5843,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-test-subscriber" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "tracing", "tracing-subscriber 0.3.18", @@ -5857,7 +5851,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-tower-trace" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "futures", "hex", @@ -5878,7 +5872,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-transaction" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-ff", @@ -5933,7 +5927,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-txhash" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "blake2b_simd 1.0.2", @@ -5946,7 +5940,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-view" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-std", @@ -6005,7 +5999,7 @@ dependencies = [ [[package]] name = "penumbra-sdk-wallet" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-std", @@ -6091,7 +6085,7 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pindexer" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "chrono", @@ -6187,7 +6181,7 @@ dependencies = [ [[package]] name = "pmonitor" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "assert_cmd", @@ -8013,7 +8007,7 @@ checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" [[package]] name = "summonerd" -version = "0.82.0-alpha.3" +version = "1.0.0-alpha.0" dependencies = [ "anyhow", "ark-groth16", diff --git a/Cargo.toml b/Cargo.toml index 9769a78f96..3cb4292138 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -95,17 +95,22 @@ tag-name = "v{{version}}" # The message is required for an annotated tag to be created. tag-message = "Penumbra version {{version}}" pre-release-commit-message = "chore: release version {{version}}" -# Don't push to crates.io; we're still using git branches for velocity. +# Permit publishing to crates.io; local developers should run `cargo release --no-publish` +# to prepare the git info, then pushing to remote with tag will trigger crates.io publication. publish = true # Do commit, tag, and push the version bump, triggering a new release. tag = true # Don't push, since we're still evaluating the new release workflow. push = false +# Edit each crate's Cargo.toml, bumping versions for other workspace crates. +dependent-version = "upgrade" +# Increase default ratelimit on publishing packages +rate-limit = { existing-packages = 50 } [workspace.package] authors = ["Penumbra Labs anyhow::Result<()> { - let mut bytes = Vec::new(); - { - let f = std::fs::File::open(file).with_context(|| "can open proving key file")?; - let mut reader = std::io::BufReader::new(f); - reader - .read_to_end(&mut bytes) - .with_context(|| "can read proving key file")?; - } - - // At build time, we check that the Git LFS pointers to proving keys are resolved. - // If the system does _not_ have Git LFS installed, then the files will - // exist but they will be tiny pointers. We want to detect this and either - // resolve the Git LFS pointers OR panic to alert the user they should install - // Git LFS. - if bytes.len() < 500 { - #[cfg(feature = "download-proving-keys")] - { - use std::io::Write; - - let pointer = - downloads::GitLFSPointer::parse(&bytes[..]).with_context(|| "can parse pointer")?; - let downloaded_bytes = pointer - .resolve() - .with_context(|| "can download proving key")?; - - // Save downloaded bytes to file. - let f = std::fs::File::create(file).with_context(|| "can open proving key file")?; - let mut writer = std::io::BufWriter::new(f); - writer - .write_all(&downloaded_bytes[..]) - .with_context(|| "can write proving key file")?; - } - #[cfg(not(feature = "download-proving-keys"))] - { +/// Inspect keyfiles, to figure out whether they're git-lfs pointers. +/// If so, and if the `download-proving-keys` feature is set, then fetch +/// the key material over the network via Github API. Otherwise, error +/// out with an informative message. +fn handle_proving_key(file: &str) -> anyhow::Result<()> { + let r = ProvingKeyFilepath::new(file); + match r { + ProvingKeyFilepath::Present(_f) => {} + ProvingKeyFilepath::Absent(f) => { + println!( + "cargo:warning=proving key file is missing: {} this should not happen", + f + ); anyhow::bail!( - "proving key is too small; please enable the download-proving-keys feature on the `penumbra-proof-params` crate, adding a direct dependency to enable the feature if necessary." + "proving key file not found; at least lfs pointers were expected; path={}", + f + ); + } + ProvingKeyFilepath::Pointer(f) => { + #[cfg(feature = "download-proving-keys")] + download_proving_key(&f)?; + #[cfg(not(feature = "download-proving-keys"))] + println!( + "cargo:warning=proving key file is lfs pointer: {} enable 'download-proving-keys' feature to obtain key files", + f ); } } + Ok(()) +} + +/// The states that a proving key filepath can be in. +enum ProvingKeyFilepath { + /// The filepath does not exist. + /// + /// `Absent` is the expected state when building from crates.io, + /// because the binary keyfiles are excluded from the crate manifest, due to filesize. + /// If the keyfiles were bundled into the crate, it'd be ~100MB, far too large for crates.io. + Absent(String), + + /// The filepath was found, but appears to be a git-lfs pointer. + /// + /// `Pointer` is the expected state when: + /// + /// * building from source, via a local git checkout, but without git-lfs being configured; + /// * building from crates.io, because only the git-lfs pointers were uploaded + /// + /// If the `download-proving-keys` feature is set, then the proving keys will be fetched + /// via the Github LFS API and written in place in the source checkout. Otherwise, + /// an error is thrown. + Pointer(String), + + /// The filepath was found, and appears to be a fully-fleged binary key file. + /// + /// `Present` is the expected state when building from source, via a local git checkout, + /// with git-lfs properly configured. + Present(String), +} + +impl ProvingKeyFilepath { + fn new(filepath: &str) -> Self { + if std::fs::metadata(filepath).is_ok() { + let bytes = file_to_bytes(filepath).expect("failed to read filepath as bytes"); + // If the file is smaller than 500 bytes, we'll assume it's an LFS pointer. + if bytes.len() < 500 { + ProvingKeyFilepath::Pointer(filepath.into()) + } else { + ProvingKeyFilepath::Present(filepath.into()) + } + } else { + ProvingKeyFilepath::Absent(filepath.into()) + } + } +} + +/// Read filepath to byte array. +fn file_to_bytes(filepath: &str) -> anyhow::Result> { + let mut bytes = Vec::new(); + let f = std::fs::File::open(filepath) + .with_context(|| "can open proving key file from local source")?; + let mut reader = std::io::BufReader::new(f); + reader + .read_to_end(&mut bytes) + .with_context(|| "can read proving key file")?; + Ok(bytes) +} + +#[cfg(feature = "download-proving-keys")] +pub fn download_proving_key(filepath: &str) -> anyhow::Result<()> { + use std::io::Write; + + let bytes = file_to_bytes(filepath)?; + let pointer = + downloads::GitLFSPointer::parse(&bytes[..]).with_context(|| "can parse pointer")?; + let downloaded_bytes = pointer + .resolve() + .with_context(|| "can download proving key from git-lfs")?; + // Save downloaded bytes to file. + let f = + std::fs::File::create(filepath).with_context(|| "can open downloaded proving key file")?; + let mut writer = std::io::BufWriter::new(f); + writer + .write_all(&downloaded_bytes[..]) + .with_context(|| "can write downloaded proving key to local file")?; Ok(()) } diff --git a/crates/custody/Cargo.toml b/crates/custody/Cargo.toml index 1ff5311d51..73589fdeaf 100644 --- a/crates/custody/Cargo.toml +++ b/crates/custody/Cargo.toml @@ -17,7 +17,7 @@ blake2b_simd = {workspace = true} bytes = {workspace = true, features = ["serde"]} chacha20poly1305 = {workspace = true} decaf377 = {workspace = true} -decaf377-frost = { version = "0.82.0-alpha.0", path = "../crypto/decaf377-frost" } +decaf377-frost = { version = "1.0.0-alpha.0", path = "../crypto/decaf377-frost" } decaf377-ka = {workspace = true} decaf377-rdsa = {workspace = true} ed25519-consensus = {workspace = true} diff --git a/crates/misc/measure/Cargo.toml b/crates/misc/measure/Cargo.toml index 9610985bda..60cb71f17e 100644 --- a/crates/misc/measure/Cargo.toml +++ b/crates/misc/measure/Cargo.toml @@ -6,6 +6,7 @@ description = "A benchmark tool for Penumbra RPCs" version = {workspace = true} license = {workspace = true} edition = {workspace = true} +publish = false [package.metadata.dist] dist = false diff --git a/crates/misc/tct-visualize/Cargo.toml b/crates/misc/tct-visualize/Cargo.toml index 1f8ee7e1c7..888c7c998d 100644 --- a/crates/misc/tct-visualize/Cargo.toml +++ b/crates/misc/tct-visualize/Cargo.toml @@ -6,6 +6,7 @@ description = "Visualize a TCT in action" version = {workspace = true} license = {workspace = true} edition = {workspace = true} +publish = false [package.metadata.dist] dist = false diff --git a/crates/test/tct-property-test/Cargo.toml b/crates/test/tct-property-test/Cargo.toml index f554a62657..ba03f0ae07 100644 --- a/crates/test/tct-property-test/Cargo.toml +++ b/crates/test/tct-property-test/Cargo.toml @@ -6,6 +6,7 @@ description = "Property testing for the TCT, as a library" version = {workspace = true} license = {workspace = true} edition = {workspace = true} +publish = false [dev-dependencies] anyhow = {workspace = true} diff --git a/deployments/scripts/publish-crates b/deployments/scripts/publish-crates new file mode 100755 index 0000000000..f3e68fb53c --- /dev/null +++ b/deployments/scripts/publish-crates @@ -0,0 +1,72 @@ +#!/usr/bin/env bash +# Utility script to automate publishing the workspace packages to crates.io +# Requires: +# +# 1. `cargo-release` (present in nix env) +# 2. env var CARGO_REGISTRY_TOKEN with sufficient rights +# +# The major contribution of this script is that it will munge the binary +# proving keys from the `penumbra-sdk-proof-params` crate to be text-only +# Git LFS pointers, rather than the full binary files. We do this so that +# publishing the `proof-params` crate to crates.io doesn't exceed the filesize +# limit for crates (with binary data it'd be ~100MB). +# +# If we simply omit the `src/gen/*.bin` files from the crates.io upload, then +# the build.rs logic for downloading key contents by resolving git-lfs pointers +# can't work, because they won't have hashes to identify or verify the downloads. +# +# This script assumes that a developer has already bumped the requisite version, +# by running: +# +# cargo release --no-publish $VERSION --execute +# +# Then the resulting commits and tags can be pushed to the repo, which will trigger +# the running of this script. +set -euo pipefail + + +# Check deps +if ! hash cargo-release > /dev/null 2>&1 ; then + >&2 echo "ERROR: cargo-release not found on PATH" + exit 1 +fi + +if [[ -z "${CARGO_REGISTRY_TOKEN:-}" ]] ; then + >&2 echo "ERROR: CARGO_REGISTRY_TOKEN not set" + exit 2 +fi + +# Retrieve workspace-wide version from the top-level Cargo.toml. +target_version="$(toml get Cargo.toml workspace.package.version -r)" + +# Check for local changes to working tree, and error out if any. +# Normally `cargo-release` would check for this itself, but since +# we munge the git-lfs pointers for the `proof-params` crate +# to stay under the size limits for crates.io, we must skip verification +# via cargo-release. +s="$(git status --porcelain)" +if [[ -n "$s" ]]; then + >&2 echo "ERROR: found modified files that should be committed:" + >&2 echo "$s" + git diff | head -n 128 + exit 1 +fi + +# Swap out the full binary contents for the raw git-lfs pointers; suggestion via +# https://github.com/git-lfs/git-lfs/issues/951#issuecomment-581477084 +# This is a destructive action! Which is why we checked for dirty tree above. +git read-tree HEAD && GIT_LFS_SKIP_SMUDGE=1 git checkout -f HEAD + +# Restore the full binary contents on exit, so the script doesn't have lasting side-effects. +trap 'git lfs pull' EXIT + +# Slow down the crate publishing, to avoid hitting a 429 ratelimit. +# Normally the per-crate compilation checks would slow things down enough, +# but we skip those. +export PUBLISH_GRACE_SLEEP="20" + +>&2 echo "Publishing crate versions '$target_version' to crates.io..." +# Run the publish command. +# Uses `--no-verify` because the git-lfs munging will trigger a dirty build for `pd`, +# complaining about its asset zipfiles being pointers. +cargo release publish --execute --no-verify --no-confirm diff --git a/flake.nix b/flake.nix index e4ad017140..fca7ebef1d 100644 --- a/flake.nix +++ b/flake.nix @@ -13,7 +13,6 @@ }; crane = { url = "github:ipetkov/crane"; - inputs = { nixpkgs.follows = "nixpkgs"; }; }; }; @@ -174,6 +173,7 @@ rocksdb rsync sqlfluff + toml-cli ]; shellHook = '' export LIBCLANG_PATH=${LIBCLANG_PATH} diff --git a/tools/parameter-setup/Cargo.toml b/tools/parameter-setup/Cargo.toml index 4d0abf0f4d..4f9cf821f0 100644 --- a/tools/parameter-setup/Cargo.toml +++ b/tools/parameter-setup/Cargo.toml @@ -5,9 +5,9 @@ authors = { workspace = true } edition = { workspace = true } homepage = { workspace = true } license = { workspace = true } -publish = true repository = { workspace = true } version = { workspace = true } +publish = false [dependencies] ark-groth16 = { workspace = true } diff --git a/tools/summonerd/Cargo.toml b/tools/summonerd/Cargo.toml index 364e8af565..adec450f06 100644 --- a/tools/summonerd/Cargo.toml +++ b/tools/summonerd/Cargo.toml @@ -7,9 +7,12 @@ description = "Coordination node for summoning ceremony" repository = {workspace = true} homepage = {workspace = true} license = {workspace = true} -publish = true +publish = false rust-version = "1.65" +[package.metadata.dist] +dist = true + [dependencies] anyhow = {workspace = true} ark-groth16 = {workspace = true}