Skip to content

Latest commit

 

History

History
1800 lines (1054 loc) · 43.2 KB

GnosisIam.GnosisIam-1.md

File metadata and controls

1800 lines (1054 loc) · 43.2 KB

Class: GnosisIam

GnosisIam.GnosisIam

description Intended for use in Volta Gnosis web interface(https://volta.gnosis-safe.io/). Dapp should provide this class with SafeAppSdk injected by Gnosis interface. This class intoduces notion of controlled domain as that which is owned by gnosis wallet controlled by Iam signer. The domain ownership functionality has been redefined accordingly.

Hierarchy

  • IAM

    GnosisIam

Table of contents

Constructors

Accessors

Methods

Constructors

constructor

new GnosisIam(safeAppSdk, iamOpts)

IAM Constructor

Parameters

Name Type
safeAppSdk SafeAppsSDK
iamOpts ConnectionOptions

Overrides

IAM.constructor

Accessors

address

get address(): undefined | string

Returns

undefined | string


safeAddress

get safeAddress(): string

Returns

string

Methods

acceptAssetOffer

acceptAssetOffer(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.assetDID string

Returns

Promise<void>

Inherited from

IAM.acceptAssetOffer


cancelAssetOffer

cancelAssetOffer(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.assetDID string

Returns

Promise<void>

Inherited from

IAM.cancelAssetOffer


changeAppOwnership

changeAppOwnership(__namedParameters): Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>

changeAppOwnership

description change owner ship of app subdomain and all app owned subdomains

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.newOwner string
__namedParameters.returnSteps? boolean

Returns

Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>

return array of steps needed to change ownership

Inherited from

IAM.changeAppOwnership


changeOrgOwnership

changeOrgOwnership(__namedParameters): Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>

changeOrgOwnership

description change owner ship of org subdomain and all org owned roles subdomains

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.newOwner string
__namedParameters.returnSteps? boolean

Returns

Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>

return array of steps needed to change ownership

Inherited from

IAM.changeOrgOwnership


changeRoleOwnership

changeRoleOwnership(__namedParameters): Promise<void>

changeRoleOwnership

description change ownership of role subdomain

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.newOwner string

Returns

Promise<void>

Inherited from

IAM.changeRoleOwnership


checkExistenceOfDomain

checkExistenceOfDomain(__namedParameters): Promise<boolean>

checkExistenceOfDomain

description check existence of domain in ENS registry

Parameters

Name Type
__namedParameters Object
__namedParameters.domain string

Returns

Promise<boolean>

true or false whatever the domain is present

Inherited from

IAM.checkExistenceOfDomain


closeConnection

closeConnection(): Promise<void>

description Closes the connection between application and the signer's wallet

Returns

Promise<void>

Inherited from

IAM.closeConnection


connectToCacheServer

connectToCacheServer(): Promise<void>

description Establishes connection to the cache serverand sets public key and identity token

Returns

Promise<void>

Inherited from

IAM.connectToCacheServer


connectToDIDRegistry

connectToDIDRegistry(): Promise<void>

description Creates the signer's DID document if it does not exist

Returns

Promise<void>

Inherited from

IAM.connectToDIDRegistry


createApplication

createApplication(__namedParameters): Promise<{ info: string = "Set subdomain for application"; next: () => Promise<void> ; tx: EncodedCall }[]>

createApp

description creates role (create subdomain, sets the domain name and sets the role definition to metadata record in ENS Domain)

description creates roles subdomain for the app namespace

Parameters

Name Type
__namedParameters Object
__namedParameters.appName string
__namedParameters.data IAppDefinition
__namedParameters.namespace string
__namedParameters.returnSteps? boolean

Returns

Promise<{ info: string = "Set subdomain for application"; next: () => Promise<void> ; tx: EncodedCall }[]>

Inherited from

IAM.createApplication


createClaimRequest

createClaimRequest(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.claim Object
__namedParameters.claim.claimType string
__namedParameters.claim.claimTypeVersion number
__namedParameters.claim.fields { key: string ; value: string | number }[]
__namedParameters.registrationTypes? RegistrationTypes[]
__namedParameters.subject? string

Returns

Promise<void>

Inherited from

IAM.createClaimRequest


createDelegateProof

createDelegateProof(delegateKey, rpcUrl, identity): Promise<string>

description create a proof of identity delegate

Parameters

Name Type Description
delegateKey string private key of the delegate
rpcUrl string the url of the blockchain provider
identity string Did of the delegate

Returns

Promise<string>

token of delegate

Inherited from

IAM.createDelegateProof


createIdentityProof

createIdentityProof(): Promise<string>

description create a public claim to prove identity

Returns

Promise<string>

JWT token of created identity

Inherited from

IAM.createIdentityProof


createOrganization

createOrganization(__namedParameters): Promise<{ info: string = "Create organization subdomain"; next: () => Promise<void> ; tx: EncodedCall }[]>

createOrganization

description creates organization (create subdomain, sets the domain name and sets the role definition to metadata record in ENS Domain)

description and sets subdomain for roles and app for org namespace

Parameters

Name Type
__namedParameters Object
__namedParameters.data IOrganizationDefinition
__namedParameters.namespace string
__namedParameters.orgName string
__namedParameters.returnSteps? boolean

Returns

Promise<{ info: string = "Create organization subdomain"; next: () => Promise<void> ; tx: EncodedCall }[]>

Inherited from

IAM.createOrganization


createProofClaim

createProofClaim(__namedParameters): Promise<string>

createProofClaim

description creates a proof of a claim

Parameters

Name Type
__namedParameters Object
__namedParameters.claimUrl string
__namedParameters.saltedFields ISaltedFields

Returns

Promise<string>

proof token

Inherited from

IAM.createProofClaim


createPublicClaim

createPublicClaim(__namedParameters): Promise<string>

createPublicClaim

description create a public claim based on data provided

Parameters

Name Type
__namedParameters Object
__namedParameters.data ClaimData
__namedParameters.subject? string

Returns

Promise<string>

JWT token of created claim

Inherited from

IAM.createPublicClaim


createRole

createRole(__namedParameters): Promise<{ info: string = "Create subdomain for role"; next: () => Promise<void> ; tx: EncodedCall }[]>

createRole

description creates role (create subdomain, sets the domain name and sets the role definition to metadata record in ENS Domain)

Parameters

Name Type
__namedParameters Object
__namedParameters.data IRoleDefinition
__namedParameters.namespace string
__namedParameters.returnSteps? boolean
__namedParameters.roleName string

Returns

Promise<{ info: string = "Create subdomain for role"; next: () => Promise<void> ; tx: EncodedCall }[]>

information (true/false) if the role was created

Inherited from

IAM.createRole


createSelfSignedClaim

createSelfSignedClaim(__namedParameters): Promise<string>

createSelfSignedClaim

description creates self signed claim and upload the data to ipfs

Parameters

Name Type
__namedParameters Object
__namedParameters.data ClaimData
__namedParameters.subject? string

Returns

Promise<string>

Inherited from

IAM.createSelfSignedClaim


decodeJWTToken

decodeJWTToken(__namedParameters): Promise<string | { [key: string]: string | object; }>

Parameters

Name Type
__namedParameters Object
__namedParameters.token string

Returns

Promise<string | { [key: string]: string | object; }>

Inherited from

IAM.decodeJWTToken


deleteApplication

deleteApplication(__namedParameters): Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>

deleteApplication

description delete application and roles

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.returnSteps? boolean

Returns

Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>

Inherited from

IAM.deleteApplication


deleteClaim

deleteClaim(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.id string

Returns

Promise<void>

Inherited from

IAM.deleteClaim


deleteOrganization

deleteOrganization(__namedParameters): Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>

deleteOrganization

description delete organization and roles

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.returnSteps? boolean

Returns

Promise<{ info: string ; next: (__namedParameters: { retryCheck?: boolean }) => Promise<void> ; tx: EncodedCall }[]>

Inherited from

IAM.deleteOrganization


deleteRole

deleteRole(__namedParameters): Promise<void>

deleteRole

description delete role

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string

Returns

Promise<void>

Inherited from

IAM.deleteRole


getAppsByOrgNamespace

getAppsByOrgNamespace(__namedParameters): Promise<IApp[]>

getENSTypesByOwner

description get all applications for organization namespace

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string

Returns

Promise<IApp[]>

array of subdomains or empty array when there is no subdomains

Inherited from

IAM.getAppsByOrgNamespace


getAssetById

getAssetById(__namedParameters): Promise<Asset>

Parameters

Name Type
__namedParameters Object
__namedParameters.id string

Returns

Promise<Asset>

Inherited from

IAM.getAssetById


getAssetHistory

getAssetHistory(__namedParameters): Promise<AssetHistory[]>

Parameters

Name Type
__namedParameters Object
__namedParameters.id string
__namedParameters.order? Order
__namedParameters.skip? number
__namedParameters.take? number
__namedParameters.type? AssetHistoryEventType

Returns

Promise<AssetHistory[]>

Inherited from

IAM.getAssetHistory


getClaimsByIssuer

getClaimsByIssuer(__namedParameters): Promise<Claim[]>

description - Returns claims for given issuer. Allows filtering by status and parent namespace

Parameters

Name Type
__namedParameters Object
__namedParameters.did string
__namedParameters.isAccepted? boolean
__namedParameters.parentNamespace? string

Returns

Promise<Claim[]>

Inherited from

IAM.getClaimsByIssuer


getClaimsByRequester

getClaimsByRequester(__namedParameters): Promise<Claim[]>

description - Returns claims for given requester. Allows filtering by status and parent namespace

Parameters

Name Type
__namedParameters Object
__namedParameters.did string
__namedParameters.isAccepted? boolean
__namedParameters.parentNamespace? string

Returns

Promise<Claim[]>

Inherited from

IAM.getClaimsByRequester


getClaimsBySubject

getClaimsBySubject(__namedParameters): Promise<Claim[]>

description - Returns claims for given subject. Allows filtering by status and parent namespace

Parameters

Name Type
__namedParameters Object
__namedParameters.did string
__namedParameters.isAccepted? boolean
__namedParameters.parentNamespace? string

Returns

Promise<Claim[]>

Inherited from

IAM.getClaimsBySubject


getClaimsBySubjects

getClaimsBySubjects(subjects): Promise<Claim[]>

Parameters

Name Type
subjects string[]

Returns

Promise<Claim[]>

Inherited from

IAM.getClaimsBySubjects


getDefinition

getDefinition(__namedParameters): Promise<IRoleDefinition | IAppDefinition | IOrganizationDefinition>

getDefinition

description get role definition form ens domain metadata record

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.type ENSNamespaceTypes

Returns

Promise<IRoleDefinition | IAppDefinition | IOrganizationDefinition>

metadata string or empty string when there is no metadata

Inherited from

IAM.getDefinition


getDid

getDid(): undefined | string

Get DID

Returns

undefined | string

did string if connected to wallet, if not returns undefined

Inherited from

IAM.getDid


getDidDocument

getDidDocument(__namedParameters?): Promise<Object>

getDidDocument

Parameters

Name Type
__namedParameters undefined | { did?: string ; includeClaims?: boolean }

Returns

Promise<Object>

whole did document if connected, if not returns null

Inherited from

IAM.getDidDocument


getENSTypesByOwner

getENSTypesByOwner(__namedParameters): Promise<IOrganization[]> | Promise<IApp[]> | Promise<IRole[]>

getENSTypesByOwner

Parameters

Name Type
__namedParameters Object
__namedParameters.owner string
__namedParameters.type ENSNamespaceTypes

Returns

Promise<IOrganization[]> | Promise<IApp[]> | Promise<IRole[]>

Overrides

IAM.getENSTypesByOwner


getENSTypesBySearchPhrase

getENSTypesBySearchPhrase(__namedParameters): Promise<(IOrganization | IApp | IRole)[]>

getENSTypesBySearchPhrase

Parameters

Name Type
__namedParameters Object
__namedParameters.search string
__namedParameters.types? ("App" | "Org" | "Role")[]

Returns

Promise<(IOrganization | IApp | IRole)[]>

Inherited from

IAM.getENSTypesBySearchPhrase


getOfferedAssets

getOfferedAssets(__namedParameters?): Promise<Asset[]>

Parameters

Name Type
__namedParameters Object
__namedParameters.did? string

Returns

Promise<Asset[]>

Inherited from

IAM.getOfferedAssets


getOrgHierarchy

getOrgHierarchy(__namedParameters): Promise<IOrganization>

getOrgHierarchy

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string

Returns

Promise<IOrganization>

Overrides

IAM.getOrgHierarchy


getOwnedAssets

getOwnedAssets(__namedParameters?): Promise<Asset[]>

Parameters

Name Type
__namedParameters Object
__namedParameters.did? string

Returns

Promise<Asset[]>

Inherited from

IAM.getOwnedAssets


getPreviouslyOwnedAssets

getPreviouslyOwnedAssets(__namedParameters): Promise<Asset[]>

Parameters

Name Type
__namedParameters Object
__namedParameters.owner string

Returns

Promise<Asset[]>

Inherited from

IAM.getPreviouslyOwnedAssets


getProviderType

getProviderType(): WalletProvider

Get the current initialized provider type

Returns

WalletProvider

provider type if the session is active if not undefined

Inherited from

IAM.getProviderType


getRoleDIDs

getRoleDIDs(__namedParameters): Promise<string[]>

getRoleDIDs

description get all users did which have certain role

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string

Returns

Promise<string[]>

array of did's

Inherited from

IAM.getRoleDIDs


getRolesByNamespace

getRolesByNamespace(__namedParameters): Promise<IRole[]>

getRolesByNamespace

description get all subdomains for certain domain

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.parentType Application | Organization

Returns

Promise<IRole[]>

array of subdomains or empty array when there is no subdomains

Inherited from

IAM.getRolesByNamespace


getRolesDefinition

getRolesDefinition(__namedParameters): Promise<Record<string, IRoleDefinition>>

getRolesDefinition

description get roles definition form ens domain metadata record

Parameters

Name Type
__namedParameters Object
__namedParameters.namespaces string[]

Returns

Promise<Record<string, IRoleDefinition>>

array of metadata strings

Inherited from

IAM.getRolesDefinition


getSigner

getSigner(): undefined | JsonRpcSigner | Signer

Get signer

Returns

undefined | JsonRpcSigner | Signer

JsonRpcSigner if connected to wallet, if not returns undefined

Inherited from

IAM.getSigner


getSubOrgsByOrgNamespace

getSubOrgsByOrgNamespace(__namedParameters): Promise<IOrganization[]>

getSubOrgsByOrgNamespace

description get all sub organizations for organization namespace

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string

Returns

Promise<IOrganization[]>

array of subdomains or empty array when there is no subdomains

Inherited from

IAM.getSubOrgsByOrgNamespace


getSubdomains

getSubdomains(__namedParameters): Promise<string[]>

getSubdomains

description get all subdomains for certain domain

Parameters

Name Type
__namedParameters Object
__namedParameters.domain string
__namedParameters.mode? "ALL" | "FIRSTLEVEL"

Returns

Promise<string[]>

array of subdomains or empty array when there is no subdomains

Inherited from

IAM.getSubdomains


getUserClaims

getUserClaims(__namedParameters?): Promise<IServiceEndpoint & ClaimData[]>

getUserClaims

description get user claims

Parameters

Name Type
__namedParameters undefined | { did?: string }

Returns

Promise<IServiceEndpoint & ClaimData[]>

Inherited from

IAM.getUserClaims


initializeConnection

initializeConnection(__namedParameters?): Promise<InitializeData>

Initialize connection to wallet

description creates web3 provider and establishes secure connection to selected wallet

summary if not connected to wallet will show connection modal, but if already connected (data stored in localStorage) will only return initial data without showing modal

requires needs to be called before any of other methods

Parameters

Name Type
__namedParameters Object
__namedParameters.createDocument? boolean
__namedParameters.initCacheServer? boolean
__namedParameters.reinitializeMetamask? boolean
__namedParameters.walletProvider? WalletProvider

Returns

Promise<InitializeData>

did string, status of connection and info if the user closed the wallet selection modal

Inherited from

IAM.initializeConnection


isConnected

isConnected(): boolean

isConnected

Returns

boolean

info if the connection to wallet/signer is already established

Inherited from

IAM.isConnected


isOwner

isOwner(__namedParameters): Promise<boolean>

description Checks whether the domain is owned by user or by gnosis wallet controlled by user

Parameters

Name Type
__namedParameters Object
__namedParameters.domain string
__namedParameters.user? string

Returns

Promise<boolean>

Overrides

IAM.isOwner


isSessionActive

isSessionActive(): boolean

description Checks if the session is active

Returns

boolean

boolean that indicates the session state

Inherited from

IAM.isSessionActive


issueClaim

issueClaim(__namedParameters): Promise<string>

Parameters

Name Type
__namedParameters Object
__namedParameters.claim Object
__namedParameters.claim.claimType string
__namedParameters.claim.claimTypeVersion number
__namedParameters.claim.fields { key: string ; value: string | number }[]
__namedParameters.subject string

Returns

Promise<string>

Inherited from

IAM.issueClaim


issueClaimRequest

issueClaimRequest(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.claimParams? Record<string, string>
__namedParameters.id string
__namedParameters.registrationTypes RegistrationTypes[]
__namedParameters.requester string
__namedParameters.subjectAgreement string
__namedParameters.token string

Returns

Promise<void>

Inherited from

IAM.issueClaimRequest


issuePublicClaim

issuePublicClaim(__namedParameters): Promise<string>

issuePublicClaim

description issue a public claim

Parameters

Name Type
__namedParameters Object
__namedParameters.publicClaim? IPublicClaim
__namedParameters.token? string

Returns

Promise<string>

return issued token

Inherited from

IAM.issuePublicClaim


namespacesWithRelations

namespacesWithRelations(namespaces): Promise<{ namespace: string ; owner: string }[]>

description Collects all namespaces related data. Currently its includes only owner

Parameters

Name Type
namespaces string[]

Returns

Promise<{ namespace: string ; owner: string }[]>

Inherited from

IAM.namespacesWithRelations


offerAsset

offerAsset(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.assetDID string
__namedParameters.offerTo string

Returns

Promise<void>

Inherited from

IAM.offerAsset


on

on(event, eventHandler): void

description Defines event handlers for change of account, change of network, disconnection

requires to be called after the connection to wallet was initialized

Parameters

Name Type
event "accountChanged" | "networkChanged" | "disconnected"
eventHandler () => void

Returns

void

Inherited from

IAM.on


publishPublicClaim

publishPublicClaim(__namedParameters): Promise<string>

publishPublicClaim

description store claim data in ipfs and save url to DID document services

Parameters

Name Type
__namedParameters Object
__namedParameters.token string

Returns

Promise<string>

ulr to ipfs

Inherited from

IAM.publishPublicClaim


registerAsset

registerAsset(): Promise<string>

Returns

Promise<string>

Inherited from

IAM.registerAsset


registrationTypesOfRoles

registrationTypesOfRoles(roles): Promise<Record<string, Set<RegistrationTypes>>>

Parameters

Name Type
roles string[]

Returns

Promise<Record<string, Set<RegistrationTypes>>>

Inherited from

IAM.registrationTypesOfRoles


rejectAssetOffer

rejectAssetOffer(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.assetDID string

Returns

Promise<void>

Inherited from

IAM.rejectAssetOffer


rejectClaimRequest

rejectClaimRequest(__namedParameters): Promise<void>

Parameters

Name Type
__namedParameters Object
__namedParameters.id string
__namedParameters.requesterDID string

Returns

Promise<void>

Inherited from

IAM.rejectClaimRequest


revokeDidDocument

revokeDidDocument(): Promise<boolean>

revokeDidDocument

description revokes did document

Returns

Promise<boolean>

information (true/false) if the DID document was revoked

Inherited from

IAM.revokeDidDocument


setRoleDefinition

setRoleDefinition(__namedParameters): Promise<void>

setRoleDefinition

description sets role definition in ENS domain

description please use it only when you want to update role definitions for already created role (domain)

Parameters

Name Type
__namedParameters Object
__namedParameters.data IRoleDefinition | IAppDefinition | IOrganizationDefinition
__namedParameters.domain string

Returns

Promise<void>

Inherited from

IAM.setRoleDefinition


subscribeTo

subscribeTo(__namedParameters): Promise<undefined | number>

Parameters

Name Type
__namedParameters Object
__namedParameters.subject? string
__namedParameters.messageHandler (data: IMessage) => void

Returns

Promise<undefined | number>

Inherited from

IAM.subscribeTo


unsubscribeFrom

unsubscribeFrom(subscriptionId): Promise<void>

Parameters

Name Type
subscriptionId number

Returns

Promise<void>

Inherited from

IAM.unsubscribeFrom


updateDidDocument

updateDidDocument(options): Promise<boolean>

description updates did document based on data provided

Parameters

Name Type Description
options Object Options to connect with blockchain
options.data IUpdateData New attribute value
options.did? string Asset did to be updated
options.didAttribute DIDAttribute Type of document to be updated
options.validity? number Time (s) for the attribute to expire

Returns

Promise<boolean>

true if document is updated successfuly

Inherited from

IAM.updateDidDocument


validateOwnership

validateOwnership(__namedParameters): Promise<string[]>

validateOwnership

Parameters

Name Type
__namedParameters Object
__namedParameters.namespace string
__namedParameters.type ENSNamespaceTypes

Returns

Promise<string[]>

Overrides

IAM.validateOwnership


verifyPublicClaim

verifyPublicClaim(__namedParameters): Promise<IPublicClaim>

verifyPublicClaim

description verifies issued token of claim

throws if the proof failed

Parameters

Name Type
__namedParameters Object
__namedParameters.claimUrl string

Returns

Promise<IPublicClaim>

public claim data

Inherited from

IAM.verifyPublicClaim


isMetamaskExtensionPresent

Static isMetamaskExtensionPresent(): Promise<Object>

Returns

Promise<Object>

Inherited from

IAM.isMetamaskExtensionPresent