Skip to content

Commit

Permalink
feat: DIP provider type definitions (#743)
Browse files Browse the repository at this point in the history
* Draft PR commit

* feat: DID merkle proofs (#744)

* Add type definitions for the new dipSender runtime API

* Update types with new spec 11000

* Update type definitions

* Change keyIds input type

* chore: support parties renaming (#751)

Rename producer -> provider and receiver -> consumer

* chore: update types for additional linked info (#759)

Update types

* feat: add `dipProvider` pallet for DID extrinsic signing (#764)

Add dipProvider pallet for DID extrinsic signing

* chore: set package version to 0.33.2-dip-0

* feat: error management (#802)

* Error types

* Update DIP provider runtime APIs types

* Update packages version

* feat: add versioning support (#806)

* Add version type

* Set package versions

* Fix identity commitment version type

* Update lock file

* Changes based on KILTprotocol/kilt-node@1e338a4

* Set version to DIP version

* Changes based on KILTprotocol/kilt-node@e23dbcc

* Update type definitions

* Revert package versions change

* Revert yarn.lock changes

* Set version to dip-2

* Revert package.json changes

* Add runtime calls to Peregrine runtimes
  • Loading branch information
ntn-x2 authored Dec 13, 2023
1 parent f8ac453 commit 62c68b5
Show file tree
Hide file tree
Showing 4 changed files with 132 additions and 2 deletions.
1 change: 1 addition & 0 deletions packages/did/src/DidDetails/FullDidDetails.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ const methodMapping: Record<string, VerificationKeyRelationship | undefined> = {
'did.submitDidCall': undefined,
didLookup: 'authentication',
publicCredentials: 'assertionMethod',
dipProvider: 'authentication',
web3Names: 'authentication',
}

Expand Down
20 changes: 18 additions & 2 deletions packages/type-definitions/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,14 @@ import { types10410 } from './types_10410.js'
import { types10720 } from './types_10720.js'
import { types10800 } from './types_10800.js'
import { types10900 } from './types_10900.js'
import { types11200 } from './types_11200.js'

// Custom runtime calls

import { calls as didCalls } from './runtime/did.js'
import { calls as stakingCalls } from './runtime/staking.js'
import { calls as publicCredentialsCalls } from './runtime/publicCredentials.js'
import { calls as dipProviderCalls } from './runtime/dipProvider.js'

export {
types8,
Expand All @@ -50,12 +52,13 @@ export {
types10720,
types10800,
types10900,
types10900 as types,
types11200 as types,
}

export { calls as didCalls } from './runtime/did.js'
export { calls as stakingCalls } from './runtime/staking.js'
export { calls as publicCredentialsCalls } from './runtime/publicCredentials.js'
export { calls as dipProviderCalls } from './runtime/dipProvider.js'

const defaultTypesBundle: OverrideVersionedType[] = [
{
Expand Down Expand Up @@ -119,9 +122,13 @@ const defaultTypesBundle: OverrideVersionedType[] = [
types: types10800,
},
{
minmax: [10900, undefined],
minmax: [10900, 11199],
types: types10900,
},
{
minmax: [11200, undefined],
types: types11200,
},
]

// Current runtime version: 10730
Expand All @@ -148,6 +155,7 @@ export const typesBundle: OverrideBundleType = {
...didCalls,
...stakingCalls,
...publicCredentialsCalls,
...dipProviderCalls,
},
types: defaultTypesBundle,
},
Expand All @@ -156,6 +164,7 @@ export const typesBundle: OverrideBundleType = {
...didCalls,
...stakingCalls,
...publicCredentialsCalls,
...dipProviderCalls,
},
types: defaultTypesBundle,
},
Expand All @@ -174,6 +183,13 @@ export const typesBundle: OverrideBundleType = {
},
types: defaultTypesBundle,
},
'DIP provider dev': {
runtime: {
...didCalls,
...dipProviderCalls,
},
types: defaultTypesBundle,
},
Development: {
runtime: {
...didCalls,
Expand Down
29 changes: 29 additions & 0 deletions packages/type-definitions/src/runtime/dipProvider.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/**
* Copyright (c) 2018-2023, BOTLabs GmbH.
*
* This source code is licensed under the BSD 4-Clause "Original" license
* found in the LICENSE file in the root directory of this source tree.
*/

import type { DefinitionsCall } from '@polkadot/types/types'

export const calls: DefinitionsCall = {
DipProvider: [
{
methods: {
generate_proof: {
description:
'Generate a Merkle proof for the DIP protocol for the specified request parameters.',
params: [
{
name: 'request',
type: 'DipProofRequest',
},
],
type: 'Result<CompleteMerkleProof, RuntimeApiDipProofError>',
},
},
version: 1,
},
],
}
84 changes: 84 additions & 0 deletions packages/type-definitions/src/types_11200.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
/**
* Copyright (c) 2018-2023, BOTLabs GmbH.
*
* This source code is licensed under the BSD 4-Clause "Original" license
* found in the LICENSE file in the root directory of this source tree.
*/

import type { RegistryTypes } from '@polkadot/types/types'

import { types10900 } from './types_10900.js'

export const types11200: RegistryTypes = {
...types10900,
IdentityCommitmentVersion: 'u16',
// DipProvider state_call
DipProofRequest: {
identifier: 'AccountId32',
version: 'IdentityCommitmentVersion',
keys: 'Vec<Hash>',
accounts: 'Vec<PalletDidLookupLinkableAccountLinkableAccountId>',
shouldIncludeWeb3Name: 'bool',
},
CompleteMerkleProof: {
root: 'MerkleRoot',
proof: 'MerkleProof',
},
MerkleRoot: 'Hash',
MerkleProof: {
blinded: 'BlindedLeaves',
revealed: 'RevealedLeaves',
},
BlindedLeaves: 'Vec<BlindedValue>',
BlindedValue: 'Bytes',
RevealedLeaves: 'Vec<RevealedLeaf>',
RevealedLeaf: {
_enum: {
DidKey: '(DidKeyMerkleKey, DidKeyMerkleValue)',
Web3Name: '(Web3NameMerkleKey, Web3NameMerkleValue)',
LinkedAccount: '(LinkedAccountMerkleKey, LinkedAccountMerkleValue)',
},
},
DidKeyMerkleKey: '(KeyId, KeyRelationship)',
KeyId: 'Hash',
KeyRelationship: {
_enum: {
Encryption: 'Null',
Verification: 'VerificationRelationship',
},
},
VerificationRelationship: {
_enum: [
'Authentication',
'CapabilityDelegation',
'CapabilityInvocation',
'AssertionMethod',
],
},
DidKeyMerkleValue: 'DidDidDetailsDidPublicKeyDetails',
Web3NameMerkleKey: 'Text',
Web3NameMerkleValue: 'BlockNumber',
LinkedAccountMerkleKey: 'PalletDidLookupLinkableAccountLinkableAccountId',
LinkedAccountMerkleValue: 'Null',
RuntimeApiDipProofError: {
_enum: {
IdentityProvider: 'LinkedDidIdentityProviderError',
MerkleProof: 'DidMerkleProofError',
},
},
LinkedDidIdentityProviderError: {
_enum: ['DidNotFound', 'DidDeleted', 'Internal'],
},
DidIdentityProviderError: {
_enum: ['DidNotFound', 'Internal'],
},
DidMerkleProofError: {
_enum: [
'UnsupportedVersion',
'KeyNotFound',
'LinkedAccountNotFound',
'Web3NameNotFound',
'Internal',
],
},
}

0 comments on commit 62c68b5

Please sign in to comment.