-
Notifications
You must be signed in to change notification settings - Fork 389
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: SVM priority fee oracles and transaction submitters, more consistent tx submission #4959
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #4959 +/- ##
=======================================
Coverage 77.53% 77.53%
=======================================
Files 103 103
Lines 2110 2110
Branches 190 190
=======================================
Hits 1636 1636
Misses 453 453
Partials 21 21
|
… trevor/helius-priority-fee-oracle
|
Name | Type |
---|---|
@hyperlane-xyz/cli | Patch |
@hyperlane-xyz/ccip-server | Patch |
@hyperlane-xyz/github-proxy | Patch |
@hyperlane-xyz/helloworld | Patch |
@hyperlane-xyz/infra | Patch |
@hyperlane-xyz/sdk | Patch |
@hyperlane-xyz/utils | Patch |
@hyperlane-xyz/widgets | Patch |
@hyperlane-xyz/core | Patch |
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
… trevor/helius-priority-fee-oracle
… trevor/helius-priority-fee-oracle
… trevor/helius-priority-fee-oracle
@@ -785,7 +785,7 @@ | |||
"index": { | |||
"from": 1, | |||
"mode": "sequence", | |||
"chunk": 100 | |||
"chunk": 20 |
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.
these are some drive-bys configs that were applied for operational reasons to the statefulsets but hadn't yet made it into the mainnet config
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.
could you also update the metadata in registry pls so future config generation respects the values 🙏
} | ||
|
||
/// Gets the estimated costs for a given instruction. | ||
pub async fn get_estimated_costs_for_instruction( |
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.
honestly not sure if these fns should live here, in provider.rs, or somewhere else - curious if anyone has strong takes
@@ -17,7 +17,9 @@ spec: | |||
metadata: | |||
annotations: | |||
checksum/configmap: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} | |||
checksum/external-secret: {{ include (print $.Template.BasePath "/external-secret.yaml") . | sha256sum }} |
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.
drive-bys to make sure pods get updated if doing a release and there's a checksum change of the external secrets
@@ -501,7 +550,7 @@ const releaseCandidate: RootAgentConfig = { | |||
rpcConsensusType: RpcConsensusType.Fallback, | |||
docker: { | |||
repo, | |||
tag: '4cb2c9a-20241205-142854', | |||
tag: 'b98678c-20241213-043725', |
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.
you can see this running in RC atm https://solscan.io/account/G6fWKEBSrDtR8Uzx4kdVRRhrsHZ6zmGX1G2TYMmMgK6u - though might run out of funds. I'd expect some reverts as it's competing with the hyperlane relayer
check out the fees!
} | ||
|
||
// An ugly way to mark a URL as a the secret Helius URL when Helm templating | ||
export const HELIUS_SECRET_URL_MARKER = 'helius'; |
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.
intent here is to let us easily say in code "I want the helius RPC URL here" and have external secrets replace it
|
||
// TODO: not sure if this actually checks if the transaction was executed / reverted? |
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.
was poking into this and I think we may need to change this - iiuc TxOutcome.executed is supposed to be false if the tx reverted, but I think executed
will be true just if the tx lands
// If the protocol type is Sealevel, require everything in AgentSealevelChainMetadataSchema | ||
if (metadata.protocol === ProtocolType.Sealevel) { | ||
if (!AgentSealevelChainMetadataSchema.safeParse(metadata).success) { | ||
return false; | ||
} | ||
} | ||
|
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.
i can't see where these new params are in the agent config?
'@hyperlane-xyz/cli': patch | ||
--- | ||
|
||
Suppress help on CLI failures |
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.
need a new changeset for the SDK changes
@@ -0,0 +1,225 @@ | |||
#![allow(dead_code)] |
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.
We can remove it if we add annotations directly to fields which are not used:
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
struct JsonRpcResult<T> {
#[allow(dead_code)]
jsonrpc: String,
#[allow(dead_code)]
id: String,
result: T,
}
@@ -0,0 +1,121 @@ | |||
#![allow(dead_code)] |
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.
We can remove it if we remove this unused function:
pub fn new_with_rpc_client(rpc_client: SealevelRpcClient) -> Self {
Self { rpc_client }
}
// The retuend costs are unused at the moment - we simply want to perform a simulation to | ||
// determine if the message will revert or not. |
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.
// The retuend costs are unused at the moment - we simply want to perform a simulation to | |
// determine if the message will revert or not. | |
// The retuned costs are unused at the moment - we simply want to perform a simulation to | |
// determine if the message will revert or not. |
if (!AgentSealevelChainMetadataSchema.safeParse(metadata).success) { | ||
return false; |
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.
nit: return AgentSealevelChainMetadataSchema.safeParse(metadata).success
Description
The fruition of https://www.notion.so/hyperlanexyz/Landing-Solana-Transactions-15a6d35200d680cbaf5eea5f9dbec1b1
Major highlights:
process_estimate_costs
to test that messages are processable. Does not yet actually enforce gas limits, because this will take some rollout effort. This is part of https://www.notion.so/hyperlanexyz/Alerting-on-critical-processing-issues-for-any-and-all-messages-15b6d35200d680a79d40fabc2e4e49daDrive-by changes
Related issues
Backward compatibility
Testing