Skip to content

Commit

Permalink
Add transcoder for Unlock stake txn type. Add support for approve UI …
Browse files Browse the repository at this point in the history
…for this new txn type
  • Loading branch information
Lazy Nina committed Jan 5, 2024
1 parent 2423a41 commit 0f54e5c
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 2 deletions.
12 changes: 11 additions & 1 deletion src/app/approve/approve.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ import {
TransactionSpendingLimit,
TransactionMetadataRegisterAsValidator,
TransactionMetadataUnregisterAsValidator,
TransactionMetadataStake, TransactionMetadataUnstake,
TransactionMetadataStake, TransactionMetadataUnstake, TransactionMetadataUnlockStake,
} from '../../lib/deso/transaction';
import { ExtraData } from '../../types/identity';
import { AccountService } from '../account.service';
Expand Down Expand Up @@ -622,6 +622,16 @@ export class ApproveComponent implements OnInit {
);
description = `unstake ${unstakeAmountNanos} $DESO from ${unstakeValidatorPublicKey}`;
break;
case TransactionMetadataUnlockStake:
const unlockStakeMetadata = this.transaction
.metadata as TransactionMetadataUnlockStake;
const unlockStakeValidatorPublicKey = this.base58KeyCheck(
unlockStakeMetadata.validatorPublicKey
);
publicKeys = [unlockStakeValidatorPublicKey];
description = `unlock stake from ${unlockStakeValidatorPublicKey}, ` +
`starting from epochs ${unlockStakeMetadata.startEpochNumber} to ${unlockStakeMetadata.endEpochNumber}`;
break;
}

// Set the transaction description based on the description populated with public keys.
Expand Down
3 changes: 2 additions & 1 deletion src/app/identity.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ import {
TransactionMetadataUpdateProfile,
TransactionMetadataRegisterAsValidator,
TransactionMetadataUnregisterAsValidator,
TransactionMetadataStake, TransactionMetadataUnstake,
TransactionMetadataStake, TransactionMetadataUnstake, TransactionMetadataUnlockStake,
} from '../lib/deso/transaction';
import { SwalHelper } from '../lib/helpers/swal-helper';
import { AccessLevel, PublicUserInfo } from '../types/identity';
Expand Down Expand Up @@ -525,6 +525,7 @@ export class IdentityService {
case TransactionMetadataUnregisterAsValidator:
case TransactionMetadataStake:
case TransactionMetadataUnstake:
case TransactionMetadataUnlockStake:
return AccessLevel.Full;

case TransactionMetadataFollow:
Expand Down
12 changes: 12 additions & 0 deletions src/lib/deso/transaction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -629,6 +629,17 @@ export class TransactionMetadataUnstake extends TransactionMetadata {
unstakeAmountNanos: Buffer = Buffer.alloc(0);
}

export class TransactionMetadataUnlockStake extends TransactionMetadata {
@Transcode(VarBuffer)
validatorPublicKey: Buffer = Buffer.alloc(0);

@Transcode(Uvarint64)
startEpochNumber: number = 0;

@Transcode(Uvarint64)
endEpochNumber: number = 0;
}

export const TransactionTypeMetadataMap = {
1: TransactionMetadataBlockReward,
2: TransactionMetadataBasicTransfer,
Expand Down Expand Up @@ -666,6 +677,7 @@ export const TransactionTypeMetadataMap = {
35: TransactionMetadataUnregisterAsValidator,
36: TransactionMetadataStake,
37: TransactionMetadataUnstake,
38: TransactionMetadataUnlockStake,
};

export class Transaction extends BinaryRecord {
Expand Down

0 comments on commit 0f54e5c

Please sign in to comment.