Skip to content

Commit

Permalink
feat: add PortfolioCustody and AddMultiSigSigner as AuthorizationType
Browse files Browse the repository at this point in the history
  • Loading branch information
shuffledex committed Oct 15, 2020
1 parent 86306ed commit c1a704e
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 9 deletions.
3 changes: 2 additions & 1 deletion src/testUtils/mocks/dataSources.ts
Expand Up @@ -1537,10 +1537,11 @@ export const createMockAuthorizationData = (
| { AttestPrimaryKeyRotation: IdentityId }
| { RotatePrimaryKey: IdentityId }
| { TransferTicker: Ticker }
| 'AddMultiSigSigner'
| { AddMultiSigSigner: AccountId }
| { TransferAssetOwnership: Ticker }
| { JoinIdentity: Permission[] }
| { TransferPrimaryIssuanceAgent: Ticker }
| { PortfolioCustody: PortfolioId }
| { custom: Bytes }
| 'NoData'
): AuthorizationData => {
Expand Down
10 changes: 3 additions & 7 deletions src/types/index.ts
Expand Up @@ -177,6 +177,7 @@ export enum AuthorizationType {
TransferAssetOwnership = 'TransferAssetOwnership',
TransferPrimaryIssuanceAgent = 'TransferPrimaryIssuanceAgent',
JoinIdentity = 'JoinIdentity',
PortfolioCustody = 'PortfolioCustody',
Custom = 'Custom',
NoData = 'NoData',
}
Expand All @@ -185,15 +186,10 @@ export enum AuthorizationType {
* Authorization request data corresponding to type
*/
export type Authorization =
| { type: AuthorizationType.NoData | AuthorizationType.AddMultiSigSigner }
| { type: AuthorizationType.NoData }
| { type: AuthorizationType.JoinIdentity; value: Permission[] }
| {
type: Exclude<
AuthorizationType,
| AuthorizationType.NoData
| AuthorizationType.AddMultiSigSigner
| AuthorizationType.JoinIdentity
>;
type: Exclude<AuthorizationType, AuthorizationType.NoData | AuthorizationType.JoinIdentity>;
value: string;
};

Expand Down
14 changes: 13 additions & 1 deletion src/utils/__tests__/index.ts
Expand Up @@ -1645,8 +1645,20 @@ describe('authorizationToAuthorizationData and authorizationDataToAuthorization'

fakeResult = {
type: AuthorizationType.AddMultiSigSigner,
value: 'someAccount',
};
authorizationData = dsMockUtils.createMockAuthorizationData('AddMultiSigSigner');
authorizationData = dsMockUtils.createMockAuthorizationData({
AddMultiSigSigner: dsMockUtils.createMockAccountId(fakeResult.value),
});

// todo
fakeResult = {
type: AuthorizationType.PortfolioCustody,
value: '',
};
authorizationData = dsMockUtils.createMockAuthorizationData({
PortfolioCustody: dsMockUtils.createMock(fakeResult.value),
});

result = authorizationDataToAuthorization(authorizationData);
expect(result).toEqual(fakeResult);
Expand Down
9 changes: 9 additions & 0 deletions src/utils/index.ts
Expand Up @@ -465,6 +465,7 @@ export function authorizationDataToAuthorization(auth: AuthorizationData): Autho
if (auth.isAddMultiSigSigner) {
return {
type: AuthorizationType.AddMultiSigSigner,
value: accountIdToString(auth.asAddMultiSigSigner),
};
}

Expand All @@ -475,6 +476,14 @@ export function authorizationDataToAuthorization(auth: AuthorizationData): Autho
};
}

// todo
if (auth.isPortfolioCustody) {
return {
type: AuthorizationType.PortfolioCustody,
value: portfolioidtoportfolio,
};
}

if (auth.isJoinIdentity) {
return {
type: AuthorizationType.JoinIdentity,
Expand Down

0 comments on commit c1a704e

Please sign in to comment.