Skip to content

Commit

Permalink
Merge pull request #87 from PolymathNetwork/feat/update-asset-type
Browse files Browse the repository at this point in the history
feat: update to latest polymesh specification
  • Loading branch information
monitz87 committed May 9, 2020
2 parents b021b8c + 49f28dc commit d265776
Show file tree
Hide file tree
Showing 25 changed files with 185 additions and 119 deletions.
13 changes: 10 additions & 3 deletions src/Polymesh.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,14 @@ import { BigNumber } from 'bignumber.js';
import { polymesh } from 'polymesh-types/definitions';

import { Identity, SecurityToken, TickerReservation } from '~/api/entities';
import { addClaims, AddClaimsParams, reserveTicker, ReserveTickerParams, transferPolyX, TransferPolyXParams } from '~/api/procedures';
import {
addClaims,
AddClaimsParams,
reserveTicker,
ReserveTickerParams,
transferPolyX,
TransferPolyXParams,
} from '~/api/procedures';
import { PolymeshError, TransactionQueue } from '~/base';
import { Context } from '~/context';
import { ErrorCode } from '~/types';
Expand Down Expand Up @@ -275,9 +282,9 @@ export class Polymesh {
);

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

Expand Down
4 changes: 2 additions & 2 deletions src/__tests__/Polymesh.ts
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@ describe('Polymesh Class', () => {
polkadotMockUtils.createMockLink({
// eslint-disable-next-line @typescript-eslint/camelcase
link_data: polkadotMockUtils.createMockLinkData({
TokenOwned: polkadotMockUtils.createMockTicker(fakeTicker),
AssetOwned: polkadotMockUtils.createMockTicker(fakeTicker),
}),
expiry: polkadotMockUtils.createMockOption(),
// eslint-disable-next-line @typescript-eslint/camelcase
Expand Down Expand Up @@ -378,7 +378,7 @@ describe('Polymesh Class', () => {
polkadotMockUtils.createMockLink({
// eslint-disable-next-line @typescript-eslint/camelcase
link_data: polkadotMockUtils.createMockLinkData({
TokenOwned: polkadotMockUtils.createMockTicker(fakeTicker),
AssetOwned: polkadotMockUtils.createMockTicker(fakeTicker),
}),
expiry: polkadotMockUtils.createMockOption(),
// eslint-disable-next-line @typescript-eslint/camelcase
Expand Down
16 changes: 8 additions & 8 deletions src/api/entities/Identity/__tests__/Authorizations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,21 +43,21 @@ describe('Authorizations class', () => {
{
authId: new BigNumber(1),
expiry: null,
data: { type: AuthorizationType.TransferTokenOwnership, value: 'myTicker' },
data: { type: AuthorizationType.TransferAssetOwnership, value: 'myTicker' },
targetDid: did,
issuerDid: 'alice',
},
{
authId: new BigNumber(2),
expiry: new Date('10/14/3040'),
data: { type: AuthorizationType.TransferTokenOwnership, value: 'otherTicker' },
data: { type: AuthorizationType.TransferAssetOwnership, value: 'otherTicker' },
targetDid: did,
issuerDid: 'bob',
},
{
authId: new BigNumber(3),
expiry: new Date('10/14/1987'), // expired
data: { type: AuthorizationType.TransferTokenOwnership, value: 'otherTicker' },
data: { type: AuthorizationType.TransferAssetOwnership, value: 'otherTicker' },
targetDid: did,
issuerDid: 'bob',
},
Expand All @@ -72,7 +72,7 @@ describe('Authorizations class', () => {
expiry ? polkadotMockUtils.createMockMoment(expiry.getTime()) : expiry
),
authorization_data: polkadotMockUtils.createMockAuthorizationData({
TransferTokenOwnership: polkadotMockUtils.createMockTicker(data.value),
TransferAssetOwnership: polkadotMockUtils.createMockTicker(data.value),
}),
authorized_by: polkadotMockUtils.createMockSignatory({
Identity: polkadotMockUtils.createMockIdentityId(issuerDid),
Expand Down Expand Up @@ -115,21 +115,21 @@ describe('Authorizations class', () => {
{
authId: new BigNumber(1),
expiry: null,
data: { type: AuthorizationType.TransferTokenOwnership, value: 'myTicker' },
data: { type: AuthorizationType.TransferAssetOwnership, value: 'myTicker' },
targetDid: 'alice',
issuerDid: did,
},
{
authId: new BigNumber(2),
expiry: new Date('10/14/3040'),
data: { type: AuthorizationType.TransferTokenOwnership, value: 'otherTicker' },
data: { type: AuthorizationType.TransferAssetOwnership, value: 'otherTicker' },
targetDid: 'bob',
issuerDid: did,
},
{
authId: new BigNumber(3),
expiry: new Date('10/14/1987'), // expired
data: { type: AuthorizationType.TransferTokenOwnership, value: 'otherTicker' },
data: { type: AuthorizationType.TransferAssetOwnership, value: 'otherTicker' },
targetDid: 'charlie',
issuerDid: did,
},
Expand All @@ -141,7 +141,7 @@ describe('Authorizations class', () => {
expiry ? polkadotMockUtils.createMockMoment(expiry.getTime()) : expiry
),
authorization_data: polkadotMockUtils.createMockAuthorizationData({
TransferTokenOwnership: polkadotMockUtils.createMockTicker(data.value),
TransferAssetOwnership: polkadotMockUtils.createMockTicker(data.value),
}),
authorized_by: polkadotMockUtils.createMockSignatory({
Identity: polkadotMockUtils.createMockIdentityId(did),
Expand Down
2 changes: 1 addition & 1 deletion src/api/entities/SecurityToken/__tests__/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ describe('SecurityToken class', () => {
const totalSupply = 1000;
const isDivisible = true;
const owner = '0x0wn3r';
const assetType = 'Equity';
const assetType = 'EquityCommon';

const context = polkadotMockUtils.getContextInstance();
const securityToken = new SecurityToken({ ticker }, context);
Expand Down
4 changes: 2 additions & 2 deletions src/api/entities/TickerReservation/__tests__/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ describe('TickerReservation class', () => {
/* eslint-disable @typescript-eslint/camelcase */
owner_did: polkadotMockUtils.createMockIdentityId(ownerDid),
name: polkadotMockUtils.createMockTokenName('someToken'),
asset_type: polkadotMockUtils.createMockAssetType('Equity'),
asset_type: polkadotMockUtils.createMockAssetType('EquityCommon'),
divisible: polkadotMockUtils.createMockBool(true),
link_id: polkadotMockUtils.createMockU64(3),
total_supply: polkadotMockUtils.createMockBalance(1000),
Expand Down Expand Up @@ -216,7 +216,7 @@ describe('TickerReservation class', () => {
name: 'TEST',
totalSupply: new BigNumber(100),
isDivisible: true,
tokenType: KnownTokenType.Equity,
tokenType: KnownTokenType.EquityCommon,
tokenIdentifiers: [{ type: TokenIdentifierType.Isin, value: '12345' }],
fundingRound: 'Series A',
};
Expand Down
8 changes: 5 additions & 3 deletions src/api/entities/TickerReservation/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
} from '~/api/procedures/createSecurityToken';
import { Entity, TransactionQueue } from '~/base';
import { Context } from '~/context';
import { identityIdToString, momentToDate } from '~/utils';
import { identityIdToString, momentToDate, stringToTicker } from '~/utils';

import { TickerReservationDetails, TickerReservationStatus } from './types';

Expand Down Expand Up @@ -64,10 +64,12 @@ export class TickerReservation extends Entity<UniqueIdentifiers> {
context,
} = this;

const rawTicker = stringToTicker(ticker, context);

// TODO: queryMulti
const [{ owner: tickerOwner, expiry }, { owner_did: tokenOwner }] = await Promise.all([
asset.tickers(ticker),
asset.tokens(ticker),
asset.tickers(rawTicker),
asset.tokens(rawTicker),
]);

const tickerOwned = !tickerOwner.isEmpty;
Expand Down
6 changes: 3 additions & 3 deletions src/api/procedures/__tests__/consumeAuthorizationRequests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ describe('consumeAuthorizationRequests procedure', () => {
targetDid: 'targetDid1',
issuerDid: 'issuerDid1',
data: {
type: AuthorizationType.TransferTokenOwnership,
type: AuthorizationType.TransferAssetOwnership,
value: 'someTicker1',
},
},
Expand All @@ -61,7 +61,7 @@ describe('consumeAuthorizationRequests procedure', () => {
targetDid: 'targetDid2',
issuerDid: 'issuerDid2',
data: {
type: AuthorizationType.TransferTokenOwnership,
type: AuthorizationType.TransferAssetOwnership,
value: 'someTicker2',
},
},
Expand All @@ -71,7 +71,7 @@ describe('consumeAuthorizationRequests procedure', () => {
targetDid: 'targetDid3',
issuerDid: 'issuerDid3',
data: {
type: AuthorizationType.TransferTokenOwnership,
type: AuthorizationType.TransferAssetOwnership,
value: 'someTicker3',
},
},
Expand Down
4 changes: 2 additions & 2 deletions src/api/procedures/__tests__/createSecurityToken.ts
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ describe('createSecurityToken procedure', () => {
name = 'someName';
totalSupply = new BigNumber(100);
isDivisible = true;
tokenType = KnownTokenType.Equity;
tokenType = KnownTokenType.EquityCommon;
tokenIdentifiers = [
{
type: TokenIdentifierType.Isin,
Expand Down Expand Up @@ -183,7 +183,7 @@ describe('createSecurityToken procedure', () => {
returnValue: polkadotMockUtils.createMockTickerRegistrationConfig(),
});

transaction = polkadotMockUtils.createTxStub('asset', 'createToken');
transaction = polkadotMockUtils.createTxStub('asset', 'createAsset');

mockContext = polkadotMockUtils.getContextInstance();

Expand Down
2 changes: 1 addition & 1 deletion src/api/procedures/__tests__/modifyToken.ts
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ describe('modifyToken procedure', () => {
const proc = procedureMockUtils.getInstance<Params, SecurityToken>();
proc.context = mockContext;

const transaction = polkadotMockUtils.createTxStub('asset', 'renameToken');
const transaction = polkadotMockUtils.createTxStub('asset', 'renameAsset');

const result = await prepareModifyToken.call(proc, {
ticker,
Expand Down
2 changes: 1 addition & 1 deletion src/api/procedures/__tests__/reserveTicker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ describe('tickerReservationResolver', () => {
});

beforeEach(() => {
findEventRecordStub.returns(polkadotMockUtils.createMockEventRecord([ticker]));
findEventRecordStub.returns(polkadotMockUtils.createMockEventRecord(['someDid', ticker]));
});

afterEach(() => {
Expand Down
4 changes: 2 additions & 2 deletions src/api/procedures/__tests__/transferTokenOwnership.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ describe('transferTokenOwnership procedure', () => {
Identity: polkadotMockUtils.createMockIdentityId(did),
});
rawAuthorizationData = polkadotMockUtils.createMockAuthorizationData({
TransferTokenOwnership: polkadotMockUtils.createMockTicker(ticker),
TransferAssetOwnership: polkadotMockUtils.createMockTicker(ticker),
});
rawMoment = polkadotMockUtils.createMockMoment(expiry.getTime());
args = {
Expand Down Expand Up @@ -80,7 +80,7 @@ describe('transferTokenOwnership procedure', () => {
.withArgs({ type: SignerType.Identity, value: did }, mockContext)
.returns(rawSignatory);
authorizationToAuthorizationDataStub
.withArgs({ type: AuthorizationType.TransferTokenOwnership, value: ticker }, mockContext)
.withArgs({ type: AuthorizationType.TransferAssetOwnership, value: ticker }, mockContext)
.returns(rawAuthorizationData);
dateToMomentStub.withArgs(expiry, mockContext).returns(rawMoment);
});
Expand Down
2 changes: 1 addition & 1 deletion src/api/procedures/createSecurityToken.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ export async function prepareCreateSecurityToken(
const rawFundingRound = fundingRound ? stringToFundingRoundName(fundingRound, context) : null;

this.addTransaction(
tx.asset.createToken,
tx.asset.createAsset,
{
fee,
},
Expand Down
2 changes: 1 addition & 1 deletion src/api/procedures/modifyToken.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ export async function prepareModifyToken(
});
}

this.addTransaction(tx.asset.renameToken, {}, rawTicker, stringToTokenName(newName, context));
this.addTransaction(tx.asset.renameAsset, {}, rawTicker, stringToTokenName(newName, context));
}

if (newFundingRound) {
Expand Down
2 changes: 1 addition & 1 deletion src/api/procedures/reserveTicker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export const createTickerReservationResolver = (context: Context) => (
): TickerReservation => {
const eventRecord = findEventRecord(receipt, 'asset', 'TickerRegistered');
const data = eventRecord.event.data;
const newTicker = tickerToString(data[0] as Ticker);
const newTicker = tickerToString(data[1] as Ticker);

return new TickerReservation({ ticker: newTicker }, context);
};
Expand Down
2 changes: 1 addition & 1 deletion src/api/procedures/transferTokenOwnership.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export async function prepareTransferTokenOwnership(

const rawSignatory = signerToSignatory({ type: SignerType.Identity, value: did }, context);
const rawAuthorizationData = authorizationToAuthorizationData(
{ type: AuthorizationType.TransferTokenOwnership, value: ticker },
{ type: AuthorizationType.TransferAssetOwnership, value: ticker },
context
);
const rawExpiry = expiry ? dateToMoment(expiry, context) : null;
Expand Down
5 changes: 4 additions & 1 deletion src/polkadot/augment-api-query.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1116,7 +1116,7 @@ declare module '@polkadot/api/types/storage' {
| 'AssetRegisterTicker'
| 'AssetIssue'
| 'AssetAddDocument'
| 'AssetCreateToken'
| 'AssetCreateAsset'
| 'DividendNew'
| 'ComplianceManagerAddActiveRule'
| 'IdentityRegisterDid'
Expand Down Expand Up @@ -1465,6 +1465,9 @@ declare module '@polkadot/api/types/storage' {
>;
};
statistic: {
/**
* Number of investor per asset.
**/
investorCountPerAsset: AugmentedQuery<
ApiType,
(arg: Ticker | string | Uint8Array) => Observable<Counter>
Expand Down

0 comments on commit d265776

Please sign in to comment.