Skip to content

Commit b166d93

Browse files
committed
Refactor: Replace StakeCredentials with StakeAddresses for MIR targets and simplify handling
1 parent f8a97b4 commit b166d93

File tree

3 files changed

+10
-18
lines changed

3 files changed

+10
-18
lines changed

common/src/types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -887,7 +887,7 @@ pub enum InstantaneousRewardSource {
887887
/// Target of a MIR
888888
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
889889
pub enum InstantaneousRewardTarget {
890-
StakeCredentials(Vec<(StakeCredential, i64)>),
890+
StakeAddresses(Vec<(StakeAddress, i64)>),
891891
OtherAccountingPot(u64),
892892
}
893893

modules/accounts_state/src/state.rs

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use acropolis_common::{
1414
protocol_params::ProtocolParams,
1515
stake_addresses::{StakeAddressMap, StakeAddressState},
1616
BlockInfo, DRepChoice, DRepCredential, DelegatedStake, InstantaneousRewardSource,
17-
InstantaneousRewardTarget, KeyHash, Lovelace, MoveInstantaneousReward, NetworkId,
17+
InstantaneousRewardTarget, KeyHash, Lovelace, MoveInstantaneousReward,
1818
PoolLiveStakeInfo, PoolRegistration, Pot, SPORewards, StakeAddress, StakeRewardDelta,
1919
TxCertificate,
2020
};
@@ -95,9 +95,6 @@ pub struct State {
9595
/// List of SPOs (by operator ID) retiring in the current epoch
9696
retiring_spos: Vec<KeyHash>,
9797

98-
/// Network ID
99-
network_id: NetworkId,
100-
10198
/// Map of staking address values
10299
/// Wrapped in an Arc so it doesn't get cloned in full by StateHistory
103100
stake_addresses: Arc<Mutex<StakeAddressMap>>,
@@ -549,13 +546,10 @@ impl State {
549546
};
550547

551548
match &mir.target {
552-
InstantaneousRewardTarget::StakeCredentials(deltas) => {
549+
InstantaneousRewardTarget::StakeAddresses(deltas) => {
553550
// Transfer to (in theory also from) stake addresses from (to) a pot
554551
let mut total_value: u64 = 0;
555-
for (credential, value) in deltas.iter() {
556-
let stake_address =
557-
credential.to_stake_address(self.network_id.clone().into());
558-
552+
for (stake_address, value) in deltas.iter() {
559553
// Get old stake address state, or create one
560554
let mut stake_addresses = self.stake_addresses.lock().unwrap();
561555
let sas = stake_addresses.entry(stake_address.clone()).or_default();
@@ -1217,7 +1211,6 @@ mod tests {
12171211
fn mir_transfers_to_stake_addresses() {
12181212
let mut state = State::default();
12191213
let stake_address = create_address(&STAKE_KEY_HASH);
1220-
let stake_credential = stake_address.get_credential();
12211214

12221215
// Bootstrap with some in reserves
12231216
state.pots.reserves = 100;
@@ -1244,9 +1237,9 @@ mod tests {
12441237
// Send in a MIR reserves->{47,-5}->stake
12451238
let mir = MoveInstantaneousReward {
12461239
source: InstantaneousRewardSource::Reserves,
1247-
target: InstantaneousRewardTarget::StakeCredentials(vec![
1248-
(stake_credential.clone(), 47),
1249-
(stake_credential, -5),
1240+
target: InstantaneousRewardTarget::StakeAddresses(vec![
1241+
(stake_address.clone(), 47),
1242+
(stake_address.clone(), -5),
12501243
]),
12511244
};
12521245

@@ -1266,7 +1259,6 @@ mod tests {
12661259
fn withdrawal_transfers_from_stake_addresses() {
12671260
let mut state = State::default();
12681261
let stake_address = create_address(&STAKE_KEY_HASH);
1269-
let stake_credential = stake_address.get_credential();
12701262

12711263
// Bootstrap with some in reserves
12721264
state.pots.reserves = 100;
@@ -1294,7 +1286,7 @@ mod tests {
12941286
// Send in a MIR reserves->42->stake
12951287
let mir = MoveInstantaneousReward {
12961288
source: InstantaneousRewardSource::Reserves,
1297-
target: InstantaneousRewardTarget::StakeCredentials(vec![(stake_credential, 42)]),
1289+
target: InstantaneousRewardTarget::StakeAddresses(vec![(stake_address.clone(), 42)]),
12981290
};
12991291

13001292
state.handle_mir(&mir).unwrap();

modules/tx_unpacker/src/map_parameters.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,10 +314,10 @@ pub fn map_certificate(
314314
},
315315
target: match &mir.target {
316316
alonzo::InstantaneousRewardTarget::StakeCredentials(creds) => {
317-
InstantaneousRewardTarget::StakeCredentials(
317+
InstantaneousRewardTarget::StakeAddresses(
318318
creds
319319
.iter()
320-
.map(|(sc, v)| (map_stake_credential(&sc), *v))
320+
.map(|(sc, v)| (map_stake_address(&sc, network_id.clone()), *v))
321321
.collect(),
322322
)
323323
}

0 commit comments

Comments
 (0)