This repository has been archived by the owner on Jan 11, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
Support top down query #331
Merged
+56
−0
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,6 +14,7 @@ use fvm_shared::{ | |
use ipc_identity::{ | ||
EthKeyAddress, EvmKeyStore, KeyStore, KeyStoreConfig, PersistentKeyStore, Wallet, | ||
}; | ||
use ipc_sdk::staking::StakingChangeRequest; | ||
use ipc_sdk::{ | ||
cross::CrossMsg, | ||
subnet::{ConsensusType, ConstructParams}, | ||
|
@@ -534,6 +535,33 @@ impl IpcProvider { | |
conn.manager().chain_head_height().await | ||
} | ||
|
||
/// Obtain the genesis epoch of the input subnet. | ||
pub async fn genesis_epoch(&self, subnet: &SubnetID) -> anyhow::Result<ChainEpoch> { | ||
let parent = subnet.parent().ok_or_else(|| anyhow!("no parent found"))?; | ||
let conn = match self.connection(&parent) { | ||
None => return Err(anyhow!("parent subnet config not found")), | ||
Some(conn) => conn, | ||
}; | ||
conn.manager().genesis_epoch(subnet).await | ||
} | ||
|
||
/// Get the changes in subnet validators. This is fetched from parent. | ||
pub async fn get_validator_changeset( | ||
&self, | ||
subnet: &SubnetID, | ||
start: ChainEpoch, | ||
end: ChainEpoch, | ||
) -> anyhow::Result<Vec<StakingChangeRequest>> { | ||
let conn = match self.connection(subnet) { | ||
None => return Err(anyhow!("target subnet not found")), | ||
Some(conn) => conn, | ||
}; | ||
|
||
conn.manager() | ||
.get_validator_changeset(subnet, start, end) | ||
.await | ||
} | ||
|
||
pub async fn get_top_down_msgs( | ||
&self, | ||
subnet: &SubnetID, | ||
|
@@ -572,6 +600,15 @@ impl IpcProvider { | |
|
||
conn.manager().get_chain_id().await | ||
} | ||
|
||
pub async fn get_chain_head_height(&self, subnet: &SubnetID) -> anyhow::Result<ChainEpoch> { | ||
let conn = match self.connection(subnet) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Isn't the change set picked up from the parent? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this is get chain head height? Anyways, for change set, it's from the subnet actor in parent, so the address should be derived from the subnet directly. |
||
None => return Err(anyhow!("target subnet not found")), | ||
Some(conn) => conn, | ||
}; | ||
|
||
conn.manager().chain_head_height().await | ||
} | ||
} | ||
|
||
/// Lotus JSON keytype format | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where is this one implemented?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the evm manager instance.