diff --git a/.agents/context/crates/magicblock-committor-service.md b/.agents/context/crates/magicblock-committor-service.md index 9ba6b918a..dc2769c0c 100644 --- a/.agents/context/crates/magicblock-committor-service.md +++ b/.agents/context/crates/magicblock-committor-service.md @@ -191,7 +191,7 @@ IntentExecutorImpl::execute -> TaskBuilderImpl::commit_tasks + finalize_tasks -> fetch next commit nonces, delegation metadata, and diffable base accounts using max(remote_slot) -> persist commit_id for each committed account - -> create commit, commit-finalize, undelegate, finalize, and action tasks + -> create commit, commit-finalize, finalize, explicit undelegate, and action tasks -> TaskStrategist::build_execution_strategy -> try single transaction when total task count <= 22 and it fits -> optimize large tasks to buffers when needed @@ -203,7 +203,7 @@ IntentExecutorImpl::execute -> reset nonce cache for all committed pubkeys on errors, or only undelegated pubkeys on successful undelegation ``` -Task building fetches `DelegationMetadata` for accounts whose base-layer flow may finalize. `FinalizeTask` and `CommitFinalizeTask` include the delegated account owner and `DelegationMetadata.rent_payer` so the Delegation Program can auto-undelegate owner-program requests during finalize, commit-finalize, and commit-finalize-from-buffer. The active task-building path derives the request PDA through the DLP instruction builders and does not fetch or decode `UndelegationRequest`; explicit undelegate tasks still pass `request_rent_payer = None` unless a future path deliberately restores request-account decoding. +Task building fetches `DelegationMetadata` for accounts whose base-layer flow may finalize. `FinalizeTask` and `CommitFinalizeTask` include the delegated account owner and `DelegationMetadata.rent_payer` so the Delegation Program can auto-undelegate owner-program and validator requests during finalize, commit-finalize, and commit-finalize-from-buffer. Validator-requested `CommitAndUndelegate` no longer emits a trailing `UndelegateTask`; post-undelegate base actions are still scheduled after the finalize task. The active task-building path derives the request PDA through the DLP instruction builders and does not fetch or decode `UndelegationRequest`; explicit undelegate tasks still pass `request_rent_payer = None` unless a future path deliberately restores request-account decoding. Transaction fit is not only packet size. `TaskStrategist` currently checks whether a single-stage transaction or each two-stage transaction fits the wire size, optionally after switching commits to buffers and adding ALTs, but it does not split a transaction stage by compute units. Each commit, finalize, commit-finalize, and undelegate task currently advertises `120_000` CU, while Agave caps a transaction at `1_400_000` CU. Keep task bundles below that transaction-level cap unless the strategist and executor/output/persistence model are extended to split, record, and confirm multiple transactions for the affected stage. diff --git a/.agents/specs/validator-specification.md b/.agents/specs/validator-specification.md index 841abc7c5..7134fe84d 100644 --- a/.agents/specs/validator-specification.md +++ b/.agents/specs/validator-specification.md @@ -259,13 +259,15 @@ This is a critical lifecycle invariant. Do not allow normal ER transactions to k Owner-program requested undelegation is recorded by the Delegation Program in `DelegationMetadata.undelegation_requester = OwnerProgram` and an -`UndelegationRequest` PDA. This marker is not a validator-side completion -signal: the validator must still commit/finalize the latest ER state. For -commit/finalize, commit-finalize, and commit-finalize-from-buffer paths, the -committor supplies the DLP auto-undelegation accounts using the delegated -account's owner program and `DelegationMetadata.rent_payer`; it derives the -request PDA for those instruction metas and does not need to fetch or decode -`UndelegationRequest` during task construction. +`UndelegationRequest` PDA. Validator-requested undelegation is recorded as +`DelegationMetadata.undelegation_requester = Validator`. These markers are not +validator-side completion signals: the validator must still commit/finalize the +latest ER state. For commit/finalize, commit-finalize, and +commit-finalize-from-buffer paths, the committor supplies the DLP +auto-undelegation accounts using the delegated account's owner program and +`DelegationMetadata.rent_payer`; it derives the request PDA for those +instruction metas and does not need to fetch or decode `UndelegationRequest` +during task construction. The validator observes owner-program `UndelegationRequest` PDAs through Chainlink and `magicblock-accounts`. Live request-account subscription updates @@ -274,12 +276,12 @@ accounts with a filtered `getProgramAccounts` every configured interval (`chainlink.undelegation-request-poll-interval`, default `5m`) and feeds the decoded requests into the same `ScheduleCommitAndUndelegate` scheduling path. -If DLP sees `OwnerProgram` requester during a successful finalize path, it -finalizes the committed state and undelegates/closes the delegation/request PDAs -in the same instruction flow. An explicit undelegate instruction later in the -same transaction may no-op once ownership has already returned to the owner -program. `AlreadyUndelegated` remains a conflict for validator-requested -undelegation state, not a reason to drop an owner-program request. +If DLP sees `OwnerProgram` or `Validator` requester during a successful +finalize-style path, it finalizes the committed state and undelegates/closes the +delegation PDAs in the same instruction flow. Owner-program requests also close +the request PDA and reimburse its rent payer. Validator-requested +`CommitAndUndelegate` should rely on this auto-undelegation behavior and must +not append a separate explicit `Undelegate` task for the same account. ### Callback discriminator diff --git a/Cargo.lock b/Cargo.lock index d839bb02a..6c8411ab8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1970,7 +1970,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -3856,7 +3856,7 @@ dependencies = [ [[package]] name = "magicblock-delegation-program-api" version = "3.0.0" -source = "git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7#72af1c7542ee00a383f0945184fee4a0d9cec6e0" +source = "git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57#ccb7d57e37bbb18a1958a25d63730c4b06ac45ad" dependencies = [ "bincode", "borsh 0.10.4", @@ -5289,7 +5289,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -5765,7 +5765,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.12.1", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -9668,7 +9668,7 @@ dependencies = [ "getrandom 0.4.3", "once_cell", "rustix 1.1.4", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -10626,7 +10626,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index ce5ff6a14..f43dbe7d5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -116,7 +116,7 @@ magicblock-committor-program = { path = "./magicblock-committor-program", featur magicblock-committor-service = { path = "./magicblock-committor-service" } magicblock-config = { path = "./magicblock-config" } magicblock-core = { path = "./magicblock-core" } -magicblock-delegation-program-api = { git = "https://github.com/magicblock-labs/delegation-program.git", rev = "72af1c7" } +magicblock-delegation-program-api = { git = "https://github.com/magicblock-labs/delegation-program.git", rev = "ccb7d57" } magicblock-ledger = { path = "./magicblock-ledger" } magicblock-magic-program-api = { path = "./magicblock-magic-program-api" } magicblock-metrics = { path = "./magicblock-metrics" } diff --git a/magicblock-committor-service/src/tasks/mod.rs b/magicblock-committor-service/src/tasks/mod.rs index fefc73c92..6584bccd7 100644 --- a/magicblock-committor-service/src/tasks/mod.rs +++ b/magicblock-committor-service/src/tasks/mod.rs @@ -571,7 +571,11 @@ mod serialization_safety_test { use dlp_api::{ discriminator::DlpDiscriminator, - pda::undelegation_request_pda_from_delegated_account, + pda::{ + fees_vault_pda, undelegate_buffer_pda_from_delegated_account, + undelegation_request_pda_from_delegated_account, + validator_fees_vault_pda_from_validator, + }, }; use magicblock_core::intent::CommittedAccount; use magicblock_program::{ @@ -716,6 +720,120 @@ mod serialization_safety_test { assert!(!ix.accounts[13].is_signer); } + #[test] + fn test_finalize_task_includes_auto_undelegation_accounts() { + let validator = Pubkey::new_unique(); + let delegated_account = Pubkey::new_unique(); + let owner_program = Pubkey::new_unique(); + let rent_reimbursement = Pubkey::new_unique(); + + let ix = FinalizeTask { + delegated_account, + owner_program, + rent_reimbursement, + } + .instruction(&validator); + + assert_eq!(ix.program_id, dlp_api::id()); + assert_eq!(ix.data, DlpDiscriminator::Finalize.to_vec()); + assert_eq!(ix.accounts.len(), 13); + assert_eq!( + ix.accounts[6].pubkey, + validator_fees_vault_pda_from_validator(&validator) + ); + assert_eq!(ix.accounts[8].pubkey, owner_program); + assert_eq!( + ix.accounts[9].pubkey, + undelegate_buffer_pda_from_delegated_account(&delegated_account) + ); + assert_eq!(ix.accounts[10].pubkey, rent_reimbursement); + assert_eq!(ix.accounts[11].pubkey, fees_vault_pda()); + assert_eq!( + ix.accounts[12].pubkey, + undelegation_request_pda_from_delegated_account(&delegated_account) + ); + } + + fn make_commit_finalize_task() -> CommitFinalizeTask { + let delegated_account = Pubkey::new_unique(); + let owner_program = Pubkey::new_unique(); + CommitFinalizeTask { + commit_id: 1, + allow_undelegation: true, + committed_account: CommittedAccount { + pubkey: delegated_account, + account: Account { + lamports: 1_000, + data: vec![1, 2, 3], + owner: owner_program, + executable: false, + rent_epoch: 0, + }, + remote_slot: Default::default(), + }, + delivery: CommitDelivery::StateInArgs, + rent_reimbursement: Pubkey::new_unique(), + } + } + + #[test] + fn test_commit_finalize_task_includes_auto_undelegation_accounts() { + let validator = Pubkey::new_unique(); + let task = make_commit_finalize_task(); + let delegated_account = task.committed_account.pubkey; + let owner_program = task.committed_account.account.owner; + let rent_reimbursement = task.rent_reimbursement; + + let ix = task.instruction(&validator); + + assert_eq!(ix.program_id, dlp_api::id()); + assert!(ix + .data + .starts_with(&DlpDiscriminator::CommitFinalize.to_vec())); + assert_eq!(ix.accounts.len(), 11); + assert_eq!(ix.accounts[6].pubkey, owner_program); + assert_eq!( + ix.accounts[7].pubkey, + undelegate_buffer_pda_from_delegated_account(&delegated_account) + ); + assert_eq!(ix.accounts[8].pubkey, rent_reimbursement); + assert_eq!(ix.accounts[9].pubkey, fees_vault_pda()); + assert_eq!( + ix.accounts[10].pubkey, + undelegation_request_pda_from_delegated_account(&delegated_account) + ); + } + + #[test] + fn test_commit_finalize_from_buffer_task_includes_auto_undelegation_accounts( + ) { + let validator = Pubkey::new_unique(); + let mut task = make_commit_finalize_task(); + assert!(task.try_optimize_tx_size()); + let delegated_account = task.committed_account.pubkey; + let owner_program = task.committed_account.account.owner; + let rent_reimbursement = task.rent_reimbursement; + + let ix = task.instruction(&validator); + + assert_eq!(ix.program_id, dlp_api::id()); + assert!(ix + .data + .starts_with(&DlpDiscriminator::CommitFinalizeFromBuffer.to_vec())); + assert_eq!(ix.accounts.len(), 12); + assert_eq!(ix.accounts[7].pubkey, owner_program); + assert_eq!( + ix.accounts[8].pubkey, + undelegate_buffer_pda_from_delegated_account(&delegated_account) + ); + assert_eq!(ix.accounts[9].pubkey, rent_reimbursement); + assert_eq!(ix.accounts[10].pubkey, fees_vault_pda()); + assert_eq!( + ix.accounts[11].pubkey, + undelegation_request_pda_from_delegated_account(&delegated_account) + ); + } + fn make_buffer_commit_task( commit_id: u64, allow_undelegation: bool, diff --git a/magicblock-committor-service/src/tasks/task_builder.rs b/magicblock-committor-service/src/tasks/task_builder.rs index 2989f0f6e..3823a1057 100644 --- a/magicblock-committor-service/src/tasks/task_builder.rs +++ b/magicblock-committor-service/src/tasks/task_builder.rs @@ -20,7 +20,7 @@ use crate::{ tasks::{ commit_task::{CommitDelivery, CommitTask}, BaseActionTask, BaseActionTaskV1, BaseActionTaskV2, BaseTaskImpl, - CommitFinalizeTask, FinalizeTask, UndelegateTask, + CommitFinalizeTask, FinalizeTask, }, }; @@ -172,9 +172,6 @@ impl TaskBuilderImpl { [ intent_bundle.get_commit_intent_pubkeys(), intent_bundle.get_undelegate_intent_pubkeys(), - intent_bundle - .intent_bundle - .get_commit_finalize_and_undelegate_intent_pubkeys(), ] .into_iter() .flatten() @@ -360,21 +357,6 @@ impl TasksBuilder for TaskBuilderImpl { .into() } - // Helper to create an undelegate task - fn undelegate_task( - account: &CommittedAccount, - rent_reimbursement: &Pubkey, - request_rent_payer: Option, - ) -> BaseTaskImpl { - UndelegateTask { - delegated_account: account.pubkey, - owner_program: account.account.owner, - rent_reimbursement: *rent_reimbursement, - request_rent_payer, - } - .into() - } - // Helper to process commit types fn create_finalize_tasks( commit: &CommitType, @@ -417,29 +399,16 @@ impl TasksBuilder for TaskBuilderImpl { } } - fn create_undelegate_tasks( + fn create_post_undelegate_action_tasks( commit_and_undelegate: &CommitAndUndelegate, - delegation_metadata: &HashMap, - ) -> TaskBuilderResult> { - let accounts = commit_and_undelegate.get_committed_accounts(); - - let mut tasks = accounts - .iter() - .map(|account| { - let rent_reimbursement = rent_reimbursement( - delegation_metadata, - account.pubkey, - )?; - Ok(undelegate_task(account, &rent_reimbursement, None)) - }) - .collect::>>()?; - + ) -> Vec { if let UndelegateType::WithBaseActions(actions) = &commit_and_undelegate.undelegate_action { - tasks.extend(TaskBuilderImpl::create_action_tasks(actions)); + TaskBuilderImpl::create_action_tasks(actions).collect() + } else { + Vec::new() } - Ok(tasks) } let mut tasks = Vec::new(); @@ -470,13 +439,13 @@ impl TasksBuilder for TaskBuilderImpl { &value.commit_action, &delegation_metadata, )?); - tasks.extend(create_undelegate_tasks(value, &delegation_metadata)?); + tasks.extend(create_post_undelegate_action_tasks(value)); } if let Some(ref value) = intent_bundle.intent_bundle.commit_finalize_and_undelegate { - tasks.extend(create_undelegate_tasks(value, &delegation_metadata)?); + tasks.extend(create_post_undelegate_action_tasks(value)); } Ok(tasks) diff --git a/magicblock-committor-service/src/tasks/task_strategist.rs b/magicblock-committor-service/src/tasks/task_strategist.rs index 8203699ea..43e0ef1a8 100644 --- a/magicblock-committor-service/src/tasks/task_strategist.rs +++ b/magicblock-committor-service/src/tasks/task_strategist.rs @@ -477,7 +477,7 @@ mod tests { }; use magicblock_core::intent::CommittedAccount; use magicblock_program::magic_scheduled_base_intent::{ - BaseAction, ProgramArgs, + BaseAction, ProgramArgs, UndelegateType, }; use solana_account::Account; use solana_pubkey::Pubkey; @@ -901,7 +901,7 @@ mod tests { } #[tokio::test] - async fn test_finalize_tasks_uses_metadata_rent_payer_for_undelegate() { + async fn test_commit_and_undelegate_finalize_stage_auto_undelegates() { let delegated_account = Pubkey::new_unique(); let intent = create_test_intent(0, &[delegated_account], true); let info_fetcher = Arc::new(MockInfoFetcher); @@ -910,18 +910,46 @@ mod tests { .await .unwrap(); - assert_eq!(tasks.len(), 2); + assert_eq!(tasks.len(), 1); let BaseTaskImpl::Finalize(task) = &tasks[0] else { panic!("expected finalize task"); }; assert_eq!(task.delegated_account, delegated_account); assert_eq!(task.rent_reimbursement, delegated_account); - let BaseTaskImpl::Undelegate(task) = &tasks[1] else { - panic!("expected undelegate task"); - }; - assert_eq!(task.delegated_account, delegated_account); - assert_eq!(task.rent_reimbursement, delegated_account); - assert_eq!(task.request_rent_payer, None); + } + + #[tokio::test] + async fn test_commit_and_undelegate_finalize_stage_keeps_post_undelegate_actions( + ) { + let delegated_account = Pubkey::new_unique(); + let mut intent = create_test_intent(0, &[delegated_account], true); + intent + .intent_bundle + .commit_and_undelegate + .as_mut() + .unwrap() + .undelegate_action = + UndelegateType::WithBaseActions(vec![BaseAction { + destination_program: Pubkey::new_unique(), + source_program: None, + escrow_authority: Pubkey::new_unique(), + account_metas_per_program: vec![], + data_per_program: ProgramArgs { + data: vec![1, 2, 3], + escrow_index: 0, + }, + compute_units: 30_000, + callback: None, + }]); + let info_fetcher = Arc::new(MockInfoFetcher); + + let tasks = TaskBuilderImpl::finalize_tasks(&info_fetcher, &intent) + .await + .unwrap(); + + assert_eq!(tasks.len(), 2); + assert!(matches!(tasks[0], BaseTaskImpl::Finalize(_))); + assert!(matches!(tasks[1], BaseTaskImpl::BaseAction(_))); } #[tokio::test] @@ -957,9 +985,31 @@ mod tests { } #[tokio::test] - async fn test_build_two_stage_mode_no_alts() { - let pubkeys: [_; 3] = std::array::from_fn(|_| Pubkey::new_unique()); - let intent = create_test_intent(0, &pubkeys, true); + async fn test_build_two_stage_mode_when_united_task_limit_is_exceeded() { + let pubkeys: [_; 5] = std::array::from_fn(|_| Pubkey::new_unique()); + let mut intent = create_test_intent(0, &pubkeys, true); + let make_action = || BaseAction { + destination_program: Pubkey::new_unique(), + source_program: None, + escrow_authority: Pubkey::new_unique(), + account_metas_per_program: vec![], + data_per_program: ProgramArgs { + data: vec![1], + escrow_index: 0, + }, + compute_units: 30_000, + callback: None, + }; + intent.intent_bundle.standalone_actions = + (0..6).map(|_| make_action()).collect(); + intent + .intent_bundle + .commit_and_undelegate + .as_mut() + .unwrap() + .undelegate_action = UndelegateType::WithBaseActions( + (0..7).map(|_| make_action()).collect(), + ); let info_fetcher = Arc::new(MockInfoFetcher); let commit_task = TaskBuilderImpl::commit_tasks( @@ -989,8 +1039,8 @@ mod tests { else { panic!("Unexpected execution mode"); }; - assert!(!commit_stage.uses_alts()); - assert!(!finalize_stage.uses_alts()); + assert_eq!(commit_stage.optimized_tasks.len(), 11); + assert_eq!(finalize_stage.optimized_tasks.len(), 12); } #[tokio::test] diff --git a/test-integration/Cargo.lock b/test-integration/Cargo.lock index 6dee47c77..9483ff66f 100644 --- a/test-integration/Cargo.lock +++ b/test-integration/Cargo.lock @@ -289,7 +289,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -300,7 +300,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -2041,7 +2041,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -3050,7 +3050,7 @@ dependencies = [ "borsh 1.7.0", "color-backtrace", "magicblock-config", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "rand 0.8.6", "rayon", "serde", @@ -3531,7 +3531,7 @@ dependencies = [ "magicblock-chainlink", "magicblock-committor-service", "magicblock-core", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "magicblock-metrics", "magicblock-program", "solana-hash 4.2.0", @@ -3647,7 +3647,7 @@ dependencies = [ "magicblock-committor-service", "magicblock-config", "magicblock-core", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "magicblock-ledger", "magicblock-magic-program-api 0.13.3", "magicblock-metrics", @@ -3709,7 +3709,7 @@ dependencies = [ "magicblock-aml", "magicblock-config", "magicblock-core", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "magicblock-magic-program-api 0.13.3", "magicblock-metrics", "parking_lot", @@ -3778,7 +3778,7 @@ dependencies = [ "magicblock-chainlink", "magicblock-committor-program", "magicblock-core", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "magicblock-metrics", "magicblock-program", "magicblock-rpc-client", @@ -3892,7 +3892,7 @@ dependencies = [ [[package]] name = "magicblock-delegation-program-api" version = "3.0.0" -source = "git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7#72af1c7542ee00a383f0945184fee4a0d9cec6e0" +source = "git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57#ccb7d57e37bbb18a1958a25d63730c4b06ac45ad" dependencies = [ "bincode", "borsh 0.10.4", @@ -4051,7 +4051,7 @@ dependencies = [ "bincode", "lazy_static", "magicblock-core", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "magicblock-magic-program-api 0.13.3", "num-derive", "num-traits", @@ -4209,7 +4209,7 @@ dependencies = [ name = "magicblock-validator-admin" version = "0.13.3" dependencies = [ - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "magicblock-program", "magicblock-rpc-client", "solana-commitment-config", @@ -4467,7 +4467,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -5058,7 +5058,7 @@ version = "0.0.0" dependencies = [ "borsh 1.7.0", "ephemeral-rollups-sdk", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "magicblock-magic-program-api 0.13.3", "rkyv 0.7.46", "solana-program 3.0.0", @@ -5355,7 +5355,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -5817,7 +5817,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -5946,7 +5946,7 @@ dependencies = [ "anyhow", "borsh 1.7.0", "integration-test-tools", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "program-schedulecommit", "solana-commitment-config", "solana-compute-budget-interface", @@ -5968,7 +5968,7 @@ dependencies = [ "magicblock-committor-program", "magicblock-committor-service", "magicblock-core", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "magicblock-program", "magicblock-rpc-client", "magicblock-table-mania", @@ -5996,7 +5996,7 @@ dependencies = [ "ephemeral-rollups-sdk", "integration-test-tools", "magicblock-core", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "magicblock-magic-program-api 0.13.3", "magicblock-program", "program-schedulecommit", @@ -6017,7 +6017,7 @@ name = "schedulecommit-test-security" version = "0.0.0" dependencies = [ "integration-test-tools", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "magicblock-magic-program-api 0.13.3", "program-schedulecommit", "program-schedulecommit-security", @@ -6439,7 +6439,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -9775,7 +9775,7 @@ dependencies = [ "getrandom 0.4.3", "once_cell", "rustix", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -9796,7 +9796,7 @@ dependencies = [ "integration-test-tools", "magicblock-config", "magicblock-core", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "program-flexi-counter", "program-mini", "solana-loader-v4-interface 3.1.0", @@ -9823,7 +9823,7 @@ dependencies = [ "magicblock-aml", "magicblock-chainlink", "magicblock-config", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "program-flexi-counter", "program-mini", "solana-account 3.4.0", @@ -9849,7 +9849,7 @@ version = "0.0.0" dependencies = [ "integration-test-tools", "magicblock-core", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "program-flexi-counter", "program-mini", "solana-loader-v4-interface 3.1.0", @@ -9919,7 +9919,7 @@ dependencies = [ "integration-test-tools", "magicblock-accounts-db", "magicblock-config", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "program-flexi-counter", "solana-commitment-config", "solana-rpc-client", @@ -9942,7 +9942,7 @@ dependencies = [ "magic-domain-program", "magicblock-api", "magicblock-config", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "magicblock-program", "magicblock-validator-admin", "solana-commitment-config", @@ -9988,7 +9988,7 @@ dependencies = [ "ephemeral-rollups-sdk", "integration-test-tools", "log", - "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=72af1c7)", + "magicblock-delegation-program-api 3.0.0 (git+https://github.com/magicblock-labs/delegation-program.git?rev=ccb7d57)", "magicblock-magic-program-api 0.13.3", "program-flexi-counter", "solana-rpc-client-api", @@ -10960,7 +10960,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] diff --git a/test-integration/Cargo.toml b/test-integration/Cargo.toml index 7173bafba..5f35ee1ee 100644 --- a/test-integration/Cargo.toml +++ b/test-integration/Cargo.toml @@ -63,7 +63,7 @@ magicblock-committor-program = { path = "../magicblock-committor-program", featu magicblock-committor-service = { path = "../magicblock-committor-service" } magicblock-config = { path = "../magicblock-config" } magicblock-core = { path = "../magicblock-core" } -magicblock-delegation-program-api = { git = "https://github.com/magicblock-labs/delegation-program.git", rev = "72af1c7", default-features = false } +magicblock-delegation-program-api = { git = "https://github.com/magicblock-labs/delegation-program.git", rev = "ccb7d57", default-features = false } magicblock-magic-program-api = { path = "../magicblock-magic-program-api" } magicblock-program = { path = "../programs/magicblock" } magicblock-rpc-client = { path = "../magicblock-rpc-client" } diff --git a/test-integration/schedulecommit/elfs/dlp.so b/test-integration/schedulecommit/elfs/dlp.so index 1cd487be0..7dfa3e937 100755 Binary files a/test-integration/schedulecommit/elfs/dlp.so and b/test-integration/schedulecommit/elfs/dlp.so differ