Skip to content

Commit c500ebc

Browse files
committed
feat(sdk-core): add XdcStakeOptions with kycHash for XDC masternode
Add XdcStakeOptions extending StakeOptions with an optional kycHash field, following the same pattern as TaoStakeOptions and VetStakeOptions. The kycHash carries the IPFS CIDv0 returned by the staking-service KYC upload endpoint before calling stake(). stakingWallet.stake() spreads all options into the POST body, so no further changes are needed. Ticket: SC-6159
1 parent f47b962 commit c500ebc

2 files changed

Lines changed: 13 additions & 3 deletions

File tree

modules/sdk-core/src/bitgo/staking/iStakingWallet.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,14 @@ export interface StakeOptions {
164164
region?: string;
165165
}
166166

167+
export interface XdcStakeOptions extends StakeOptions {
168+
/**
169+
* XDC masternode KYC document hash — IPFS CIDv0 (Qm...) returned by the
170+
* staking-service KYC upload endpoint, injected before calling stake().
171+
*/
172+
kycHash?: string;
173+
}
174+
167175
export interface TronStakeOptions extends StakeOptions {
168176
/**
169177
* Tron staking resource type (Energy or Bandwidth)
@@ -311,7 +319,7 @@ export interface IStakingWallet {
311319
readonly walletId: string;
312320
readonly coin: string;
313321
stake(
314-
options: StakeOptions | TronStakeOptions | TaoStakeOptions | VetStakeOptions | StoryStakeOptions
322+
options: StakeOptions | TronStakeOptions | TaoStakeOptions | VetStakeOptions | StoryStakeOptions | XdcStakeOptions
315323
): Promise<StakingRequest>;
316324
unstake(options: UnstakeOptions | EthUnstakeOptions): Promise<StakingRequest>;
317325
switchValidator(options: SwitchValidatorOptions | TaoSwitchValidatorOptions): Promise<StakingRequest>;

modules/sdk-core/src/bitgo/staking/stakingWallet.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import {
2525
TaoSwitchValidatorOptions,
2626
VetStakeOptions,
2727
StoryStakeOptions,
28+
XdcStakeOptions,
2829
} from './iStakingWallet';
2930
import { BitGoBase } from '../bitgoBase';
3031
import { IWallet, PrebuildTransactionResult } from '../wallet';
@@ -63,7 +64,7 @@ export class StakingWallet implements IStakingWallet {
6364
* @return StakingRequest
6465
*/
6566
async stake(
66-
options: StakeOptions | TronStakeOptions | TaoStakeOptions | VetStakeOptions | StoryStakeOptions
67+
options: StakeOptions | TronStakeOptions | TaoStakeOptions | VetStakeOptions | StoryStakeOptions | XdcStakeOptions
6768
): Promise<StakingRequest> {
6869
return await this.createStakingRequest(options, 'STAKE');
6970
}
@@ -325,7 +326,8 @@ export class StakingWallet implements IStakingWallet {
325326
| TaoStakeOptions
326327
| TaoSwitchValidatorOptions
327328
| VetStakeOptions
328-
| StoryStakeOptions,
329+
| StoryStakeOptions
330+
| XdcStakeOptions,
329331
type: string
330332
): Promise<StakingRequest> {
331333
return await this.bitgo

0 commit comments

Comments
 (0)