feat(txbuilder): allow cloning of relevant structs (#558)

Co-authored-by: logicalmechanism <logicalmechanism@protonmail.com>
This commit is contained in:
Logical Mechanism 2024-12-13 02:57:36 -08:00 committed by GitHub
parent cfc840f1b2
commit 2864ff45a9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 10 additions and 12 deletions

View file

@ -16,8 +16,6 @@ use pallas::{
use tracing::info;
use hex::FromHex;
use hex::FromHex;
async fn do_localstate_query(client: &mut NodeClient) {
let client = client.statequery();

View file

@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize};
pub mod model;
pub mod serialise;
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Default)]
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Default, Clone)]
#[serde(rename_all = "snake_case")]
pub enum TransactionStatus {
#[default]
@ -11,10 +11,10 @@ pub enum TransactionStatus {
Built,
}
#[derive(PartialEq, Eq, Hash, Debug)]
#[derive(PartialEq, Eq, Hash, Debug, Clone)]
pub struct Bytes32(pub [u8; 32]);
#[derive(Hash, PartialEq, Eq, Debug)]
#[derive(Hash, PartialEq, Eq, Debug, Clone)]
pub struct Bytes64(pub [u8; 64]);
type PublicKey = Bytes32;

View file

@ -18,7 +18,7 @@ use super::{
};
// TODO: Don't make wrapper types public
#[derive(Default, Serialize, Deserialize, PartialEq, Eq, Debug)]
#[derive(Default, Serialize, Deserialize, PartialEq, Eq, Debug, Clone)]
pub struct StagingTransaction {
pub version: String,
pub status: TransactionStatus,
@ -375,7 +375,7 @@ impl StagingTransaction {
}
// TODO: Don't want our wrapper types in fields public
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Hash)]
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Hash, Clone)]
pub struct Input {
pub tx_hash: TxHash,
pub txo_index: u64,
@ -547,7 +547,7 @@ pub struct Datum {
pub bytes: DatumBytes,
}
#[derive(PartialEq, Eq, Hash, Debug)]
#[derive(PartialEq, Eq, Hash, Debug, Clone)]
pub enum RedeemerPurpose {
Spend(Input),
Mint(PolicyId),
@ -555,13 +555,13 @@ pub enum RedeemerPurpose {
// Cert TODO
}
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone)]
pub struct ExUnits {
pub mem: u64,
pub steps: u64,
}
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Default)]
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Default, Clone)]
pub struct Redeemers(HashMap<RedeemerPurpose, (Bytes, Option<ExUnits>)>);
impl Deref for Redeemers {
@ -595,14 +595,14 @@ impl From<PallasAddress> for Address {
}
}
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone)]
#[serde(rename_all = "snake_case")]
pub enum BuilderEra {
Babbage,
Conway,
}
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone)]
pub struct BuiltTransaction {
pub version: String,
pub era: BuilderEra,