Skip to content

Commit

Permalink
fix(dpp): default constructor returns old version
Browse files Browse the repository at this point in the history
  • Loading branch information
shumkov committed Oct 3, 2024
1 parent f1eaa15 commit 04424bd
Show file tree
Hide file tree
Showing 8 changed files with 38 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,10 @@ impl IdentityCreditWithdrawalTransition {
pub fn default_versioned(platform_version: &PlatformVersion) -> Result<Self, ProtocolError> {
match platform_version
.dpp
.identity_versions
.identity_structure_version
.state_transitions
.identities
.credit_withdrawal
.default_constructor
{
0 => Ok(IdentityCreditWithdrawalTransition::V0(
IdentityCreditWithdrawalTransitionV0::default(),
Expand Down
6 changes: 6 additions & 0 deletions packages/rs-platform-version/src/version/dpp_versions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ pub struct StateTransitionVersions {
pub struct IdentityTransitionVersions {
pub max_public_keys_in_creation: u16,
pub asset_locks: IdentityTransitionAssetLockVersions,
pub credit_withdrawal: IdentityCreditWithdrawalTransitionVersions,
}

#[derive(Clone, Debug, Default)]
pub struct IdentityCreditWithdrawalTransitionVersions {
pub default_constructor: FeatureVersion,
}

#[derive(Clone, Debug, Default)]
Expand Down
8 changes: 6 additions & 2 deletions packages/rs-platform-version/src/version/v1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ use crate::version::dpp_versions::{
DocumentTypeClassMethodVersions, DocumentTypeIndexVersions, DocumentTypeMethodVersions,
DocumentTypeSchemaVersions, DocumentTypeValidationVersions, DocumentTypeVersions,
DocumentVersions, DocumentsBatchTransitionValidationVersions, DocumentsBatchTransitionVersions,
IdentityKeyTypeMethodVersions, IdentityTransitionAssetLockVersions, IdentityTransitionVersions,
IdentityVersions, JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions,
IdentityCreditWithdrawalTransitionVersions, IdentityKeyTypeMethodVersions,
IdentityTransitionAssetLockVersions, IdentityTransitionVersions, IdentityVersions,
JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions,
RecursiveSchemaValidatorVersions, StateTransitionConversionVersions,
StateTransitionMethodVersions, StateTransitionSerializationVersions, StateTransitionVersions,
VotingValidationVersions, VotingVersions,
Expand Down Expand Up @@ -1182,6 +1183,9 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion {
validate_asset_lock_transaction_structure: 0,
validate_instant_asset_lock_proof_structure: 0,
},
credit_withdrawal: IdentityCreditWithdrawalTransitionVersions {
default_constructor: 0,
},
},
},
contract_versions: ContractVersions {
Expand Down
8 changes: 6 additions & 2 deletions packages/rs-platform-version/src/version/v2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ use crate::version::dpp_versions::{
DocumentTypeClassMethodVersions, DocumentTypeIndexVersions, DocumentTypeMethodVersions,
DocumentTypeSchemaVersions, DocumentTypeValidationVersions, DocumentTypeVersions,
DocumentVersions, DocumentsBatchTransitionValidationVersions, DocumentsBatchTransitionVersions,
IdentityKeyTypeMethodVersions, IdentityTransitionAssetLockVersions, IdentityTransitionVersions,
IdentityVersions, JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions,
IdentityCreditWithdrawalTransitionVersions, IdentityKeyTypeMethodVersions,
IdentityTransitionAssetLockVersions, IdentityTransitionVersions, IdentityVersions,
JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions,
RecursiveSchemaValidatorVersions, StateTransitionConversionVersions,
StateTransitionMethodVersions, StateTransitionSerializationVersions, StateTransitionVersions,
VotingValidationVersions, VotingVersions,
Expand Down Expand Up @@ -1182,6 +1183,9 @@ pub const PLATFORM_V2: PlatformVersion = PlatformVersion {
validate_asset_lock_transaction_structure: 0,
validate_instant_asset_lock_proof_structure: 0,
},
credit_withdrawal: IdentityCreditWithdrawalTransitionVersions {
default_constructor: 0,
},
},
},
contract_versions: ContractVersions {
Expand Down
8 changes: 6 additions & 2 deletions packages/rs-platform-version/src/version/v3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ use crate::version::dpp_versions::{
DocumentTypeClassMethodVersions, DocumentTypeIndexVersions, DocumentTypeMethodVersions,
DocumentTypeSchemaVersions, DocumentTypeValidationVersions, DocumentTypeVersions,
DocumentVersions, DocumentsBatchTransitionValidationVersions, DocumentsBatchTransitionVersions,
IdentityKeyTypeMethodVersions, IdentityTransitionAssetLockVersions, IdentityTransitionVersions,
IdentityVersions, JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions,
IdentityCreditWithdrawalTransitionVersions, IdentityKeyTypeMethodVersions,
IdentityTransitionAssetLockVersions, IdentityTransitionVersions, IdentityVersions,
JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions,
RecursiveSchemaValidatorVersions, StateTransitionConversionVersions,
StateTransitionMethodVersions, StateTransitionSerializationVersions, StateTransitionVersions,
VotingValidationVersions, VotingVersions,
Expand Down Expand Up @@ -1189,6 +1190,9 @@ pub const PLATFORM_V3: PlatformVersion = PlatformVersion {
validate_asset_lock_transaction_structure: 0,
validate_instant_asset_lock_proof_structure: 0,
},
credit_withdrawal: IdentityCreditWithdrawalTransitionVersions {
default_constructor: 1,
},
},
},
contract_versions: ContractVersions {
Expand Down
8 changes: 6 additions & 2 deletions packages/rs-platform-version/src/version/v4.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ use crate::version::dpp_versions::{
DocumentTypeClassMethodVersions, DocumentTypeIndexVersions, DocumentTypeMethodVersions,
DocumentTypeSchemaVersions, DocumentTypeValidationVersions, DocumentTypeVersions,
DocumentVersions, DocumentsBatchTransitionValidationVersions, DocumentsBatchTransitionVersions,
IdentityKeyTypeMethodVersions, IdentityTransitionAssetLockVersions, IdentityTransitionVersions,
IdentityVersions, JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions,
IdentityCreditWithdrawalTransitionVersions, IdentityKeyTypeMethodVersions,
IdentityTransitionAssetLockVersions, IdentityTransitionVersions, IdentityVersions,
JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions,
RecursiveSchemaValidatorVersions, StateTransitionConversionVersions,
StateTransitionMethodVersions, StateTransitionSerializationVersions, StateTransitionVersions,
VotingValidationVersions, VotingVersions,
Expand Down Expand Up @@ -1184,6 +1185,9 @@ pub const PLATFORM_V4: PlatformVersion = PlatformVersion {
validate_asset_lock_transaction_structure: 0,
validate_instant_asset_lock_proof_structure: 0,
},
credit_withdrawal: IdentityCreditWithdrawalTransitionVersions {
default_constructor: 1,
},
},
},
contract_versions: ContractVersions {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module.exports = function getIdentityCreditWithdrawalTransitionFixture() {
const privateKey = new PrivateKey('cSBnVM4xvxarwGQuAfQFwqDg9k5tErHUHzgWsEfD4zdwUasvqRVY');
const address = privateKey.toAddress();

const stateTransition = new IdentityCreditWithdrawalTransition(1);
const stateTransition = new IdentityCreditWithdrawalTransition(3);
stateTransition.setIdentityId(generateRandomIdentifier());
// eslint-disable-next-line
stateTransition.setAmount(BigInt(1000));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ describe('IdentityCreditWithdrawalTransition', () => {
rawStateTransition = stateTransition.toObject();

expect(rawStateTransition).to.deep.equal({
$version: '0',
$version: '1',
type: StateTransitionTypes.IdentityCreditWithdrawal,
identityId: stateTransition.getIdentityId().toBuffer(),
amount: stateTransition.getAmount(),
Expand All @@ -92,7 +92,7 @@ describe('IdentityCreditWithdrawalTransition', () => {
rawStateTransition = stateTransition.toObject({ skipSignature: true });

expect(rawStateTransition).to.deep.equal({
$version: '0',
$version: '1',
type: StateTransitionTypes.IdentityCreditWithdrawal,
identityId: stateTransition.getIdentityId().toBuffer(),
amount: stateTransition.getAmount(),
Expand All @@ -109,7 +109,7 @@ describe('IdentityCreditWithdrawalTransition', () => {
const jsonStateTransition = stateTransition.toJSON();

expect(jsonStateTransition).to.deep.equal({
$version: '0',
$version: '1',
type: StateTransitionTypes.IdentityCreditWithdrawal,
identityId: stateTransition.getIdentityId().toString(),
amount: stateTransition.getAmount().toString(),
Expand Down

0 comments on commit 04424bd

Please sign in to comment.