Skip to content

DIDFactory

Implementation of the DID Registry.

Functions

initialize

  function initialize(
    address _owner
  ) public

DIDRegistry Initializer Initialize Ownable. Only on contract creation.

Parameters:

Name Type Description
_owner address refers to the owner of the contract.

setManager

  function setManager(
  ) external
Sets the manager role. Should be the TransferCondition contract address

registerAttribute

  function registerAttribute(
    bytes32 _didSeed,
    bytes32 _checksum,
    address[] _url
  ) public returns (uint256 size)
Register DID attributes.

The first attribute of a DID registered sets the DID owner. Subsequent updates record _checksum and update info.

Parameters:

Name Type Description
_didSeed bytes32 refers to decentralized identifier seed (a bytes32 length ID).
_checksum bytes32 includes a one-way HASH calculated using the DDO content.
_url address[] refers to the attribute value, limited to 2048 bytes.

Return Values:

Name Type Description
size bytes32 refers to the size of the registry after the register action.
### registerDID
  function registerDID(
    bytes32 _didSeed,
    bytes32 _checksum,
    address[] _providers,
    string _url,
    bytes32 _providers,
    string _activityId,
     _attributes
  ) public returns (uint256 size)
Register DID attributes.

The first attribute of a DID registered sets the DID owner. Subsequent updates record _checksum and update info.

Parameters:

Name Type Description
_didSeed bytes32 refers to decentralized identifier seed (a bytes32 length ID).
The final DID will be calculated with the creator address using the hashDID function
_checksum bytes32 includes a one-way HASH calculated using the DDO content.
_providers address[] list of addresses that can act as an asset provider
_url string refers to the url resolving the DID into a DID Document (DDO), limited to 2048 bytes.
_providers bytes32 list of DID providers addresses
_activityId string refers to activity
_attributes refers to the provenance attributes

Return Values:

Name Type Description
size bytes32 refers to the size of the registry after the register action.
### hashDID
  function hashDID(
    bytes32 _didSeed,
    address _creator
  ) public returns (bytes32)
It generates a DID using as seed a bytes32 and the address of the DID creator

Parameters:

Name Type Description
_didSeed bytes32 refers to DID Seed used as base to generate the final DID
_creator address address of the creator of the DID

Return Values:

Name Type Description
the bytes32 new DID created
### areRoyaltiesValid
  function areRoyaltiesValid(
    bytes32 _did,
    uint256[] _amounts,
    address[] _receivers
  ) public returns (bool)
areRoyaltiesValid checks if for a given DID and rewards distribution, this allocate the
original creator royalties properly

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a byte32 length ID)
_amounts uint256[] refers to the amounts to reward
_receivers address[] refers to the receivers of rewards

Return Values:

Name Type Description
true bytes32 if the rewards distribution respect the original creator royalties
### wasGeneratedBy
  function wasGeneratedBy(
  ) internal returns (bool)

used

  function used(
  ) public returns (bool success)

wasDerivedFrom

  function wasDerivedFrom(
  ) public returns (bool success)

wasAssociatedWith

  function wasAssociatedWith(
  ) public returns (bool success)

actedOnBehalf

  function actedOnBehalf(
    bytes32 _provId,
    bytes32 _did,
    address _delegateAgentId,
    address _responsibleAgentId,
    bytes32 _activityId,
    bytes _signatureDelegate,
    string _attributes
  ) public returns (bool success)
Implements the W3C PROV Delegation action Each party involved in this method (_delegateAgentId & _responsibleAgentId) must provide a valid signature. The content to sign is a representation of the footprint of the event (_did + _delegateAgentId + _responsibleAgentId + _activityId)

Parameters:

Name Type Description
_provId bytes32 unique identifier referring to the provenance entry
_did bytes32 refers to decentralized identifier (a bytes32 length ID) of the entity
_delegateAgentId address refers to address acting on behalf of the provenance record
_responsibleAgentId address refers to address responsible of the provenance record
_activityId bytes32 refers to activity
_signatureDelegate bytes refers to the digital signature provided by the did delegate.
_attributes string refers to the provenance attributes

Return Values:

Name Type Description
success bytes32 true if the action was properly registered
### addDIDProvider
  function addDIDProvider(
    bytes32 _did,
    address _provider
  ) external
addDIDProvider add new DID provider.

it adds new DID provider to the providers list. A provider is any entity that can serve the registered asset

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID).
_provider address provider's address.

removeDIDProvider

  function removeDIDProvider(
    bytes32 _did,
    address _provider
  ) external
removeDIDProvider delete an existing DID provider.

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID).
_provider address provider's address.

addDIDProvenanceDelegate

  function addDIDProvenanceDelegate(
    bytes32 _did,
    address _delegate
  ) public
addDIDProvenanceDelegate add new DID provenance delegate.

it adds new DID provenance delegate to the delegates list. A delegate is any entity that interact with the provenance entries of one DID

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID).
_delegate address delegates's address.

removeDIDProvenanceDelegate

  function removeDIDProvenanceDelegate(
    bytes32 _did,
    address _delegate
  ) external
removeDIDProvenanceDelegate delete an existing DID delegate.

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID).
_delegate address delegate's address.

transferDIDOwnership

  function transferDIDOwnership(
    bytes32 _did,
    address _newOwner
  ) external
transferDIDOwnership transfer DID ownership

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID)
_newOwner address new owner address

transferDIDOwnershipManaged

  function transferDIDOwnershipManaged(
    address _did,
    bytes32 _newOwner
  ) external
transferDIDOwnershipManaged transfer DID ownership

Parameters:

Name Type Description
_did address refers to decentralized identifier (a bytes32 length ID)
_newOwner bytes32 new owner address

_transferDIDOwnership

  function _transferDIDOwnership(
  ) internal

grantPermission

  function grantPermission(
    bytes32 _did,
    address _grantee
  ) external

grantPermission grants access permission to grantee

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID)
_grantee address address

revokePermission

  function revokePermission(
    bytes32 _did,
    address _grantee
  ) external

revokePermission revokes access permission from grantee

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID)
_grantee address address

getPermission

  function getPermission(
    bytes32 _did,
    address _grantee
  ) external returns (bool)

getPermission gets access permission of a grantee

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID)
_grantee address address

Return Values:

Name Type Description
true bytes32 if grantee has access permission to a DID
### isDIDProvider
  function isDIDProvider(
    bytes32 _did,
    address _provider
  ) public returns (bool)
isDIDProvider check whether a given DID provider exists

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID).
_provider address provider's address.

getDIDRegister

  function getDIDRegister(
    bytes32 _did
  ) public returns (address owner, bytes32 lastChecksum, string url, address lastUpdatedBy, uint256 blockNumberUpdated, address[] providers, uint256 nftSupply, uint256 mintCap, uint256 royalties)

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID).

Return Values:

Name Type Description
owner bytes32 the did owner
lastChecksum
url
lastUpdatedBy
blockNumberUpdated

getBlockNumberUpdated

  function getBlockNumberUpdated(
    bytes32 _did
  ) public returns (uint256 blockNumberUpdated)

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID).

Return Values:

Name Type Description
blockNumberUpdated bytes32 last modified (update) block number of a DID.
### getDIDOwner
  function getDIDOwner(
    bytes32 _did
  ) public returns (address didOwner)

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID).

Return Values:

Name Type Description
didOwner bytes32 the address of the DID owner.
### getDIDRegistrySize
  function getDIDRegistrySize(
  ) public returns (uint256 size)

Return Values:

Name Type Description
size the length of the DID registry.
### getDIDRegisterIds
  function getDIDRegisterIds(
  ) public returns (bytes32[])

Return Values:

Name Type Description
the list of items in the DID registry.
### _grantPermission
  function _grantPermission(
    bytes32 _did,
    address _grantee
  ) internal

_grantPermission grants access permission to grantee

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID)
_grantee address address

_revokePermission

  function _revokePermission(
    bytes32 _did,
    address _grantee
  ) internal

_revokePermission revokes access permission from grantee

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID)
_grantee address address

_getPermission

  function _getPermission(
    bytes32 _did,
    address _grantee
  ) internal returns (bool)

_getPermission gets access permission of a grantee

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID)
_grantee address address

Return Values:

Name Type Description
true bytes32 if grantee has access permission to a DID
### getProvenanceEntry
  function getProvenanceEntry(
    bytes32 _provId
  ) public returns (bytes32 did, bytes32 relatedDid, address agentId, bytes32 activityId, address agentInvolvedId, uint8 method, address createdBy, uint256 blockNumberUpdated, bytes signature)
Fetch the complete provenance entry attributes

Parameters:

Name Type Description
_provId bytes32 refers to the provenance identifier

Return Values:

Name Type Description
did bytes32
relatedDid
activityId
agentInvolvedId
createdBy
blockNumberUpdated
signature

isDIDOwner

  function isDIDOwner(
    address _address,
    bytes32 _did
  ) public returns (bool)
isDIDOwner check whether a given address is owner for a DID

Parameters:

Name Type Description
_address address user address.
_did bytes32 refers to decentralized identifier (a bytes32 length ID).

isOwnerProviderOrDelegate

  function isOwnerProviderOrDelegate(
    bytes32 _did
  ) public returns (bool)
isOwnerProviderOrDelegate check whether msg.sender is owner, provider or delegate for a DID given

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID).

Return Values:

Name Type Description
boolean bytes32 true if yes
### isProvenanceDelegate
  function isProvenanceDelegate(
    bytes32 _did,
    address _delegate
  ) public returns (bool)
isProvenanceDelegate check whether a given DID delegate exists

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID).
_delegate address delegate's address.

Return Values:

Name Type Description
boolean bytes32 true if yes
### getProvenanceOwner
  function getProvenanceOwner(
    bytes32 _did
  ) public returns (address provenanceOwner)

Parameters:

Name Type Description
_did bytes32 refers to decentralized identifier (a bytes32 length ID).

Return Values:

Name Type Description
provenanceOwner bytes32 the address of the Provenance owner.
## Events
### DIDAttributeRegistered
  event DIDAttributeRegistered(
  )
DID Events

DIDProviderRemoved

  event DIDProviderRemoved(
  )

DIDProviderAdded

  event DIDProviderAdded(
  )

DIDOwnershipTransferred

  event DIDOwnershipTransferred(
  )

DIDPermissionGranted

  event DIDPermissionGranted(
  )

DIDPermissionRevoked

  event DIDPermissionRevoked(
  )

DIDProvenanceDelegateRemoved

  event DIDProvenanceDelegateRemoved(
  )

DIDProvenanceDelegateAdded

  event DIDProvenanceDelegateAdded(
  )