Skip to content

feat: hashi - #1

Open
allemanfredi wants to merge 3 commits into
aragon:developfrom
crosschain-alliance:feat/hashi
Open

feat: hashi#1
allemanfredi wants to merge 3 commits into
aragon:developfrom
crosschain-alliance:feat/hashi

Conversation

@allemanfredi

Copy link
Copy Markdown

No description provided.

@jordaniza jordaniza left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like it nicely strips the layer zero elements out - I would love to do a code walkthrough to better understand how the flow changes for Dapps and how we would wire the original oapp via L0

});

emit ActionsRelayed(_callId, _params.dstEid, receipt);
uint256 _destinationChainId

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To confirm my understanding of Hashi: the destinationChainId is it:

  • The chainId for the specific protocol
  • A chainId used by Hashi that reconciles to the specific chainId for the xchain protocol

unchecked {
++_nonce;
}
emit ActionsRelayed(_callId, _destinationChainId, commitment);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should the nonce be in the event sig?

@@ -0,0 +1,248 @@
// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity ^0.8.0;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This contract all looks good but I'd need to review in the context of how it fits in the wider application and the workflow. Would appreciate a walkthrough.

uint256 chainId; // The ID of the blockchain where the proof is applicable.
uint256 blockNumber; // The block number at which the proof is generated.
bytes blockHeader; // The RLP-encoded header of the block containing the account state.
uint256 ancestralBlockNumber; // The block number of an ancestral block if needed for verification.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when are ancestral blocks required for verification and when are they not?

*/
event ShoyuBashiSet(address shoyuBashi);

function __HashiProverUpgradeable_init(address shoyuBashi_) public onlyInitializing {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe you would define an init_unchained method to allow for inheritance. Not 100% necessary though

/// @notice Emitted when ShoyuBashi is changed.
event ShoyuBashiSet(address shoyuBashi);

/// @notice Emitted when ShoyuBaactionRelayStorageKeyshi is changed.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: typo

/// @notice Metadata to identify a remote proposal. Logged on receipt.
/// @param callId The ID of the proposal on the foreign chain. No guarantees of uniqueness.
/// @param srcEid The LayerZero foreign chain ID.
/// @param srcChainid The LayerZero foreign chain ID.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: rm layer zero

xavikh added a commit that referenced this pull request May 14, 2025
…ting Modes Enables Denial of Service in Cross-Chain Voting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants