Skip to content

Commit ecc391e

Browse files
Merge pull request #6045 from BitGo/change-recipients-type-for-marinade-unstake
fix(sdk-coin-sol): amend recipients type to match what WP is sending
2 parents 15ec5a5 + 9d47c29 commit ecc391e

File tree

6 files changed

+15
-31
lines changed

6 files changed

+15
-31
lines changed

modules/sdk-coin-sol/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
"@bitgo/sdk-core": "^32.2.0",
4444
"@bitgo/sdk-lib-mpc": "^10.2.0",
4545
"@bitgo/statics": "^51.8.0",
46-
"@bitgo/public-types": "4.28.1",
4746
"@solana/spl-token": "0.3.1",
4847
"@solana/web3.js": "1.92.1",
4948
"bignumber.js": "^9.0.0",

modules/sdk-coin-sol/src/lib/iface.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
import { TransactionExplanation as BaseTransactionExplanation } from '@bitgo/sdk-core';
1+
import { TransactionExplanation as BaseTransactionExplanation, Recipient } from '@bitgo/sdk-core';
22
import { DecodedCloseAccountInstruction } from '@solana/spl-token';
33
import { Blockhash, StakeInstructionType, SystemInstructionType, TransactionSignature } from '@solana/web3.js';
44
import { InstructionBuilderTypes } from './constants';
5-
import { RecipientEntry } from '@bitgo/public-types';
65

76
// TODO(STLX-9890): Add the interfaces for validityWindow and SequenceId
87
export interface SolanaKeys {
@@ -100,7 +99,7 @@ export interface StakingDeactivate {
10099
amount?: string;
101100
unstakingAddress?: string;
102101
isMarinade?: boolean;
103-
recipients?: RecipientEntry[];
102+
recipients?: Recipient[];
104103
};
105104
}
106105

modules/sdk-coin-sol/src/lib/instructionParamsFactory.ts

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ import {
1616
ComputeBudgetInstruction,
1717
} from '@solana/web3.js';
1818

19-
import { RecipientEntry } from '@bitgo/public-types';
20-
2119
import { NotSupported, TransactionType } from '@bitgo/sdk-core';
2220
import { coins, SolCoin } from '@bitgo/statics';
2321
import assert from 'assert';
@@ -474,17 +472,12 @@ function parseStakingDeactivateInstructions(
474472
isMarinade: unstakingInstruction.deactivate === undefined,
475473
recipients:
476474
unstakingInstruction.deactivate === undefined
477-
? ([
475+
? [
478476
{
479-
address: {
480-
address: unstakingInstruction.transfer?.toPubkey.toString(),
481-
},
482-
amount: {
483-
value: unstakingInstruction.transfer?.lamports.toString(),
484-
symbol: coinName,
485-
},
477+
address: unstakingInstruction.transfer?.toPubkey.toString() || '',
478+
amount: unstakingInstruction.transfer?.lamports.toString() || '',
486479
},
487-
] as RecipientEntry[])
480+
]
488481
: undefined,
489482
},
490483
};

modules/sdk-coin-sol/src/lib/solInstructionFactory.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,11 +253,11 @@ function stakingDeactivateInstruction(data: StakingDeactivate): TransactionInstr
253253
if (isMarinade) {
254254
const tx = new Transaction();
255255
assert(recipients, 'Missing recipients param');
256-
const toPubkeyAddress = new PublicKey(recipients[0].address.address || '');
256+
const toPubkeyAddress = new PublicKey(recipients[0].address || '');
257257
const transferInstruction = SystemProgram.transfer({
258258
fromPubkey: new PublicKey(fromAddress),
259259
toPubkey: toPubkeyAddress,
260-
lamports: parseInt(recipients[0].amount.value, 10),
260+
lamports: parseInt(recipients[0].amount, 10),
261261
});
262262

263263
tx.add(transferInstruction);

modules/sdk-coin-sol/src/lib/stakingDeactivateBuilder.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
import { BaseCoin as CoinConfig } from '@bitgo/statics';
22
import assert from 'assert';
33

4-
import { BuildTransactionError, TransactionType } from '@bitgo/sdk-core';
4+
import { BuildTransactionError, Recipient, TransactionType } from '@bitgo/sdk-core';
55
import { InstructionBuilderTypes, STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT } from './constants';
66
import { StakingDeactivate, Transfer } from './iface';
77
import { Transaction } from './transaction';
88
import { TransactionBuilder } from './transactionBuilder';
99
import { isValidStakingAmount, validateAddress } from './utils';
10-
import { RecipientEntry } from '@bitgo/public-types';
1110

1211
export class StakingDeactivateBuilder extends TransactionBuilder {
1312
protected _stakingAddress: string;
1413
protected _stakingAddresses: string[];
1514
protected _amount?: string;
1615
protected _unstakingAddress: string;
1716
protected _isMarinade = false;
18-
protected _recipients: RecipientEntry[];
17+
protected _recipients: Recipient[];
1918

2019
constructor(_coinConfig: Readonly<CoinConfig>) {
2120
super(_coinConfig);
@@ -108,7 +107,7 @@ export class StakingDeactivateBuilder extends TransactionBuilder {
108107
* @param recipients RecipientEntry[] - The recipients object
109108
* @returns {StakingDeactivateBuilder} This staking builder.
110109
*/
111-
recipients(recipients: RecipientEntry[]): this {
110+
recipients(recipients: Recipient[]): this {
112111
this._recipients = recipients;
113112
return this;
114113
}

modules/sdk-coin-sol/test/unit/transactionBuilder/stakingDeactivateBuilder.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@ import should from 'should';
33
import { getBuilderFactory } from '../getBuilderFactory';
44
import { KeyPair, Utils } from '../../../src';
55
import * as testData from '../../resources/sol';
6-
import { TransactionType } from '@bitgo/sdk-core';
6+
import { Recipient, TransactionType } from '@bitgo/sdk-core';
77
import * as bs58 from 'bs58';
8-
import { RecipientEntry } from '@bitgo/public-types';
98

109
describe('Sol Staking Deactivate Builder', () => {
1110
const factory = getBuilderFactory('tsol');
@@ -18,15 +17,10 @@ describe('Sol Staking Deactivate Builder', () => {
1817
const invalidPubKey = testData.pubKeys.invalidPubKeys[0];
1918

2019
describe('Should succeed', () => {
21-
const marinadeRecipientsObject: RecipientEntry[] = [];
20+
const marinadeRecipientsObject: Recipient[] = [];
2221
marinadeRecipientsObject.push({
23-
address: {
24-
address: 'opNS8ENpEMWdXcJUgJCsJTDp7arTXayoBEeBUg6UezP',
25-
},
26-
amount: {
27-
value: '2300000',
28-
symbol: 'tsol',
29-
},
22+
address: 'opNS8ENpEMWdXcJUgJCsJTDp7arTXayoBEeBUg6UezP',
23+
amount: '2300000',
3024
});
3125
const marinadeMemo = `{\\"PrepareForRevoke\\":{\\"user\\":\\"${wallet.pub}}\\",\\"amount\\":\\"500000000000\\"}`;
3226

0 commit comments

Comments
 (0)