Skip to content

Commit

Permalink
Merge pull request #390 from docknetwork/feat/expose-trust-registry-t…
Browse files Browse the repository at this point in the history
…x-methods

Expose trust registry tx methods
  • Loading branch information
olegnn authored Feb 9, 2024
2 parents 47fdd23 + 294516a commit c4cd811
Show file tree
Hide file tree
Showing 3 changed files with 165 additions and 63 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@docknetwork/sdk",
"version": "7.3.0",
"version": "7.3.1",
"main": "index.js",
"license": "MIT",
"repository": {
Expand Down
224 changes: 163 additions & 61 deletions src/modules/trust-registry.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,7 @@ export default class TrustRegistryModule {
* @param name
* @param govFramework
* @param signingKeyRef
* @param nonce
* @param didModule
* @param params
* @param nonceOrDidModule
* @param waitForFinalization
* @param params
* @returns {Promise<null>}
Expand All @@ -38,54 +36,114 @@ export default class TrustRegistryModule {
name,
govFramework,
signingKeyRef,
{ nonce = undefined, didModule = undefined } = {},
nonceOrDidModule,
waitForFinalization = true,
params = {},
) {
const tx = await this.initOrUpdateTx(
convenerDid,
registryId,
name,
govFramework,
signingKeyRef,
nonceOrDidModule,
);
return this.signAndSend(
tx,
waitForFinalization,
params,
);
}

/**
* Initializes Trust Registry with the supplied parameters.
* @param convenerDid
* @param registryId
* @param name
* @param govFramework
* @param signingKeyRef
* @param nonceOrDidModule
* @param waitForFinalization
* @param params
* @returns {Promise<null>}
*/
async initOrUpdateTx(
convenerDid,
registryId,
name,
govFramework,
signingKeyRef,
{ nonce = undefined, didModule = undefined } = {},
) {
const [convenerHexDid, lastNonce] = await this.getActorDidAndNonce(
convenerDid,
{ nonce, didModule },
);

return convenerHexDid.changeState(
this.api,
this.module.initOrUpdateTrustRegistry,
'InitOrUpdateTrustRegistry',
{
registryId,
name,
govFramework,
nonce: lastNonce,
},
signingKeyRef,
);
}

/**
* Updates schema metadatas in the registry.
* @param convenerOrIssuerOrVerifierDid
* @param registryId
* @param schemas
* @param signingKeyRef
* @param nonceOrDidModule
* @param waitForFinalization
* @param params
* @returns {Promise<null>}
*/
async setSchemasMetadata(
convenerOrIssuerOrVerifierDid,
registryId,
schemas,
signingKeyRef,
nonceOrDidModule,
waitForFinalization = true,
params = {},
) {
const tx = await this.setSchemasMetadataTx(
convenerOrIssuerOrVerifierDid,
registryId,
schemas,
signingKeyRef,
nonceOrDidModule,
);
return this.signAndSend(
convenerHexDid.changeState(
this.api,
this.module.initOrUpdateTrustRegistry,
'InitOrUpdateTrustRegistry',
{
registryId,
name,
govFramework,
nonce: lastNonce,
},
signingKeyRef,
),
tx,
waitForFinalization,
params,
);
}

/**
* Updates schemas metadatas in the registry.
* Creates a transaction to update schema metadatas in the registry.
* @param convenerOrIssuerOrVerifierDid
* @param registryId
* @param schemas
* @param signingKeyRef
* @param nonce
* @param didModule
* @param params
* @param waitForFinalization
* @param params
* @returns {Promise<null>}
*/
async setSchemasMetadata(
async setSchemasMetadataTx(
convenerOrIssuerOrVerifierDid,
registryId,
schemas,
signingKeyRef,
{ nonce = undefined, didModule = undefined } = {},
waitForFinalization = true,
params = {},
) {
const [convenerOrIssuerOrVerifierHexDid, lastNonce] = await this.getActorDidAndNonce(convenerOrIssuerOrVerifierDid, {
nonce,
Expand All @@ -96,16 +154,12 @@ export default class TrustRegistryModule {
schemas,
);

return this.signAndSend(
convenerOrIssuerOrVerifierHexDid.changeState(
this.api,
this.module.setSchemasMetadata,
'SetSchemasMetadata',
{ registryId, schemas, nonce: lastNonce },
signingKeyRef,
),
waitForFinalization,
params,
return convenerOrIssuerOrVerifierHexDid.changeState(
this.api,
this.module.setSchemasMetadata,
'SetSchemasMetadata',
{ registryId, schemas, nonce: lastNonce },
signingKeyRef,
);
}

Expand All @@ -115,9 +169,7 @@ export default class TrustRegistryModule {
* @param registryId
* @param issuers
* @param signingKeyRef
* @param nonce
* @param didModule
* @param params
* @param nonceOrDidModule
* @param waitForFinalization
* @param params
* @returns {Promise<null>}
Expand All @@ -127,9 +179,39 @@ export default class TrustRegistryModule {
registryId,
issuers,
signingKeyRef,
{ nonce = undefined, didModule = undefined } = {},
nonceOrDidModule,
waitForFinalization = true,
params = {},
) {
const tx = await this.suspendIssuersTx(
convenerDid,
registryId,
issuers,
signingKeyRef,
nonceOrDidModule,
);
return this.signAndSend(
tx,
waitForFinalization,
params,
);
}

/**
* Suspends issuers in the registry.
* @param convenerDid
* @param registryId
* @param issuers
* @param signingKeyRef
* @param nonceOrDidModule
* @returns {Promise<null>}
*/
async suspendIssuersTx(
convenerDid,
registryId,
issuers,
signingKeyRef,
{ nonce = undefined, didModule = undefined } = {},
) {
const [convenerHexDid, lastNonce] = await this.getActorDidAndNonce(
convenerDid,
Expand All @@ -141,16 +223,12 @@ export default class TrustRegistryModule {
hexIssuers.add(typedHexDID(this.api, issuer));
}

return this.signAndSend(
convenerHexDid.changeState(
this.api,
this.module.suspendIssuers,
'SuspendIssuers',
{ registryId, issuers: hexIssuers, nonce: lastNonce },
signingKeyRef,
),
waitForFinalization,
params,
return convenerHexDid.changeState(
this.api,
this.module.suspendIssuers,
'SuspendIssuers',
{ registryId, issuers: hexIssuers, nonce: lastNonce },
signingKeyRef,
);
}

Expand All @@ -160,9 +238,7 @@ export default class TrustRegistryModule {
* @param registryId
* @param issuers
* @param signingKeyRef
* @param nonce
* @param didModule
* @param params
* @param nonceOrDidModule
* @param waitForFinalization
* @param params
* @returns {Promise<null>}
Expand All @@ -172,9 +248,39 @@ export default class TrustRegistryModule {
registryId,
issuers,
signingKeyRef,
{ nonce = undefined, didModule = undefined } = {},
nonceOrDidModule,
waitForFinalization = true,
params = {},
) {
const tx = await this.unsuspendIssuersTx(
convenerDid,
registryId,
issuers,
signingKeyRef,
nonceOrDidModule,
);
return this.signAndSend(
tx,
waitForFinalization,
params,
);
}

/**
* Unsuspends issuers in the registry.
* @param convenerDid
* @param registryId
* @param issuers
* @param signingKeyRef
* @param nonceOrDidModule
* @returns {Promise<null>}
*/
async unsuspendIssuersTx(
convenerDid,
registryId,
issuers,
signingKeyRef,
{ nonce = undefined, didModule = undefined } = {},
) {
const [convenerHexDid, lastNonce] = await this.getActorDidAndNonce(
convenerDid,
Expand All @@ -186,16 +292,12 @@ export default class TrustRegistryModule {
hexIssuers.add(typedHexDID(this.api, issuer));
}

return this.signAndSend(
convenerHexDid.changeState(
this.api,
this.module.unsuspendIssuers,
'UnsuspendIssuers',
{ registryId, issuers: hexIssuers, nonce: lastNonce },
signingKeyRef,
),
waitForFinalization,
params,
return convenerHexDid.changeState(
this.api,
this.module.unsuspendIssuers,
'UnsuspendIssuers',
{ registryId, issuers: hexIssuers, nonce: lastNonce },
signingKeyRef,
);
}

Expand Down
2 changes: 1 addition & 1 deletion src/utils/did/typed-did/dock-did-or-did-method-key.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class DockDidOrDidMethodKey {
}

/**
* Instantiates `DockDid` or `DockDidMethodKey` from a did or did method key object received from the substrate side.
* Instantiates `DockDid` or `DidMethodKey` from a did or did method key object received from the substrate side.
* @param {object} did - substrate did or did method key
* @returns {this}
*/
Expand Down

0 comments on commit c4cd811

Please sign in to comment.