diff --git a/packages/core/src/attestation/Attestation.chain.ts b/packages/core/src/attestation/Attestation.chain.ts index d5ff3fd66..23bb19857 100644 --- a/packages/core/src/attestation/Attestation.chain.ts +++ b/packages/core/src/attestation/Attestation.chain.ts @@ -6,13 +6,9 @@ */ import type { Option } from '@polkadot/types' -import type { - IAttestation, - ICredential, - KiltAddress, -} from '@kiltprotocol/types' +import type { IAttestation, ICredential } from '@kiltprotocol/types' import { ConfigService } from '@kiltprotocol/config' -import { Utils as DidUtils } from '@kiltprotocol/did' +import { Chain as DidChain } from '@kiltprotocol/did' import type { AttestationAttestationsAttestationDetails } from '@kiltprotocol/augment-api' const log = ConfigService.LoggingFactory.getLogger('Attestation') @@ -35,9 +31,7 @@ export function fromChain( const attestation: IAttestation = { claimHash, cTypeHash: chainAttestation.ctypeHash.toHex(), - owner: DidUtils.getFullDidUri( - chainAttestation.attester.toString() as KiltAddress - ), + owner: DidChain.uriFromChain(chainAttestation.attester), delegationId: delegationId || null, revoked: chainAttestation.revoked.valueOf(), } diff --git a/packages/core/src/ctype/CType.chain.ts b/packages/core/src/ctype/CType.chain.ts index ce2d54937..a187d2cf7 100644 --- a/packages/core/src/ctype/CType.chain.ts +++ b/packages/core/src/ctype/CType.chain.ts @@ -9,8 +9,8 @@ import type { Option } from '@polkadot/types' import type { AccountId } from '@polkadot/types/interfaces' import { Crypto } from '@kiltprotocol/utils' -import type { DidUri, ICType, KiltAddress } from '@kiltprotocol/types' -import { Utils as DidUtils } from '@kiltprotocol/did' +import type { DidUri, ICType } from '@kiltprotocol/types' +import { Chain as DidChain } from '@kiltprotocol/did' import { getSchemaPropertiesForHash } from './CType.js' @@ -31,5 +31,5 @@ export function toChain(ctype: ICType): string { * @returns The owner DID. */ export function fromChain(encoded: Option): DidUri { - return DidUtils.getFullDidUri(encoded.unwrap().toString() as KiltAddress) + return DidChain.uriFromChain(encoded.unwrap()) } diff --git a/packages/core/src/delegation/DelegationDecoder.ts b/packages/core/src/delegation/DelegationDecoder.ts index 85cd4fc9c..2adb8caf7 100644 --- a/packages/core/src/delegation/DelegationDecoder.ts +++ b/packages/core/src/delegation/DelegationDecoder.ts @@ -18,12 +18,11 @@ import type { IDelegationNode, IDelegationHierarchyDetails, - KiltAddress, } from '@kiltprotocol/types' import { Permission, PermissionType } from '@kiltprotocol/types' import type { Option } from '@polkadot/types' import type { Hash } from '@polkadot/types/interfaces/runtime' -import { Utils as DidUtils } from '@kiltprotocol/did' +import { Chain as DidChain } from '@kiltprotocol/did' import type { DelegationDelegationHierarchyDelegationHierarchyDetails, DelegationDelegationHierarchyDelegationNode, @@ -94,9 +93,7 @@ export function delegationNodeFromChain( ? delegationNode.parent.toHex() : undefined, childrenIds: [...delegationNode.children].map((id) => id.toHex()), - account: DidUtils.getFullDidUri( - delegationNode.details.owner.toString() as KiltAddress - ), + account: DidChain.uriFromChain(delegationNode.details.owner), permissions: permissionsFromChain(delegationNode.details.permissions), revoked: delegationNode.details.revoked.valueOf(), } diff --git a/packages/did/src/Did.chain.ts b/packages/did/src/Did.chain.ts index 4d2ca3086..da14b1ea5 100644 --- a/packages/did/src/Did.chain.ts +++ b/packages/did/src/Did.chain.ts @@ -6,7 +6,7 @@ */ import type { Option } from '@polkadot/types' -import type { Extrinsic, Hash } from '@polkadot/types/interfaces' +import type { AccountId32, Extrinsic, Hash } from '@polkadot/types/interfaces' import type { AnyNumber } from '@polkadot/types/types' import { BN, hexToU8a } from '@polkadot/util' import type { ApiPromise } from '@polkadot/api' @@ -48,6 +48,7 @@ import { EncodedSignature, EncodedVerificationKey, getAddressByKey, + getFullDidUri, keyTypeForSignatureAlg, parseDidUri, signatureAlgForKeyType, @@ -71,7 +72,7 @@ export function resourceIdToChain(id: UriFragment): string { export function depositFromChain(deposit: KiltSupportDeposit): Deposit { return { - owner: deposit.owner.toString() as KiltAddress, + owner: Crypto.encodeAddress(deposit.owner, ss58Format), amount: deposit.amount.toBn(), } } @@ -114,6 +115,10 @@ function didPublicKeyDetailsFromChain( } } +export function uriFromChain(encoded: AccountId32): DidUri { + return getFullDidUri(Crypto.encodeAddress(encoded, ss58Format)) +} + export function didFromChain(encoded: Option): EncodedDid { const { publicKeys, @@ -139,10 +144,7 @@ export function didFromChain(encoded: Option): EncodedDid { const didRecord: EncodedDid = { authentication: [authentication], lastTxCounter: lastTxCounter.toBn(), - deposit: { - amount: deposit.amount.toBn(), - owner: deposit.owner.toString() as KiltAddress, - }, + deposit: depositFromChain(deposit), } if (attestationKey.isSome) { const key = keys[attestationKey.unwrap().toHex()] as DidVerificationKey diff --git a/packages/did/src/DidLinks/AccountLinks.chain.ts b/packages/did/src/DidLinks/AccountLinks.chain.ts index 908e2fcca..a92a6f29f 100644 --- a/packages/did/src/DidLinks/AccountLinks.chain.ts +++ b/packages/did/src/DidLinks/AccountLinks.chain.ts @@ -31,9 +31,9 @@ import type { Deposit, DidUri, KiltAddress } from '@kiltprotocol/types' import type { PalletDidLookupConnectionRecord } from '@kiltprotocol/augment-api' import { ConfigService } from '@kiltprotocol/config' -import { EncodedSignature, getFullDidUri } from '../Did.utils.js' +import { EncodedSignature } from '../Did.utils.js' import { Web3Name, web3NameFromChain } from './Web3Names.chain.js' -import { depositFromChain, didToChain } from '../Did.chain.js' +import { depositFromChain, didToChain, uriFromChain } from '../Did.chain.js' /// A chain-agnostic address, which can be encoded using any network prefix. export type SubstrateAddress = KeyringPair['address'] @@ -125,7 +125,7 @@ export function connectedDidFromChain( } { const { did, deposit } = encoded.unwrap() return { - did: getFullDidUri(did.toString() as KiltAddress), + did: uriFromChain(did), deposit: depositFromChain(deposit), } } diff --git a/packages/did/src/DidLinks/Web3Names.chain.ts b/packages/did/src/DidLinks/Web3Names.chain.ts index 739085f88..361121726 100644 --- a/packages/did/src/DidLinks/Web3Names.chain.ts +++ b/packages/did/src/DidLinks/Web3Names.chain.ts @@ -7,11 +7,9 @@ import { PalletWeb3NamesWeb3NameWeb3NameOwnership } from '@polkadot/types/lookup' import type { Bytes, Option } from '@polkadot/types-codec' -import type { Deposit, DidUri, KiltAddress } from '@kiltprotocol/types' +import type { Deposit, DidUri } from '@kiltprotocol/types' import type { BN } from '@polkadot/util' - -import * as DidUtils from '../Did.utils.js' -import { depositFromChain } from '../Did.chain.js' +import { depositFromChain, uriFromChain } from '../Did.chain.js' /** * Web3Name is the type of a nickname for a DID. @@ -43,7 +41,7 @@ export function web3NameOwnerFromChain( } { const { owner, deposit, claimedAt } = encoded.unwrap() return { - owner: DidUtils.getFullDidUri(owner.toString() as KiltAddress), + owner: uriFromChain(owner), deposit: depositFromChain(deposit), claimedAt: claimedAt.toBn(), }