Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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,
},
Comment on lines +128 to +131
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we know for sure this is going to be the runtime version with which this is released?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, we don't. The current release of KILT won't have the provider pallet deployed. The provider template runtime does. Maybe I should move these definitions to the new repo, and add it here only when it's going to be included? Otherwise it's really difficult to test this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mhh yeah maybe this is the way then.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Metadata V15 is not out yet. V14 only exposes stuff that is directly used by the runtime. The only way to make it work would be to expose a config pallet which exposes to metadata whatever stuff it is passed to its Config trait. Not sure what the downsides of that would be. For one definitely WASM size.

]

// 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',
],
},
}