Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions mapper/pchain/tx_parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -387,9 +387,17 @@ func addValidatorMetadataToStakeOuts(ops *txOps, validator txs.ValidatorTx, star
out.Metadata[MetadataValidatorNodeID] = validator.NodeID().String()
out.Metadata[MetadataStakingStartTime] = uint64(startTime.Unix())
out.Metadata[MetadataStakingEndTime] = uint64(validator.EndTime().Unix())
out.Metadata[MetadataValidatorWeight] = validator.Weight()
out.Metadata[MetadataValidatorRewardsOwner] = getAddressArray(validator.ValidationRewardsOwner().(*secp256k1fx.OutputOwners), hrp)
out.Metadata[MetadataDelegationRewardsOwner] = getAddressArray(validator.DelegationRewardsOwner().(*secp256k1fx.OutputOwners), hrp)
out.Metadata[MetadataSubnetID] = validator.SubnetID().String()

switch v := validator.(type) {
case *txs.AddValidatorTx:
out.Metadata[MetadataDelegationFee] = v.DelegationShares
case *txs.AddPermissionlessValidatorTx:
out.Metadata[MetadataDelegationFee] = v.DelegationShares
}
}
}

Expand All @@ -402,6 +410,7 @@ func addDelegatorMetadataToStakeOuts(ops *txOps, delegator txs.DelegatorTx, star
out.Metadata[MetadataValidatorNodeID] = delegator.NodeID().String()
out.Metadata[MetadataStakingStartTime] = uint64(startTime.Unix())
out.Metadata[MetadataStakingEndTime] = uint64(delegator.EndTime().Unix())
out.Metadata[MetadataValidatorWeight] = delegator.Weight()
out.Metadata[MetadataDelegatorRewardsOwner] = getAddressArray(delegator.RewardsOwner().(*secp256k1fx.OutputOwners), hrp)
out.Metadata[MetadataSubnetID] = delegator.SubnetID().String()
}
Expand Down
16 changes: 16 additions & 0 deletions mapper/pchain/tx_parser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,11 @@ func TestMapAddValidatorTx(t *testing.T) {
require.Equal(2, cntInputMeta)
require.Zero(cntOutputMeta)
require.Equal(1, cntMetaType)

stakeOutOp := rosettaTransaction.Operations[2]
require.Equal(OpTypeStakeOutput, stakeOutOp.Metadata["type"])
require.Equal(uint64(2000000000), stakeOutOp.Metadata[MetadataValidatorWeight])
require.Equal(uint32(20000), stakeOutOp.Metadata[MetadataDelegationFee])
}

func TestMapAddPermissionlessValidatorTx(t *testing.T) {
Expand Down Expand Up @@ -209,6 +214,11 @@ func TestMapAddPermissionlessValidatorTx(t *testing.T) {
require.Equal(2, cntInputMeta)
require.Zero(cntOutputMeta)
require.Equal(1, cntMetaType)

stakeOutOp := rosettaTransaction.Operations[2]
require.Equal(OpTypeStakeOutput, stakeOutOp.Metadata["type"])
require.Equal(uint64(2000000000), stakeOutOp.Metadata[MetadataValidatorWeight])
require.Equal(uint32(20000), stakeOutOp.Metadata[MetadataDelegationFee])
}

// TODO: Remove Post-Durango
Expand Down Expand Up @@ -262,6 +272,9 @@ func TestMapAddDelegatorTx(t *testing.T) {
require.Equal(OpTypeInput, rosettaTransaction.Operations[0].Metadata["type"])
require.Equal(OpTypeOutput, rosettaTransaction.Operations[1].Metadata["type"])
require.Equal(OpTypeStakeOutput, rosettaTransaction.Operations[2].Metadata["type"])

stakeOutOp := rosettaTransaction.Operations[2]
require.Equal(uint64(1000000000), stakeOutOp.Metadata[MetadataValidatorWeight])
}

func TestMapAddPermissionlessDelegatorTx(t *testing.T) {
Expand Down Expand Up @@ -314,6 +327,9 @@ func TestMapAddPermissionlessDelegatorTx(t *testing.T) {
require.Equal(OpTypeInput, rosettaTransaction.Operations[0].Metadata["type"])
require.Equal(OpTypeOutput, rosettaTransaction.Operations[1].Metadata["type"])
require.Equal(OpTypeStakeOutput, rosettaTransaction.Operations[2].Metadata["type"])

stakeOutOp := rosettaTransaction.Operations[2]
require.Equal(uint64(1000000000), stakeOutOp.Metadata[MetadataValidatorWeight])
}

func TestMapImportTx(t *testing.T) {
Expand Down
2 changes: 2 additions & 0 deletions mapper/pchain/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ const (
MetadataValidatorNodeID = "validator_node_id"
MetadataStakingStartTime = "staking_start_time"
MetadataStakingEndTime = "staking_end_time"
MetadataValidatorWeight = "validator_weight"
MetadataDelegationFee = "delegation_fee"
MetadataMessage = "message"
MetadataSigner = "signer"

Expand Down
3 changes: 3 additions & 0 deletions service/backend/pchain/construction_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -594,6 +594,8 @@ func TestAddValidatorTxConstruction(t *testing.T) {
"delegation_rewards_owner": []string{ewoqAccountP.Address},
"validator_rewards_owner": []string{ewoqAccountP.Address},
"signer": pop,
"validator_weight": uint64(2_000_000_000_000),
"delegation_fee": shares,
},
},
}
Expand Down Expand Up @@ -839,6 +841,7 @@ func TestAddDelegatorTxConstruction(t *testing.T) {
"validator_node_id": nodeID,
"subnet_id": pChainID.String(),
"delegator_rewards_owner": []string{ewoqAccountP.Address},
"validator_weight": uint64(25_000_000_000),
},
},
}
Expand Down