futureversecom / trn-seed

Implementation of The Root Network node in Rust, based on the Substrate framework.
https://www.therootnetwork.com
Apache License 2.0
16 stars 5 forks source link

Update get_xrpl_tx_proof() RPC to return only the filtered set of xrpl vaidator sigs #242

Closed surangap closed 1 year ago

surangap commented 1 year ago

currently get_xrpl_tx_proof() returns all the validator sigs who signed when the proof was formed. This makes it a bit harder to extract only the xrpl validator sigs. It shoud filter in only the xrpl validator sigs and send as the response.

Also it would be better if we could send the xrpl response as the same format as eth response. It will have public keys also, giving extra information to the user. Hence can be certain which validator's sigs were returned.

surangap commented 1 year ago

@ken-centrality @KarishmaBothara what do you think of the second suggestion in the issue? right now it's like below

[derive(Clone, Serialize, Deserialize)]
pub struct EventProofResponse {
    /// The event proof Id
    pub event_id: EventProofId,
    /// The signatures in the request
    pub signatures: Vec<Bytes>,
    /// The validators that signed the request
    pub validators: Vec<AccountId20>,
    /// The validators set Id that signed the proof
    pub validator_set_id: ValidatorSetId,
    /// THe block hash of the event (finalized)
    pub block: H256,
    /// Metadata tag
    pub tag: Option<Bytes>,
}

#[derive(Clone, Serialize, Deserialize)]
pub struct XrplTxProofResponse {
    /// The event proof Id
    pub event_id: EventProofId,
    /// The signatures in the request and the index of the authority ('notary keys' which produced
    /// it)
    pub signatures: Vec<(u32, Bytes)>,
    /// The block hash of the event (finalized)
    pub block: H256,
}
ken-futureverse commented 1 year ago

that'd be awesome to match it with EventProofResponse