Skip to content

Commit 433354f

Browse files
chore: extract magic-program from magicblock-core (#531)
1 parent 49616cb commit 433354f

File tree

36 files changed

+125
-96
lines changed

36 files changed

+125
-96
lines changed

Cargo.lock

Lines changed: 14 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ members = [
2121
"magicblock-config-helpers",
2222
"magicblock-config-macro",
2323
"magicblock-core",
24+
"magicblock-magic-program-api",
2425
"magicblock-geyser-plugin",
2526
"magicblock-ledger",
2627
"magicblock-metrics",
@@ -129,6 +130,7 @@ magicblock-mutator = { path = "./magicblock-mutator" }
129130
magicblock-perf-service = { path = "./magicblock-perf-service" }
130131
magicblock-processor = { path = "./magicblock-processor" }
131132
magicblock-program = { path = "./programs/magicblock" }
133+
magicblock-magic-program-api = { path = "./magicblock-magic-program-api" }
132134
magicblock-pubsub = { path = "./magicblock-pubsub" }
133135
magicblock-rpc = { path = "./magicblock-rpc" }
134136
magicblock-rpc-client = { path = "./magicblock-rpc-client" }

magicblock-account-cloner/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ magicblock-account-dumper = { workspace = true }
1818
magicblock-accounts-api = { workspace = true }
1919
magicblock-rpc-client = { workspace = true }
2020
magicblock-config = { workspace = true }
21-
magicblock-core = { workspace = true }
21+
magicblock-program = { workspace = true }
2222
magicblock-committor-service = { workspace = true }
2323
magicblock-metrics = { workspace = true }
2424
magicblock-mutator = { workspace = true }

magicblock-account-cloner/src/account_cloner.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ use magicblock_committor_service::{
1212
error::{CommittorServiceError, CommittorServiceResult},
1313
BaseIntentCommittor,
1414
};
15-
use magicblock_core::magic_program;
1615
use magicblock_rpc_client::MagicblockRpcClient;
1716
use solana_sdk::{clock::Slot, pubkey::Pubkey, signature::Signature};
1817
use thiserror::Error;
@@ -210,8 +209,8 @@ pub fn standard_blacklisted_accounts(
210209
blacklisted_accounts.insert(solana_sdk::sysvar::slot_history::ID);
211210
blacklisted_accounts.insert(solana_sdk::sysvar::stake_history::ID);
212211
blacklisted_accounts.insert(NATIVE_SOL_ID);
213-
blacklisted_accounts.insert(magic_program::ID);
214-
blacklisted_accounts.insert(magic_program::MAGIC_CONTEXT_PUBKEY);
212+
blacklisted_accounts.insert(magicblock_program::ID);
213+
blacklisted_accounts.insert(magicblock_program::MAGIC_CONTEXT_PUBKEY);
215214
blacklisted_accounts.insert(*validator_id);
216215
blacklisted_accounts.insert(*faucet_id);
217216
blacklisted_accounts

magicblock-account-dumper/src/account_dumper_bank.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,7 @@ impl AccountDumper for AccountDumperBank {
146146
.map_err(AccountDumperError::MutatorModificationError)?;
147147
let program_idl_modification =
148148
program_idl.map(|(program_idl_pubkey, program_idl_account)| {
149-
AccountModification::from((
150-
&program_idl_pubkey,
151-
&program_idl_account,
152-
))
149+
from_account(program_idl_pubkey, &program_idl_account)
153150
});
154151
let needs_upgrade = self.bank.has_account(program_id_pubkey);
155152
let transaction = transaction_to_clone_program(
@@ -180,7 +177,7 @@ impl AccountDumper for AccountDumperBank {
180177
);
181178

182179
let mut program_id_modification =
183-
AccountModification::from((program_pubkey, program_account));
180+
from_account(*program_pubkey, program_account);
184181
// point program account to the derived program data account address
185182
let program_id_state =
186183
bincode::serialize(&UpgradeableLoaderState::Program {
@@ -211,3 +208,14 @@ impl AccountDumper for AccountDumperBank {
211208
self.execute_transaction(transaction)
212209
}
213210
}
211+
212+
fn from_account(pubkey: Pubkey, account: &Account) -> AccountModification {
213+
AccountModification {
214+
pubkey,
215+
lamports: Some(account.lamports),
216+
owner: Some(account.owner),
217+
executable: Some(account.executable),
218+
data: Some(account.data.clone()),
219+
rent_epoch: Some(account.rent_epoch),
220+
}
221+
}

magicblock-accounts/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ magicblock-accounts-api = { workspace = true }
2222
magicblock-bank = { workspace = true }
2323
magicblock-committor-service = { workspace = true }
2424
magicblock-core = { workspace = true }
25+
magicblock-magic-program-api = { workspace = true }
2526
magicblock-metrics = { workspace = true }
2627
magicblock-mutator = { workspace = true }
2728
magicblock-processor = { workspace = true }

magicblock-accounts/src/external_accounts_manager.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ use magicblock_committor_service::{
2929
transactions::MAX_PROCESS_PER_TX,
3030
types::{ScheduledBaseIntentWrapper, TriggerType},
3131
};
32-
use magicblock_core::magic_program;
32+
use magicblock_magic_program_api::{self, MAGIC_CONTEXT_PUBKEY};
3333
use magicblock_program::{
3434
magic_scheduled_base_intent::{
3535
CommitType, CommittedAccount, MagicBaseIntent, ScheduledBaseIntent,
@@ -445,7 +445,7 @@ where
445445
}
446446

447447
fn should_clone_account(pubkey: &Pubkey) -> bool {
448-
pubkey != &magic_program::MAGIC_CONTEXT_PUBKEY
448+
pubkey != &MAGIC_CONTEXT_PUBKEY
449449
}
450450

451451
/// Creates deterministic hashes from account lamports, owner and data

magicblock-api/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ magicblock-bank = { workspace = true }
2626
magicblock-committor-service = { workspace = true }
2727
magicblock-config = { workspace = true }
2828
magicblock-core = { workspace = true }
29+
magicblock-magic-program-api = { workspace = true }
2930
magicblock-geyser-plugin = { workspace = true }
3031
magicblock-ledger = { workspace = true }
3132
magicblock-metrics = { workspace = true }

magicblock-api/src/fund_account.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
use std::path::Path;
22

33
use magicblock_bank::bank::Bank;
4-
use magicblock_core::magic_program;
4+
use magicblock_magic_program_api::{
5+
self, MAGIC_CONTEXT_PUBKEY, MAGIC_CONTEXT_SIZE,
6+
};
57
use solana_sdk::{
68
account::Account, clock::Epoch, pubkey::Pubkey, signature::Keypair,
79
signer::Signer, system_program,
@@ -73,8 +75,8 @@ pub(crate) fn funded_faucet(
7375
pub(crate) fn fund_magic_context(bank: &Bank) {
7476
fund_account_with_data(
7577
bank,
76-
&magic_program::MAGIC_CONTEXT_PUBKEY,
78+
&MAGIC_CONTEXT_PUBKEY,
7779
u64::MAX,
78-
vec![0; magic_program::MAGIC_CONTEXT_SIZE],
80+
vec![0; MAGIC_CONTEXT_SIZE],
7981
);
8082
}

magicblock-api/src/tickers.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ use std::{
99
use log::*;
1010
use magicblock_accounts::{AccountsManager, ScheduledCommitsProcessor};
1111
use magicblock_bank::bank::Bank;
12-
use magicblock_core::magic_program;
1312
use magicblock_ledger::Ledger;
13+
use magicblock_magic_program_api::{self, MAGIC_CONTEXT_PUBKEY};
1414
use magicblock_metrics::metrics;
1515
use magicblock_processor::execute_transaction::execute_legacy_transaction;
1616
use magicblock_program::{instruction_utils::InstructionUtils, MagicContext};
@@ -54,8 +54,11 @@ pub fn init_slot_ticker<C: ScheduledCommitsProcessor>(
5454

5555
// If accounts were scheduled to be committed, we accept them here
5656
// and processs the commits
57-
let magic_context_acc = bank.get_account(&magic_program::MAGIC_CONTEXT_PUBKEY)
58-
.expect("Validator found to be running without MagicContext account!");
57+
let magic_context_acc = bank
58+
.get_account(&MAGIC_CONTEXT_PUBKEY)
59+
.expect(
60+
"Validator found to be running without MagicContext account!",
61+
);
5962
if MagicContext::has_scheduled_commits(magic_context_acc.data()) {
6063
handle_scheduled_commits(
6164
&bank,

0 commit comments

Comments
 (0)