Skip to content

Commit

Permalink
fix: manual merge
Browse files Browse the repository at this point in the history
  • Loading branch information
shuffledex committed Jul 13, 2020
2 parents 91a1357 + 6a4fcbb commit 949a18b
Show file tree
Hide file tree
Showing 16 changed files with 345 additions and 215 deletions.
49 changes: 23 additions & 26 deletions src/Polymesh.ts
Expand Up @@ -28,6 +28,7 @@ import {
Ensured,
ErrorCode,
IdentityWithClaims,
LinkType,
MiddlewareConfig,
SubCallback,
TickerReservationStatus,
Expand All @@ -36,14 +37,17 @@ import {
} from '~/types';
import { ClaimOperation, SignerType } from '~/types/internal';
import {
booleanToBool,
createClaim,
linkTypeToMeshLinkType,
signerToSignatory,
stringToTicker,
tickerToString,
valueToDid,
} from '~/utils';

import { Governance } from './Governance';
import { Link } from './polkadot/polymesh';

interface ConnectParamsBase {
nodeUrl: string;
Expand Down Expand Up @@ -286,11 +290,7 @@ export class Polymesh {
}): Promise<TickerReservation[]> {
const {
context: {
polymeshApi: {
query: {
identity: { links },
},
},
polymeshApi: { rpc },
},
context,
} = this;
Expand All @@ -303,16 +303,17 @@ export class Polymesh {
identity = context.getCurrentIdentity().did;
}

const tickers = await links.entries(
signerToSignatory({ type: SignerType.Identity, value: identity }, context)
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const tickers: Link[] = await (rpc as any).identity.getFilteredLinks(
signerToSignatory({ type: SignerType.Identity, value: identity }, context),
booleanToBool(false, context),
linkTypeToMeshLinkType(LinkType.TickerOwnership, context)
);

const tickerReservations = tickers
.filter(([, data]) => data.link_data.isTickerOwned)
.map(([, data]) => {
const ticker = data.link_data.asTickerOwned;
return new TickerReservation({ ticker: tickerToString(ticker) }, context);
});
const tickerReservations = tickers.map(
link =>
new TickerReservation({ ticker: tickerToString(link.link_data.asTickerOwned) }, context)
);

return tickerReservations;
}
Expand Down Expand Up @@ -426,11 +427,7 @@ export class Polymesh {
public async getSecurityTokens(args?: { did: string | Identity }): Promise<SecurityToken[]> {
const {
context: {
polymeshApi: {
query: {
identity: { links },
},
},
polymeshApi: { rpc },
},
context,
} = this;
Expand All @@ -443,16 +440,16 @@ export class Polymesh {
identity = context.getCurrentIdentity().did;
}

const identityLinks = await links.entries(
signerToSignatory({ type: SignerType.Identity, value: identity }, context)
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const identityLinks: Link[] = await (rpc as any).identity.getFilteredLinks(
signerToSignatory({ type: SignerType.Identity, value: identity }, context),
booleanToBool(false, context),
linkTypeToMeshLinkType(LinkType.AssetOwnership, context)
);

const securityTokens = identityLinks
.filter(([, data]) => data.link_data.isAssetOwned)
.map(([, data]) => {
const ticker = data.link_data.asAssetOwned;
return new SecurityToken({ ticker: tickerToString(ticker) }, context);
});
const securityTokens = identityLinks.map(
data => new SecurityToken({ ticker: tickerToString(data.link_data.asAssetOwned) }, context)
);

return securityTokens;
}
Expand Down
108 changes: 44 additions & 64 deletions src/__tests__/Polymesh.ts
Expand Up @@ -380,22 +380,17 @@ describe('Polymesh Class', () => {

dsMockUtils.configureMocks({ contextOptions: { withSeed: true } });

dsMockUtils.createQueryStub('identity', 'links', {
entries: [
[
['someKey'],
dsMockUtils.createMockLink({
// eslint-disable-next-line @typescript-eslint/camelcase
link_data: dsMockUtils.createMockLinkData({
TickerOwned: dsMockUtils.createMockTicker(fakeTicker),
}),
expiry: dsMockUtils.createMockOption(),
// eslint-disable-next-line @typescript-eslint/camelcase
link_id: dsMockUtils.createMockU64(),
}),
],
],
});
dsMockUtils.createRpcStub('identity', 'getFilteredLinks').returns([
dsMockUtils.createMockLink({
// eslint-disable-next-line @typescript-eslint/camelcase
link_data: dsMockUtils.createMockLinkData({
TickerOwned: dsMockUtils.createMockTicker(fakeTicker),
}),
expiry: dsMockUtils.createMockOption(),
// eslint-disable-next-line @typescript-eslint/camelcase
link_id: dsMockUtils.createMockU64(),
}),
]);

const polymesh = await Polymesh.connect({
nodeUrl: 'wss://some.url',
Expand All @@ -413,22 +408,17 @@ describe('Polymesh Class', () => {

dsMockUtils.configureMocks({ contextOptions: { withSeed: true } });

dsMockUtils.createQueryStub('identity', 'links', {
entries: [
[
['someKey'],
dsMockUtils.createMockLink({
// eslint-disable-next-line @typescript-eslint/camelcase
link_data: dsMockUtils.createMockLinkData({
TickerOwned: dsMockUtils.createMockTicker(fakeTicker),
}),
expiry: dsMockUtils.createMockOption(),
// eslint-disable-next-line @typescript-eslint/camelcase
link_id: dsMockUtils.createMockU64(),
}),
],
],
});
dsMockUtils.createRpcStub('identity', 'getFilteredLinks').returns([
dsMockUtils.createMockLink({
// eslint-disable-next-line @typescript-eslint/camelcase
link_data: dsMockUtils.createMockLinkData({
TickerOwned: dsMockUtils.createMockTicker(fakeTicker),
}),
expiry: dsMockUtils.createMockOption(),
// eslint-disable-next-line @typescript-eslint/camelcase
link_id: dsMockUtils.createMockU64(),
}),
]);

const polymesh = await Polymesh.connect({
nodeUrl: 'wss://some.url',
Expand Down Expand Up @@ -525,22 +515,17 @@ describe('Polymesh Class', () => {

dsMockUtils.configureMocks({ contextOptions: { withSeed: true } });

dsMockUtils.createQueryStub('identity', 'links', {
entries: [
[
['someKey'],
dsMockUtils.createMockLink({
// eslint-disable-next-line @typescript-eslint/camelcase
link_data: dsMockUtils.createMockLinkData({
AssetOwned: dsMockUtils.createMockTicker(fakeTicker),
}),
expiry: dsMockUtils.createMockOption(),
// eslint-disable-next-line @typescript-eslint/camelcase
link_id: dsMockUtils.createMockU64(),
}),
],
],
});
dsMockUtils.createRpcStub('identity', 'getFilteredLinks').returns([
dsMockUtils.createMockLink({
// eslint-disable-next-line @typescript-eslint/camelcase
link_data: dsMockUtils.createMockLinkData({
AssetOwned: dsMockUtils.createMockTicker(fakeTicker),
}),
expiry: dsMockUtils.createMockOption(),
// eslint-disable-next-line @typescript-eslint/camelcase
link_id: dsMockUtils.createMockU64(),
}),
]);

const polymesh = await Polymesh.connect({
nodeUrl: 'wss://some.url',
Expand All @@ -558,22 +543,17 @@ describe('Polymesh Class', () => {

dsMockUtils.configureMocks({ contextOptions: { withSeed: true } });

dsMockUtils.createQueryStub('identity', 'links', {
entries: [
[
['someKey'],
dsMockUtils.createMockLink({
// eslint-disable-next-line @typescript-eslint/camelcase
link_data: dsMockUtils.createMockLinkData({
AssetOwned: dsMockUtils.createMockTicker(fakeTicker),
}),
expiry: dsMockUtils.createMockOption(),
// eslint-disable-next-line @typescript-eslint/camelcase
link_id: dsMockUtils.createMockU64(),
}),
],
],
});
dsMockUtils.createRpcStub('identity', 'getFilteredLinks').returns([
dsMockUtils.createMockLink({
// eslint-disable-next-line @typescript-eslint/camelcase
link_data: dsMockUtils.createMockLinkData({
AssetOwned: dsMockUtils.createMockTicker(fakeTicker),
}),
expiry: dsMockUtils.createMockOption(),
// eslint-disable-next-line @typescript-eslint/camelcase
link_id: dsMockUtils.createMockU64(),
}),
]);

const polymesh = await Polymesh.connect({
nodeUrl: 'wss://some.url',
Expand Down
3 changes: 2 additions & 1 deletion src/api/entities/Identity/index.ts
Expand Up @@ -4,6 +4,7 @@ import { SecurityToken } from '~/api/entities/SecurityToken';
import { TickerReservation } from '~/api/entities/TickerReservation';
import { Entity, PolymeshError } from '~/base';
import { Context } from '~/context';
import { CddStatus } from '~/polkadot';
import {
ErrorCode,
isCddProviderRole,
Expand Down Expand Up @@ -191,7 +192,7 @@ export class Identity extends Entity<UniqueIdentifiers> {
} = this;
const identityId = stringToIdentityId(did, context);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const result = await (rpc as any).identity.isIdentityHasValidCdd(identityId);
const result: CddStatus = await (rpc as any).identity.isIdentityHasValidCdd(identityId);
return cddStatusToBoolean(result);
}

Expand Down
26 changes: 18 additions & 8 deletions src/api/entities/SecurityToken/Documents.ts
@@ -1,8 +1,15 @@
import { setTokenDocuments, SetTokenDocumentsParams } from '~/api/procedures';
import { Namespace, TransactionQueue } from '~/base';
import { TokenDocument } from '~/types';
import { Link } from '~/polkadot/polymesh';
import { LinkType, TokenDocument } from '~/types';
import { SignerType } from '~/types/internal';
import { documentToTokenDocument, signerToSignatory, tickerToDid } from '~/utils';
import {
booleanToBool,
documentToTokenDocument,
linkTypeToMeshLinkType,
signerToSignatory,
tickerToDid,
} from '~/utils';

import { SecurityToken } from './';

Expand Down Expand Up @@ -31,18 +38,21 @@ export class Documents extends Namespace<SecurityToken> {
public async get(): Promise<TokenDocument[]> {
const {
context: {
polymeshApi: { query },
polymeshApi: { rpc },
},
context,
parent: { ticker },
} = this;

const links = await query.identity.links.entries(
signerToSignatory({ type: SignerType.Identity, value: tickerToDid(ticker) }, context)
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const links: Link[] = await (rpc as any).identity.getFilteredLinks(
signerToSignatory({ type: SignerType.Identity, value: tickerToDid(ticker) }, context),
booleanToBool(false, context),
linkTypeToMeshLinkType(LinkType.DocumentOwnership, context)
);

return links
.filter(([, { link_data: linkData }]) => linkData.isDocumentOwned)
.map(([, { link_data: linkData }]) => documentToTokenDocument(linkData.asDocumentOwned));
return links.map(({ link_data: linkData }) =>
documentToTokenDocument(linkData.asDocumentOwned)
);
}
}
43 changes: 16 additions & 27 deletions src/api/entities/SecurityToken/__tests__/Documents.ts
Expand Up @@ -4,7 +4,6 @@ import { SecurityToken } from '~/api/entities';
import { setTokenDocuments } from '~/api/procedures';
import { Namespace, TransactionQueue } from '~/base';
import { dsMockUtils, entityMockUtils } from '~/testUtils/mocks';
import { tuple } from '~/types/utils';
import * as utilsModule from '~/utils';

import { Documents } from '../Documents';
Expand Down Expand Up @@ -89,37 +88,27 @@ describe('Documents class', () => {
})
);

const signatory = dsMockUtils.createMockSignatory({
Identity: dsMockUtils.createMockIdentityId('tokenDid'),
});
const ids = [dsMockUtils.createMockU64(1), dsMockUtils.createMockU64(2)];
/* eslint-disable @typescript-eslint/camelcase */
const linkEntries = [
tuple(
[signatory, ids[0]],
dsMockUtils.createMockLink({
link_data: dsMockUtils.createMockLinkData({
DocumentOwned: rawDocuments[0],
}),
expiry: dsMockUtils.createMockOption(),
link_id: ids[0],
})
),
tuple(
[signatory, ids[1]],
dsMockUtils.createMockLink({
link_data: dsMockUtils.createMockLinkData({
DocumentOwned: rawDocuments[1],
}),
expiry: dsMockUtils.createMockOption(),
link_id: ids[1],
})
),
dsMockUtils.createMockLink({
link_data: dsMockUtils.createMockLinkData({
DocumentOwned: rawDocuments[0],
}),
expiry: dsMockUtils.createMockOption(),
link_id: ids[0],
}),
dsMockUtils.createMockLink({
link_data: dsMockUtils.createMockLinkData({
DocumentOwned: rawDocuments[1],
}),
expiry: dsMockUtils.createMockOption(),
link_id: ids[1],
}),
];
/* eslint-enable @typescript-eslint/camelcase */
dsMockUtils.createQueryStub('identity', 'links', {
entries: linkEntries,
});

dsMockUtils.createRpcStub('identity', 'getFilteredLinks').returns(linkEntries);

const context = dsMockUtils.getContextInstance();
const token = entityMockUtils.getSecurityTokenInstance();
Expand Down
8 changes: 4 additions & 4 deletions src/api/procedures/__tests__/modifyClaims.ts
Expand Up @@ -128,12 +128,12 @@ describe('modifyClaims procedure', () => {

const rawAddClaimItems = [
{
target: rawSomeDid,
target: rawOtherDid,
claim: rawCddClaim,
expiry: null,
},
{
target: rawOtherDid,
target: rawSomeDid,
claim: rawCddClaim,
expiry: null,
},
Expand Down Expand Up @@ -234,12 +234,12 @@ describe('modifyClaims procedure', () => {

const rawRevokeClaimItems = [
{
target: rawSomeDid,
target: rawOtherDid,
claim: rawCddClaim,
expiry: null,
},
{
target: rawOtherDid,
target: rawSomeDid,
claim: rawCddClaim,
expiry: null,
},
Expand Down

0 comments on commit 949a18b

Please sign in to comment.