diff --git a/modules/sdk-coin-sol/package.json b/modules/sdk-coin-sol/package.json index ed687ca513..9fe714f35b 100644 --- a/modules/sdk-coin-sol/package.json +++ b/modules/sdk-coin-sol/package.json @@ -40,6 +40,7 @@ ] }, "dependencies": { + "@bitgo/public-types": "5.18.0", "@bitgo/sdk-core": "^36.3.0", "@bitgo/sdk-lib-mpc": "^10.6.0", "@bitgo/statics": "^57.3.0", diff --git a/modules/sdk-coin-sol/src/lib/iface.ts b/modules/sdk-coin-sol/src/lib/iface.ts index 7d554a0d35..6928c579c1 100644 --- a/modules/sdk-coin-sol/src/lib/iface.ts +++ b/modules/sdk-coin-sol/src/lib/iface.ts @@ -1,3 +1,4 @@ +import { SolStakingTypeEnum } from '@bitgo/public-types'; import { TransactionExplanation as BaseTransactionExplanation, Recipient, SolInstruction } from '@bitgo/sdk-core'; import { DecodedCloseAccountInstruction } from '@solana/spl-token'; import { Blockhash, StakeInstructionType, SystemInstructionType, TransactionSignature } from '@solana/web3.js'; @@ -120,12 +121,6 @@ export interface Approve { }; } -export enum StakingType { - NATIVE = 'NATIVE', - MARINADE = 'MARINADE', - JITO = 'JITO', -} - export interface JitoStakingActivateParams { stakePoolData: DepositSolStakePoolData; } @@ -139,7 +134,7 @@ export interface StakingActivate { stakingAddress: string; amount: string; validator: string; - stakingType: StakingType; + stakingType: SolStakingTypeEnum; extraParams?: StakingActivateExtraParams; }; } @@ -164,7 +159,7 @@ export interface StakingDeactivate { stakingAddress: string; amount?: string; unstakingAddress?: string; - stakingType: StakingType; + stakingType: SolStakingTypeEnum; extraParams?: StakingDeactivateExtraParams; recipients?: Recipient[]; }; diff --git a/modules/sdk-coin-sol/src/lib/instructionParamsFactory.ts b/modules/sdk-coin-sol/src/lib/instructionParamsFactory.ts index 59e3b99f1f..27c3a0e81c 100644 --- a/modules/sdk-coin-sol/src/lib/instructionParamsFactory.ts +++ b/modules/sdk-coin-sol/src/lib/instructionParamsFactory.ts @@ -24,6 +24,7 @@ import { ComputeBudgetInstruction, } from '@solana/web3.js'; +import { SolStakingTypeEnum } from '@bitgo/public-types'; import { NotSupported, TransactionType } from '@bitgo/sdk-core'; import { coins, SolCoin } from '@bitgo/statics'; import assert from 'assert'; @@ -47,7 +48,6 @@ import { SetPriorityFee, CustomInstruction, Approve, - StakingType, } from './iface'; import { getInstructionType } from './utils'; import { DepositSolParams, WithdrawStakeParams } from '@solana/spl-stake-pool'; @@ -359,14 +359,14 @@ function isNativeStakingInstructions(si: StakingInstructions): si is NativeStaki return si.create !== undefined && si.initialize !== undefined && si.delegate !== undefined; } -function getStakingTypeFromStakingInstructions(si: StakingInstructions): StakingType { +function getStakingTypeFromStakingInstructions(si: StakingInstructions): SolStakingTypeEnum { const isJito = isJitoStakingInstructions(si); const isMarinade = isMarinadeStakingInstructions(si); const isNative = isNativeStakingInstructions(si); assert([isJito, isMarinade, isNative].filter((x) => x).length === 1, 'StakingType is ambiguous'); - if (isJito) return StakingType.JITO; - if (isMarinade) return StakingType.MARINADE; - if (isNative) return StakingType.NATIVE; + if (isJito) return SolStakingTypeEnum.JITO; + if (isMarinade) return SolStakingTypeEnum.MARINADE; + if (isNative) return SolStakingTypeEnum.NATIVE; assert(false, 'No StakingType found'); } @@ -439,7 +439,7 @@ function parseStakingActivateInstructions( let stakingActivate: StakingActivate | undefined; switch (stakingType) { - case StakingType.JITO: { + case SolStakingTypeEnum.JITO: { assert(isJitoStakingInstructions(stakingInstructions)); const { depositSol } = stakingInstructions; stakingActivate = { @@ -462,7 +462,7 @@ function parseStakingActivateInstructions( break; } - case StakingType.MARINADE: { + case SolStakingTypeEnum.MARINADE: { assert(isMarinadeStakingInstructions(stakingInstructions)); const { create, initialize } = stakingInstructions; stakingActivate = { @@ -478,7 +478,7 @@ function parseStakingActivateInstructions( break; } - case StakingType.NATIVE: { + case SolStakingTypeEnum.NATIVE: { assert(isNativeStakingInstructions(stakingInstructions)); const { create, initialize, delegate } = stakingInstructions; stakingActivate = { @@ -595,14 +595,14 @@ function isNativeUnstakingInstructions(ui: UnstakingInstructions): ui is NativeU return ui.deactivate !== undefined; } -function getStakingTypeFromUnstakingInstructions(ui: UnstakingInstructions): StakingType { +function getStakingTypeFromUnstakingInstructions(ui: UnstakingInstructions): SolStakingTypeEnum { const isJito = isJitoUnstakingInstructions(ui); const isMarinade = isMarinadeUnstakingInstructions(ui); const isNative = isNativeUnstakingInstructions(ui); assert([isJito, isMarinade, isNative].filter((x) => x).length === 1, 'StakingType is ambiguous'); - if (isJito) return StakingType.JITO; - if (isMarinade) return StakingType.MARINADE; - if (isNative) return StakingType.NATIVE; + if (isJito) return SolStakingTypeEnum.JITO; + if (isMarinade) return SolStakingTypeEnum.MARINADE; + if (isNative) return SolStakingTypeEnum.NATIVE; assert(false, 'No StakingType found'); } @@ -739,7 +739,7 @@ function parseStakingDeactivateInstructions( let stakingDeactivate: StakingDeactivate | undefined; switch (stakingType) { - case StakingType.JITO: { + case SolStakingTypeEnum.JITO: { assert(isJitoUnstakingInstructions(unstakingInstruction)); const { withdrawStake } = unstakingInstruction; stakingDeactivate = { @@ -764,7 +764,7 @@ function parseStakingDeactivateInstructions( break; } - case StakingType.MARINADE: { + case SolStakingTypeEnum.MARINADE: { assert(isMarinadeUnstakingInstructions(unstakingInstruction)); const { transfer } = unstakingInstruction; @@ -785,7 +785,7 @@ function parseStakingDeactivateInstructions( break; } - case StakingType.NATIVE: { + case SolStakingTypeEnum.NATIVE: { assert(isNativeUnstakingInstructions(unstakingInstruction)); const { deactivate, split } = unstakingInstruction; stakingDeactivate = { diff --git a/modules/sdk-coin-sol/src/lib/solInstructionFactory.ts b/modules/sdk-coin-sol/src/lib/solInstructionFactory.ts index 82b393bfba..28b758fd10 100644 --- a/modules/sdk-coin-sol/src/lib/solInstructionFactory.ts +++ b/modules/sdk-coin-sol/src/lib/solInstructionFactory.ts @@ -1,3 +1,4 @@ +import { SolStakingTypeEnum } from '@bitgo/public-types'; import { SolCoin } from '@bitgo/statics'; import { createAssociatedTokenAccountInstruction, @@ -41,7 +42,6 @@ import { SetPriorityFee, CustomInstruction, Approve, - StakingType, } from './iface'; import { getSolTokenFromTokenName, isValidBase64, isValidHex } from './utils'; import { depositSolInstructions, withdrawStakeInstructions } from './jitoStakePoolOperations'; @@ -288,7 +288,7 @@ function stakingInitializeInstruction(data: StakingActivate): TransactionInstruc const tx = new Transaction(); switch (stakingType) { - case StakingType.JITO: { + case SolStakingTypeEnum.JITO: { assert(extraParams !== undefined, 'Missing extraParams param'); const instructions = depositSolInstructions( { @@ -302,7 +302,7 @@ function stakingInitializeInstruction(data: StakingActivate): TransactionInstruc break; } - case StakingType.MARINADE: { + case SolStakingTypeEnum.MARINADE: { const walletInitStaking = StakeProgram.createAccount({ fromPubkey, stakePubkey, @@ -314,7 +314,7 @@ function stakingInitializeInstruction(data: StakingActivate): TransactionInstruc break; } - case StakingType.NATIVE: { + case SolStakingTypeEnum.NATIVE: { const walletInitStaking = StakeProgram.createAccount({ fromPubkey, stakePubkey, @@ -355,7 +355,7 @@ function stakingDeactivateInstruction(data: StakingDeactivate): TransactionInstr assert(fromAddress, 'Missing fromAddress param'); switch (stakingType) { - case StakingType.JITO: { + case SolStakingTypeEnum.JITO: { assert(stakingAddress, 'Missing stakingAddress param'); assert(unstakingAddress, 'Missing unstakingAddress param'); assert(amount, 'Missing amount param'); @@ -378,7 +378,7 @@ function stakingDeactivateInstruction(data: StakingDeactivate): TransactionInstr return tx.instructions; } - case StakingType.MARINADE: { + case SolStakingTypeEnum.MARINADE: { assert(recipients, 'Missing recipients param'); const tx = new Transaction(); @@ -393,7 +393,7 @@ function stakingDeactivateInstruction(data: StakingDeactivate): TransactionInstr return tx.instructions; } - case StakingType.NATIVE: { + case SolStakingTypeEnum.NATIVE: { assert(stakingAddress, 'Missing stakingAddress param'); if (data.params.amount && data.params.unstakingAddress) { diff --git a/modules/sdk-coin-sol/src/lib/stakingActivateBuilder.ts b/modules/sdk-coin-sol/src/lib/stakingActivateBuilder.ts index f2783f8d90..40e5c60074 100644 --- a/modules/sdk-coin-sol/src/lib/stakingActivateBuilder.ts +++ b/modules/sdk-coin-sol/src/lib/stakingActivateBuilder.ts @@ -1,3 +1,4 @@ +import { SolStakingTypeEnum } from '@bitgo/public-types'; import { BaseCoin as CoinConfig } from '@bitgo/statics'; import { BuildTransactionError, TransactionType } from '@bitgo/sdk-core'; import { Transaction } from './transaction'; @@ -5,14 +6,14 @@ import { TransactionBuilder } from './transactionBuilder'; import { InstructionBuilderTypes } from './constants'; import assert from 'assert'; -import { StakingActivate, StakingActivateExtraParams, StakingType } from './iface'; +import { StakingActivate, StakingActivateExtraParams } from './iface'; import { isValidStakingAmount, validateAddress } from './utils'; export class StakingActivateBuilder extends TransactionBuilder { protected _amount: string; protected _stakingAddress: string; protected _validator: string; - protected _stakingType: StakingType = StakingType.NATIVE; + protected _stakingType: SolStakingTypeEnum = SolStakingTypeEnum.NATIVE; protected _extraParams?: StakingActivateExtraParams; constructor(_coinConfig: Readonly) { @@ -84,10 +85,10 @@ export class StakingActivateBuilder extends TransactionBuilder { /** * Set staking type. * - * @param {StakingType} stakingType a staking type. + * @param {SolStakingType} stakingType a staking type. * @returns {StakingActivateBuilder} This staking builder. */ - stakingType(stakingType: StakingType): this { + stakingType(stakingType: SolStakingTypeEnum): this { this._stakingType = stakingType; return this; } diff --git a/modules/sdk-coin-sol/src/lib/stakingDeactivateBuilder.ts b/modules/sdk-coin-sol/src/lib/stakingDeactivateBuilder.ts index 77f38fb927..43ca7302ec 100644 --- a/modules/sdk-coin-sol/src/lib/stakingDeactivateBuilder.ts +++ b/modules/sdk-coin-sol/src/lib/stakingDeactivateBuilder.ts @@ -1,9 +1,10 @@ +import { SolStakingTypeEnum } from '@bitgo/public-types'; import { BaseCoin as CoinConfig } from '@bitgo/statics'; import assert from 'assert'; import { BuildTransactionError, Recipient, TransactionType } from '@bitgo/sdk-core'; import { InstructionBuilderTypes, STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT } from './constants'; -import { StakingDeactivate, StakingDeactivateExtraParams, StakingType, Transfer } from './iface'; +import { StakingDeactivate, StakingDeactivateExtraParams, Transfer } from './iface'; import { Transaction } from './transaction'; import { TransactionBuilder } from './transactionBuilder'; import { isValidStakingAmount, validateAddress } from './utils'; @@ -14,7 +15,7 @@ export class StakingDeactivateBuilder extends TransactionBuilder { protected _amount?: string; protected _unstakingAddress: string; protected _recipients: Recipient[]; - protected _stakingType: StakingType = StakingType.NATIVE; + protected _stakingType: SolStakingTypeEnum = SolStakingTypeEnum.NATIVE; protected _extraParams?: StakingDeactivateExtraParams; constructor(_coinConfig: Readonly) { @@ -36,7 +37,7 @@ export class StakingDeactivateBuilder extends TransactionBuilder { stakingAddresses.push(deactivateInstruction.params.stakingAddress); // Marinade staking also cares about sender. - if (deactivateInstruction.params.stakingType !== StakingType.MARINADE) { + if (deactivateInstruction.params.stakingType !== SolStakingTypeEnum.MARINADE) { this.sender(deactivateInstruction.params.fromAddress); } @@ -61,7 +62,7 @@ export class StakingDeactivateBuilder extends TransactionBuilder { if (stakingAddresses.length > 1) { this.stakingAddresses(stakingAddresses); } else { - if (this._stakingType !== StakingType.MARINADE) { + if (this._stakingType !== SolStakingTypeEnum.MARINADE) { this.stakingAddress(stakingAddresses[0]); } } @@ -143,10 +144,10 @@ export class StakingDeactivateBuilder extends TransactionBuilder { /** * Set staking type. * - * @param {StakingType} stakingType a staking type. + * @param {SolStakingType} stakingType a staking type. * @returns {StakingDeactivateBuilder} This staking builder. */ - stakingType(stakingType: StakingType): this { + stakingType(stakingType: SolStakingTypeEnum): this { this._stakingType = stakingType; return this; } @@ -174,13 +175,13 @@ export class StakingDeactivateBuilder extends TransactionBuilder { params: { fromAddress: this._sender, stakingAddress: stakingAddress, - stakingType: StakingType.NATIVE, + stakingType: SolStakingTypeEnum.NATIVE, }, }; this._instructionsData.push(stakingDeactivateData); } } else { - if (this._stakingType === StakingType.NATIVE) { + if (this._stakingType === SolStakingTypeEnum.NATIVE) { // we don't need stakingAddress in marinade staking deactivate txn assert(this._stakingAddress, 'Staking address must be set before building the transaction'); } @@ -189,7 +190,7 @@ export class StakingDeactivateBuilder extends TransactionBuilder { throw new BuildTransactionError('Sender address cannot be the same as the Staking address'); } - if (this._stakingType === StakingType.NATIVE && this._amount) { + if (this._stakingType === SolStakingTypeEnum.NATIVE && this._amount) { assert( this._unstakingAddress, 'When partially unstaking the unstaking address must be set before building the transaction' @@ -197,7 +198,7 @@ export class StakingDeactivateBuilder extends TransactionBuilder { } this._instructionsData = []; - if (this._stakingType === StakingType.NATIVE && this._unstakingAddress) { + if (this._stakingType === SolStakingTypeEnum.NATIVE && this._unstakingAddress) { assert( this._amount, 'If an unstaking address is given then a partial amount to unstake must also be set before building the transaction' diff --git a/modules/sdk-coin-sol/test/unit/instructionParamsFactory.staking.ts b/modules/sdk-coin-sol/test/unit/instructionParamsFactory.staking.ts index 6435fe3fac..49b8cc45b3 100644 --- a/modules/sdk-coin-sol/test/unit/instructionParamsFactory.staking.ts +++ b/modules/sdk-coin-sol/test/unit/instructionParamsFactory.staking.ts @@ -1,15 +1,9 @@ import should from 'should'; import * as testData from '../resources/sol'; import { instructionParamsFactory } from '../../src/lib/instructionParamsFactory'; +import { SolStakingTypeEnum } from '@bitgo/public-types'; import { TransactionType } from '@bitgo/sdk-core'; -import { - InstructionParams, - Nonce, - StakingActivate, - StakingDeactivate, - StakingType, - StakingWithdraw, -} from '../../src/lib/iface'; +import { InstructionParams, Nonce, StakingActivate, StakingDeactivate, StakingWithdraw } from '../../src/lib/iface'; import { InstructionBuilderTypes, MEMO_PROGRAM_PK, STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT } from '../../src/lib/constants'; import { Keypair as SolKeypair, @@ -73,7 +67,7 @@ describe('Instruction Parser Staking Tests: ', function () { stakingAddress: stakingAccount.toString(), validator: validator.toString(), amount, - stakingType: StakingType.NATIVE, + stakingType: SolStakingTypeEnum.NATIVE, }, }; @@ -143,7 +137,7 @@ describe('Instruction Parser Staking Tests: ', function () { stakingAddress: stakingAccount.toString(), validator: validator.toString(), amount, - stakingType: StakingType.NATIVE, + stakingType: SolStakingTypeEnum.NATIVE, }, }; @@ -195,7 +189,7 @@ describe('Instruction Parser Staking Tests: ', function () { stakingAddress: stakingAccount.toString(), validator: validator.toString(), amount, - stakingType: StakingType.NATIVE, + stakingType: SolStakingTypeEnum.NATIVE, }, }; @@ -242,7 +236,7 @@ describe('Instruction Parser Staking Tests: ', function () { stakingAddress: stakingAccount.toString(), validator: validator.toString(), amount, - stakingType: StakingType.NATIVE, + stakingType: SolStakingTypeEnum.NATIVE, }, }; @@ -329,7 +323,7 @@ describe('Instruction Parser Staking Tests: ', function () { stakingAddress: stakingAccount.toString(), amount: undefined, unstakingAddress: undefined, - stakingType: StakingType.NATIVE, + stakingType: SolStakingTypeEnum.NATIVE, }, }; @@ -380,7 +374,7 @@ describe('Instruction Parser Staking Tests: ', function () { stakingAddress: stakingAccount.toString(), amount: undefined, unstakingAddress: undefined, - stakingType: StakingType.NATIVE, + stakingType: SolStakingTypeEnum.NATIVE, }, }; @@ -413,7 +407,7 @@ describe('Instruction Parser Staking Tests: ', function () { stakingAddress: stakingAccount.toString(), amount: undefined, unstakingAddress: undefined, - stakingType: StakingType.NATIVE, + stakingType: SolStakingTypeEnum.NATIVE, }, }; @@ -460,7 +454,7 @@ describe('Instruction Parser Staking Tests: ', function () { stakingAddress: stakingAccount.toString(), amount: undefined, unstakingAddress: undefined, - stakingType: StakingType.NATIVE, + stakingType: SolStakingTypeEnum.NATIVE, }, }; @@ -1032,7 +1026,7 @@ describe('Instruction Parser Staking Tests: ', function () { stakingAddress: stakingAccount.toString(), amount: '100000', unstakingAddress: splitStakeAccount.toString(), - stakingType: StakingType.NATIVE, + stakingType: SolStakingTypeEnum.NATIVE, }, }; diff --git a/modules/sdk-coin-sol/test/unit/transactionBuilder/stakingActivateBuilder.ts b/modules/sdk-coin-sol/test/unit/transactionBuilder/stakingActivateBuilder.ts index 1790033fc6..753aab94a2 100644 --- a/modules/sdk-coin-sol/test/unit/transactionBuilder/stakingActivateBuilder.ts +++ b/modules/sdk-coin-sol/test/unit/transactionBuilder/stakingActivateBuilder.ts @@ -4,7 +4,7 @@ import * as testData from '../../resources/sol'; import { getBuilderFactory } from '../getBuilderFactory'; import { KeyPair, Utils, StakingActivateBuilder } from '../../../src'; import { JITO_STAKE_POOL_ADDRESS, JITOSOL_MINT_ADDRESS } from '../../../src/lib/constants'; -import { StakingType } from '../../../src/lib/iface'; +import { SolStakingTypeEnum } from '@bitgo/public-types'; import { BaseTransaction } from '@bitgo/sdk-core'; describe('Sol Staking Activate Builder', () => { @@ -79,7 +79,7 @@ describe('Sol Staking Activate Builder', () => { const verifyBuiltTransactionNativeOrMarinade = ( tx: BaseTransaction, doMemo: boolean, - stakingType: StakingType.NATIVE | StakingType.MARINADE + stakingType: SolStakingTypeEnum.NATIVE | SolStakingTypeEnum.MARINADE ) => { const txJson = tx.toJson(); txJson.instructionsData.should.deepEqual([ @@ -125,7 +125,7 @@ describe('Sol Staking Activate Builder', () => { }; const makeUnsignedBuilderMarinade = (doMemo: boolean) => { - return makeUnsignedBuilderNative(doMemo).stakingType(StakingType.MARINADE); + return makeUnsignedBuilderNative(doMemo).stakingType(SolStakingTypeEnum.MARINADE); }; const makeUnsignedBuilderJito = (doMemo: boolean) => { @@ -135,7 +135,7 @@ describe('Sol Staking Activate Builder', () => { .sender(wallet.pub) .stakingAddress(JITO_STAKE_POOL_ADDRESS) .validator(JITO_STAKE_POOL_ADDRESS) - .stakingType(StakingType.JITO) + .stakingType(SolStakingTypeEnum.JITO) .extraParams({ stakePoolData: { managerFeeAccount: testData.JITO_STAKE_POOL_DATA_PARSED.managerFeeAccount.toString(), @@ -185,7 +185,7 @@ describe('Sol Staking Activate Builder', () => { stakingAddress: JITO_STAKE_POOL_ADDRESS, amount: amount, validator: JITO_STAKE_POOL_ADDRESS, - stakingType: StakingType.JITO, + stakingType: SolStakingTypeEnum.JITO, extraParams: { stakePoolData: { managerFeeAccount: testData.JITO_STAKE_POOL_DATA_PARSED.managerFeeAccount.toString(), @@ -217,7 +217,7 @@ describe('Sol Staking Activate Builder', () => { signBuilder: doSign ? signBuilderNativeOrMarinade : undefined, knownRawTx, makeUnsignedBuilder: () => makeUnsignedBuilderNative(doMemo), - verifyBuiltTransaction: (x) => verifyBuiltTransactionNativeOrMarinade(x, doMemo, StakingType.NATIVE), + verifyBuiltTransaction: (x) => verifyBuiltTransactionNativeOrMarinade(x, doMemo, SolStakingTypeEnum.NATIVE), }); }; @@ -240,7 +240,7 @@ describe('Sol Staking Activate Builder', () => { signBuilder: doSign ? signBuilderNativeOrMarinade : undefined, knownRawTx, makeUnsignedBuilder: () => makeUnsignedBuilderMarinade(doMemo), - verifyBuiltTransaction: (x) => verifyBuiltTransactionNativeOrMarinade(x, doMemo, StakingType.MARINADE), + verifyBuiltTransaction: (x) => verifyBuiltTransactionNativeOrMarinade(x, doMemo, SolStakingTypeEnum.MARINADE), }); }; diff --git a/modules/sdk-coin-sol/test/unit/transactionBuilder/stakingDeactivateBuilder.ts b/modules/sdk-coin-sol/test/unit/transactionBuilder/stakingDeactivateBuilder.ts index fe9552b8b3..7e120453ee 100644 --- a/modules/sdk-coin-sol/test/unit/transactionBuilder/stakingDeactivateBuilder.ts +++ b/modules/sdk-coin-sol/test/unit/transactionBuilder/stakingDeactivateBuilder.ts @@ -3,10 +3,10 @@ import should from 'should'; import { getBuilderFactory } from '../getBuilderFactory'; import { KeyPair, StakingDeactivateBuilder, Utils } from '../../../src'; import * as testData from '../../resources/sol'; +import { SolStakingTypeEnum } from '@bitgo/public-types'; import { BaseTransaction, Recipient, TransactionType } from '@bitgo/sdk-core'; import * as bs58 from 'bs58'; import { JITO_STAKE_POOL_ADDRESS } from '../../../src/lib/constants'; -import { StakingType } from '../../../src/lib/iface'; describe('Sol Staking Deactivate Builder', () => { const factory = getBuilderFactory('tsol'); @@ -113,7 +113,7 @@ describe('Sol Staking Deactivate Builder', () => { amount: undefined, fromAddress: wallet.pub, unstakingAddress: undefined, - stakingType: StakingType.NATIVE, + stakingType: SolStakingTypeEnum.NATIVE, }, })), ]); @@ -219,7 +219,7 @@ describe('Sol Staking Deactivate Builder', () => { stakingAddress: stakeAccount.pub, amount: '100000', unstakingAddress: testData.splitStakeAccount.pub, - stakingType: StakingType.NATIVE, + stakingType: SolStakingTypeEnum.NATIVE, }, }, ]); @@ -254,7 +254,7 @@ describe('Sol Staking Deactivate Builder', () => { .sender(wallet.pub) .stakingAddress(stakeAccount.pub) .nonce(recentBlockHash) - .stakingType(StakingType.MARINADE) + .stakingType(SolStakingTypeEnum.MARINADE) .memo(marinadeMemo) .recipients(marinadeRecipientsObject); return txBuilder; @@ -275,7 +275,7 @@ describe('Sol Staking Deactivate Builder', () => { params: { fromAddress: '', stakingAddress: '', - stakingType: StakingType.MARINADE, + stakingType: SolStakingTypeEnum.MARINADE, recipients: marinadeRecipientsObject, }, }, @@ -297,7 +297,7 @@ describe('Sol Staking Deactivate Builder', () => { .sender(wallet.pub) .stakingAddress(JITO_STAKE_POOL_ADDRESS) .unstakingAddress(stakeAccount.pub) - .stakingType(StakingType.JITO) + .stakingType(SolStakingTypeEnum.JITO) .extraParams({ validatorAddress: testData.JITO_STAKE_POOL_VALIDATOR_ADDRESS, transferAuthorityAddress: transferAuthority.pub, @@ -333,7 +333,7 @@ describe('Sol Staking Deactivate Builder', () => { stakingAddress: JITO_STAKE_POOL_ADDRESS, unstakingAddress: stakeAccount.pub, amount: '1000', - stakingType: StakingType.JITO, + stakingType: SolStakingTypeEnum.JITO, extraParams: { validatorAddress: testData.JITO_STAKE_POOL_VALIDATOR_ADDRESS, transferAuthorityAddress: transferAuthority.pub, diff --git a/modules/sdk-coin-sol/test/unit/transactionBuilder/transactionBuilder.ts b/modules/sdk-coin-sol/test/unit/transactionBuilder/transactionBuilder.ts index ff4784444c..561edbfc58 100644 --- a/modules/sdk-coin-sol/test/unit/transactionBuilder/transactionBuilder.ts +++ b/modules/sdk-coin-sol/test/unit/transactionBuilder/transactionBuilder.ts @@ -1,13 +1,13 @@ import should from 'should'; import * as bs58 from 'bs58'; +import { SolStakingTypeEnum } from '@bitgo/public-types'; import { getBuilderFactory } from '../getBuilderFactory'; import { KeyPair, TokenTransferBuilder } from '../../../src'; import { Eddsa, TransactionType } from '@bitgo/sdk-core'; import * as testData from '../../resources/sol'; import BigNumber from 'bignumber.js'; import { Ed25519Bip32HdTree } from '@bitgo/sdk-lib-mpc'; -import { StakingType } from '../../../src/lib/iface'; describe('Sol Transaction Builder', async () => { let builders; @@ -108,7 +108,7 @@ describe('Sol Transaction Builder', async () => { stakingAddress: '7dRuGFbU2y2kijP6o1LYNzVyz4yf13MooqoionCzv5Za', amount: '300000', validator: 'CyjoLt3kjqB57K7ewCBHmnHq3UgEj3ak6A7m6EsBsuhA', - stakingType: StakingType.NATIVE, + stakingType: SolStakingTypeEnum.NATIVE, }, }, ]); diff --git a/yarn.lock b/yarn.lock index 8bdd991354..b19d64bc5b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -334,9 +334,9 @@ "@babel/types" "^7.27.1" "@babel/helpers@^7.27.6", "@babel/helpers@^7.28.2": - version "7.28.2" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.2.tgz#80f0918fecbfebea9af856c419763230040ee850" - integrity sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw== + version "7.28.3" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz#b83156c0a2232c133d1b535dd5d3452119c7e441" + integrity sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw== dependencies: "@babel/template" "^7.27.2" "@babel/types" "^7.28.2" @@ -921,9 +921,9 @@ esutils "^2.0.2" "@babel/runtime@7.6.0", "@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.25.0", "@babel/runtime@^7.26.7", "@babel/runtime@^7.28.2", "@babel/runtime@^7.7.6": - version "7.28.2" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz#2ae5a9d51cc583bd1f5673b3bb70d6d819682473" - integrity sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA== + version "7.28.3" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz#75c5034b55ba868121668be5d5bb31cc64e6e61a" + integrity sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA== "@babel/template@^7.27.0": version "7.27.0" @@ -1028,6 +1028,17 @@ monocle-ts "^2.3.13" newtype-ts "^0.3.5" +"@bitgo/public-types@5.18.0": + version "5.18.0" + resolved "https://registry.npmjs.org/@bitgo/public-types/-/public-types-5.18.0.tgz#287afacbcf4faa79a48691cafdd05a6e7dece75e" + integrity sha512-r1Az80B787kpzZBZ32St6X6vmgXrZRI/9hcDwVw7rX78WhBbDrlO/NaW/0lF99zdllkmEVmRK4gKxBG8H+P6uQ== + dependencies: + fp-ts "^2.0.0" + io-ts "npm:@bitgo-forks/io-ts@2.1.4" + io-ts-types "^0.5.16" + monocle-ts "^2.3.13" + newtype-ts "^0.3.5" + "@bitgo/wasm-miniscript@2.0.0-beta.7": version "2.0.0-beta.7" resolved "https://registry.npmjs.org/@bitgo/wasm-miniscript/-/wasm-miniscript-2.0.0-beta.7.tgz#53eb0e87295ad5f2df0933c3b3b519e90bb4d2f1" @@ -20544,9 +20555,9 @@ typescript@>=5.0.2: integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== ua-parser-js@0.7.22, "ua-parser-js@>0.7.30 <0.8.0", ua-parser-js@^1.0.35: - version "0.7.40" - resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.40.tgz#c87d83b7bb25822ecfa6397a0da5903934ea1562" - integrity sha512-us1E3K+3jJppDBa3Tl0L3MOJiGhe1C6P0+nIvQAFYbxlMAx0h81eOwLmU57xgqToduDDPx3y5QsdjPfDu+FgOQ== + version "0.7.41" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.41.tgz#9f6dee58c389e8afababa62a4a2dc22edb69a452" + integrity sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg== uc.micro@^2.0.0, uc.micro@^2.1.0: version "2.1.0"