Skip to content

Commit

Permalink
feat: add opcional memo field to move portfolio funds
Browse files Browse the repository at this point in the history
  • Loading branch information
shuffledex committed Jun 30, 2021
1 parent 97036a3 commit 1447d3a
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 1 deletion.
1 change: 1 addition & 0 deletions src/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -917,6 +917,7 @@ export type PermissionsLike = {
export interface PortfolioMovement {
token: string | SecurityToken;
amount: BigNumber;
memo?: string;
}

export interface ProcedureAuthorizationStatus {
Expand Down
26 changes: 26 additions & 0 deletions src/utils/__tests__/conversion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -434,9 +434,11 @@ describe('portfolioMovementToMovePortfolioItem', () => {
const context = dsMockUtils.getContextInstance();
const ticker = 'SOMETOKEN';
const amount = new BigNumber(100);
const memo = 'someMessage';
const token = entityMockUtils.getSecurityTokenInstance({ ticker });
const rawTicker = dsMockUtils.createMockTicker(ticker);
const rawAmount = dsMockUtils.createMockBalance(amount.toNumber());
const rawMemo = ('memo' as unknown) as Memo;
const fakeResult = ('MovePortfolioItem' as unknown) as MovePortfolioItem;

let portfolioMovement: PortfolioMovement = {
Expand All @@ -456,6 +458,7 @@ describe('portfolioMovementToMovePortfolioItem', () => {
.withArgs('MovePortfolioItem', {
ticker: rawTicker,
amount: rawAmount,
memo: null,
})
.returns(fakeResult);

Expand All @@ -471,6 +474,29 @@ describe('portfolioMovementToMovePortfolioItem', () => {
result = portfolioMovementToMovePortfolioItem(portfolioMovement, context);

expect(result).toBe(fakeResult);

dsMockUtils.getCreateTypeStub().withArgs('Memo', memo).returns(rawMemo);

dsMockUtils
.getCreateTypeStub()
.withArgs('MovePortfolioItem', {
ticker: rawTicker,
amount: rawAmount,
memo: rawMemo,
})
.returns(fakeResult);

portfolioMovement = {
token,
amount,
memo,
};

result = portfolioMovementToMovePortfolioItem(portfolioMovement, context);

console.log(result);

expect(result).toBe(fakeResult);
});
});

Expand Down
4 changes: 3 additions & 1 deletion src/utils/conversion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@ import {
getTicker,
isModuleOrTagMatch,
isPrintableAscii,
optionize,
padString,
removePadding,
} from '~/utils/internal';
Expand Down Expand Up @@ -2566,10 +2567,11 @@ export function portfolioMovementToMovePortfolioItem(
portfolioItem: PortfolioMovement,
context: Context
): MovePortfolioItem {
const { token, amount } = portfolioItem;
const { token, amount, memo } = portfolioItem;
return context.polymeshApi.createType('MovePortfolioItem', {
ticker: stringToTicker(getTicker(token), context),
amount: numberToBalance(amount, context),
memo: optionize(stringToMemo)(memo, context),
});
}

Expand Down

0 comments on commit 1447d3a

Please sign in to comment.