{"version":3,"file":"index.cjs","sources":["../src/helpers.ts","../src/config/deployments.ts","../src/configuration.ts","../node_modules/@ethersproject/constants/lib.esm/hashes.js","../node_modules/@ethersproject/logger/lib.esm/_version.js","../node_modules/@ethersproject/logger/lib.esm/index.js","../node_modules/@ethersproject/strings/lib.esm/_version.js","../node_modules/@ethersproject/strings/lib.esm/utf8.js","../node_modules/@ethersproject/strings/lib.esm/bytes32.js","../src/controller.ts","../src/logParser.ts","../src/resolver.ts"],"sourcesContent":["import { getAddress } from '@ethersproject/address'\nimport { BigNumber } from '@ethersproject/bignumber'\nimport { computeAddress } from '@ethersproject/transactions'\nimport { VerificationMethod } from 'did-resolver'\nimport { Contract } from '@ethersproject/contracts'\nimport { keccak256 } from '@ethersproject/keccak256'\nimport { arrayify, hexConcat, zeroPad } from '@ethersproject/bytes'\nimport { SigningKey } from '@ethersproject/signing-key'\n\nexport const identifierMatcher = /^(.*)?(0x[0-9a-fA-F]{40}|0x[0-9a-fA-F]{66})$/\nexport const nullAddress = '0x0000000000000000000000000000000000000000'\nexport const DEFAULT_REGISTRY_ADDRESS = '0xdca7ef03e98e0dc2b855be647c39abe984fcf21b'\nexport const DEFAULT_JSON_RPC = 'http://127.0.0.1:8545/'\nexport const MESSAGE_PREFIX = '0x1900'\n\nexport type address = string\nexport type uint256 = BigNumber\nexport type bytes32 = string\nexport type bytes = string\n\nexport interface ERC1056Event {\n  identity: address\n  previousChange: uint256\n  validTo?: uint256\n  _eventName: string\n  blockNumber: number\n}\n\nexport interface DIDOwnerChanged extends ERC1056Event {\n  owner: address\n}\n\nexport interface DIDAttributeChanged extends ERC1056Event {\n  name: bytes32\n  value: bytes\n  validTo: uint256\n}\n\nexport interface DIDDelegateChanged extends ERC1056Event {\n  delegateType: bytes32\n  delegate: address\n  validTo: uint256\n}\n\nexport enum verificationMethodTypes {\n  EcdsaSecp256k1VerificationKey2019 = 'EcdsaSecp256k1VerificationKey2019',\n  EcdsaSecp256k1RecoveryMethod2020 = 'EcdsaSecp256k1RecoveryMethod2020',\n  Ed25519VerificationKey2018 = 'Ed25519VerificationKey2018',\n  RSAVerificationKey2018 = 'RSAVerificationKey2018',\n  X25519KeyAgreementKey2019 = 'X25519KeyAgreementKey2019',\n}\n\nexport enum eventNames {\n  DIDOwnerChanged = 'DIDOwnerChanged',\n  DIDAttributeChanged = 'DIDAttributeChanged',\n  DIDDelegateChanged = 'DIDDelegateChanged',\n}\n\nexport interface LegacyVerificationMethod extends VerificationMethod {\n  /**@deprecated */\n  publicKeyHex?: string\n  /**@deprecated */\n  publicKeyBase64?: string\n  /**@deprecated */\n  publicKeyPem?: string\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  [x: string]: any\n}\n\n/**\n * Interface for transporting v, r, s signature parameters used in meta transactions\n */\nexport interface MetaSignature {\n  sigV: number\n  sigR: bytes32\n  sigS: bytes32\n}\n\nexport const legacyAttrTypes: Record<string, string> = {\n  sigAuth: 'SignatureAuthentication2018',\n  veriKey: 'VerificationKey2018',\n  enc: 'KeyAgreementKey2019',\n}\n\nexport const legacyAlgoMap: Record<string, string> = {\n  /**@deprecated */\n  Secp256k1VerificationKey2018: verificationMethodTypes.EcdsaSecp256k1VerificationKey2019,\n  /**@deprecated */\n  Ed25519SignatureAuthentication2018: verificationMethodTypes.Ed25519VerificationKey2018,\n  /**@deprecated */\n  Secp256k1SignatureAuthentication2018: verificationMethodTypes.EcdsaSecp256k1VerificationKey2019,\n  //keep legacy mapping\n  RSAVerificationKey2018: verificationMethodTypes.RSAVerificationKey2018,\n  Ed25519VerificationKey2018: verificationMethodTypes.Ed25519VerificationKey2018,\n  X25519KeyAgreementKey2019: verificationMethodTypes.X25519KeyAgreementKey2019,\n}\n\nexport function strip0x(input: string): string {\n  return input.startsWith('0x') ? input.slice(2) : input\n}\n\nexport function bytes32toString(input: bytes32 | Uint8Array): string {\n  const buff: Buffer = typeof input === 'string' ? Buffer.from(input.slice(2), 'hex') : Buffer.from(input)\n  return buff.toString('utf8').replace(/\\0+$/, '')\n}\n\nexport function stringToBytes32(str: string): string {\n  const buffStr = '0x' + Buffer.from(str).slice(0, 32).toString('hex')\n  return buffStr + '0'.repeat(66 - buffStr.length)\n}\n\nexport function interpretIdentifier(identifier: string): { address: string; publicKey?: string; network?: string } {\n  let id = identifier\n  let network = undefined\n  if (id.startsWith('did:ethr')) {\n    id = id.split('?')[0]\n    const components = id.split(':')\n    id = components[components.length - 1]\n    if (components.length >= 4) {\n      network = components.splice(2, components.length - 3).join(':')\n    }\n  }\n  if (id.length > 42) {\n    return { address: computeAddress(id), publicKey: id, network }\n  } else {\n    return { address: getAddress(id), network } // checksum address\n  }\n}\n\nexport async function signMetaTxData(\n  identity: string,\n  signerAddress: string,\n  privateKeyBytes: Uint8Array,\n  dataBytes: Uint8Array,\n  didReg: Contract\n) {\n  const nonce = await didReg.nonce(signerAddress)\n  const paddedNonce = zeroPad(arrayify(nonce), 32)\n  const dataToSign = hexConcat(['0x1900', didReg.address, paddedNonce, identity, dataBytes])\n  const hash = keccak256(dataToSign)\n  return new SigningKey(privateKeyBytes).signDigest(hash)\n}\n\nexport enum Errors {\n  /**\n   * The resolver has failed to construct the DID document.\n   * This can be caused by a network issue, a wrong registry address or malformed logs while parsing the registry history.\n   * Please inspect the `DIDResolutionMetadata.message` to debug further.\n   */\n  notFound = 'notFound',\n\n  /**\n   * The resolver does not know how to resolve the given DID. Most likely it is not a `did:ethr`.\n   */\n  invalidDid = 'invalidDid',\n\n  /**\n   * The resolver is misconfigured or is being asked to resolve a DID anchored on an unknown network\n   */\n  unknownNetwork = 'unknownNetwork',\n}\n","/**\n * Represents metadata for a deployment of the ERC1056 registry contract.\n *\n * This can be used to correctly connect DIDs anchored on a particular network to the known registry for that network.\n */\nexport type EthrDidRegistryDeployment = {\n  /**\n   * The chain ID of the ethereum-like network for this deployment.\n   *\n   * The HEX encoding of this value gets used to construct DIDs anchored on this network when the `name` property is\n   * not set. Example: `did:ethr:<0xHexChainId>:0x...`\n   */\n  chainId: number\n  /**\n   * The ERC1056 contract address on this network\n   */\n  registry: string\n  /**\n   * The name of the network.\n   * This is used to construct DIDs on this network: `did:ethr:<name>:0x...`.\n   * If this is omitted, DIDs for this network are constructed using the HEX encoding of the chainID\n   */\n  name?: string\n  description?: string\n  /**\n   * A JSON-RPC endpoint that can be used to broadcast transactions or queries to this network\n   */\n  rpcUrl?: string\n  /**\n   * Contracts prior to ethr-did-registry@0.0.3 track nonces differently for meta-transactions\n   *\n   * @see https://github.com/decentralized-identity/ethr-did-resolver/pull/164\n   */\n  legacyNonce?: boolean\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  [x: string]: any\n}\n\n/**\n * Represents the known deployments of the ERC1056 registry contract.\n */\nexport const deployments: EthrDidRegistryDeployment[] = [\n  { chainId: 1, registry: '0xdca7ef03e98e0dc2b855be647c39abe984fcf21b', name: 'mainnet', legacyNonce: true },\n  { chainId: 3, registry: '0xdca7ef03e98e0dc2b855be647c39abe984fcf21b', name: 'ropsten', legacyNonce: true },\n  { chainId: 4, registry: '0xdca7ef03e98e0dc2b855be647c39abe984fcf21b', name: 'rinkeby', legacyNonce: true },\n  { chainId: 5, registry: '0xdca7ef03e98e0dc2b855be647c39abe984fcf21b', name: 'goerli', legacyNonce: true },\n  { chainId: 42, registry: '0xdca7ef03e98e0dc2b855be647c39abe984fcf21b', name: 'kovan', legacyNonce: true },\n  { chainId: 30, registry: '0xdca7ef03e98e0dc2b855be647c39abe984fcf21b', name: 'rsk', legacyNonce: true },\n  { chainId: 31, registry: '0xdca7ef03e98e0dc2b855be647c39abe984fcf21b', name: 'rsk:testnet', legacyNonce: true },\n  {\n    chainId: 246,\n    registry: '0xE29672f34e92b56C9169f9D485fFc8b9A136BCE4',\n    name: 'ewc',\n    description: 'energy web chain',\n    legacyNonce: false,\n  },\n  {\n    chainId: 73799,\n    registry: '0xC15D5A57A8Eb0e1dCBE5D88B8f9a82017e5Cc4AF',\n    name: 'volta',\n    description: 'energy web testnet',\n    legacyNonce: false,\n  },\n  { chainId: 246785, registry: '0xdCa7EF03e98e0DC2B855bE647C39ABe984fcF21B', name: 'artis:tau1', legacyNonce: true },\n  { chainId: 246529, registry: '0xdCa7EF03e98e0DC2B855bE647C39ABe984fcF21B', name: 'artis:sigma1', legacyNonce: true },\n  { chainId: 137, registry: '0xdca7ef03e98e0dc2b855be647c39abe984fcf21b', name: 'polygon', legacyNonce: true },\n  { chainId: 80001, registry: '0xdca7ef03e98e0dc2b855be647c39abe984fcf21b', name: 'polygon:test', legacyNonce: true },\n  { chainId: 1313161554, registry: '0x63eD58B671EeD12Bc1652845ba5b2CDfBff198e0', name: 'aurora', legacyNonce: true },\n]\n","import { BigNumber } from '@ethersproject/bignumber'\nimport { Contract, ContractFactory } from '@ethersproject/contracts'\nimport { JsonRpcProvider, Provider } from '@ethersproject/providers'\nimport { DEFAULT_REGISTRY_ADDRESS } from './helpers'\nimport { deployments, EthrDidRegistryDeployment } from './config/deployments'\nimport { default as EthereumDIDRegistry } from './config/EthereumDIDRegistry.json'\n\nconst infuraNames: Record<string, string> = {\n  polygon: 'matic',\n  'polygon:test': 'maticmum',\n  aurora: 'aurora-mainnet',\n}\n\nconst knownInfuraNames = ['mainnet', 'ropsten', 'rinkeby', 'goerli', 'kovan', 'aurora']\n\n/**\n * A configuration entry for an ethereum network\n * It should contain at least one of `name` or `chainId` AND one of `provider`, `web3`, or `rpcUrl`\n *\n * @example ```js\n * { name: 'development', registry: '0x9af37603e98e0dc2b855be647c39abe984fc2445', rpcUrl: 'http://127.0.0.1:8545/' }\n * { name: 'goerli', chainId: 5, provider: new InfuraProvider('goerli') }\n * { name: 'rinkeby', provider: new AlchemyProvider('rinkeby') }\n * { name: 'rsk:testnet', chainId: '0x1f', rpcUrl: 'https://public-node.testnet.rsk.co' }\n * ```\n */\nexport interface ProviderConfiguration extends Omit<EthrDidRegistryDeployment, 'chainId'> {\n  provider?: Provider\n  chainId?: string | number\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  web3?: any\n}\n\nexport interface MultiProviderConfiguration extends ProviderConfiguration {\n  networks?: ProviderConfiguration[]\n}\n\nexport interface InfuraConfiguration {\n  infuraProjectId: string\n}\n\nexport type ConfigurationOptions = MultiProviderConfiguration | InfuraConfiguration\n\nexport type ConfiguredNetworks = Record<string, Contract>\n\nfunction configureNetworksWithInfura(projectId?: string): ConfiguredNetworks {\n  if (!projectId) {\n    return {}\n  }\n\n  const networks = knownInfuraNames\n    .map((n) => {\n      const existingDeployment = deployments.find((d) => d.name === n)\n      if (existingDeployment && existingDeployment.name) {\n        const infuraName = infuraNames[existingDeployment.name] || existingDeployment.name\n        const rpcUrl = `https://${infuraName}.infura.io/v3/${projectId}`\n        return { ...existingDeployment, rpcUrl }\n      }\n    })\n    .filter((conf) => !!conf) as ProviderConfiguration[]\n\n  return configureNetworks({ networks })\n}\n\nexport function getContractForNetwork(conf: ProviderConfiguration): Contract {\n  let provider: Provider = conf.provider || conf.web3?.currentProvider\n  if (!provider) {\n    if (conf.rpcUrl) {\n      const chainIdRaw = conf.chainId ? conf.chainId : deployments.find((d) => d.name === conf.name)?.chainId\n      const chainId = chainIdRaw ? BigNumber.from(chainIdRaw).toNumber() : chainIdRaw\n      provider = new JsonRpcProvider(conf.rpcUrl, chainId || 'any')\n    } else {\n      throw new Error(`invalid_config: No web3 provider could be determined for network ${conf.name || conf.chainId}`)\n    }\n  }\n  const contract: Contract = ContractFactory.fromSolidity(EthereumDIDRegistry)\n    .attach(conf.registry || DEFAULT_REGISTRY_ADDRESS)\n    .connect(provider)\n  return contract\n}\n\nfunction configureNetwork(net: ProviderConfiguration): ConfiguredNetworks {\n  const networks: ConfiguredNetworks = {}\n  const chainId =\n    net.chainId || deployments.find((d) => net.name && (d.name === net.name || d.description === net.name))?.chainId\n  if (chainId) {\n    if (net.name) {\n      networks[net.name] = getContractForNetwork(net)\n    }\n    const id = typeof chainId === 'number' ? `0x${chainId.toString(16)}` : chainId\n    networks[id] = getContractForNetwork(net)\n  } else if (net.provider || net.web3 || net.rpcUrl) {\n    networks[net.name || ''] = getContractForNetwork(net)\n  }\n  return networks\n}\n\nfunction configureNetworks(conf: MultiProviderConfiguration): ConfiguredNetworks {\n  return {\n    ...configureNetwork(conf),\n    ...conf.networks?.reduce<ConfiguredNetworks>((networks, net) => {\n      return { ...networks, ...configureNetwork(net) }\n    }, {}),\n  }\n}\n\n/**\n * Generates a configuration that maps ethereum network names and chainIDs to the respective ERC1056 contracts deployed\n * on them.\n * @returns a record of ERC1056 `Contract` instances\n * @param conf - configuration options for the resolver. An array of network details.\n * Each network entry should contain at least one of `name` or `chainId` AND one of `provider`, `web3`, or `rpcUrl`\n * For convenience, you can also specify an `infuraProjectId` which will create a mapping for all the networks\n *   supported by https://infura.io.\n * @example ```js\n * [\n *   { name: 'development', registry: '0x9af37603e98e0dc2b855be647c39abe984fc2445', rpcUrl: 'http://127.0.0.1:8545/' },\n *   { name: 'goerli', chainId: 5, provider: new InfuraProvider('goerli') },\n *   { name: 'rinkeby', provider: new AlchemyProvider('rinkeby') },\n *   { name: 'rsk:testnet', chainId: '0x1f', rpcUrl: 'https://public-node.testnet.rsk.co' },\n * ]\n * ```\n */\nexport function configureResolverWithNetworks(conf: ConfigurationOptions = {}): ConfiguredNetworks {\n  const networks = {\n    ...configureNetworksWithInfura((<InfuraConfiguration>conf).infuraProjectId),\n    ...configureNetworks(<MultiProviderConfiguration>conf),\n  }\n  if (Object.keys(networks).length === 0) {\n    throw new Error('invalid_config: Please make sure to have at least one network')\n  }\n  return networks\n}\n","export const HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n//# sourceMappingURL=hashes.js.map","export const version = \"logger/5.6.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\nconst LogLevels = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\nimport { version } from \"./_version\";\nlet _globalLogger = null;\nfunction _checkNormalize() {\n    try {\n        const missing = [];\n        // Make sure all forms of normalization are supported\n        [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n            try {\n                if (\"test\".normalize(form) !== \"test\") {\n                    throw new Error(\"bad normalize\");\n                }\n                ;\n            }\n            catch (error) {\n                missing.push(form);\n            }\n        });\n        if (missing.length) {\n            throw new Error(\"missing \" + missing.join(\", \"));\n        }\n        if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n            throw new Error(\"broken implementation\");\n        }\n    }\n    catch (error) {\n        return error.message;\n    }\n    return null;\n}\nconst _normalizeError = _checkNormalize();\nexport var LogLevel;\n(function (LogLevel) {\n    LogLevel[\"DEBUG\"] = \"DEBUG\";\n    LogLevel[\"INFO\"] = \"INFO\";\n    LogLevel[\"WARNING\"] = \"WARNING\";\n    LogLevel[\"ERROR\"] = \"ERROR\";\n    LogLevel[\"OFF\"] = \"OFF\";\n})(LogLevel || (LogLevel = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n    ///////////////////\n    // Generic Errors\n    // Unknown Error\n    ErrorCode[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\";\n    // Not Implemented\n    ErrorCode[\"NOT_IMPLEMENTED\"] = \"NOT_IMPLEMENTED\";\n    // Unsupported Operation\n    //   - operation\n    ErrorCode[\"UNSUPPORTED_OPERATION\"] = \"UNSUPPORTED_OPERATION\";\n    // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n    //   - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n    ErrorCode[\"NETWORK_ERROR\"] = \"NETWORK_ERROR\";\n    // Some sort of bad response from the server\n    ErrorCode[\"SERVER_ERROR\"] = \"SERVER_ERROR\";\n    // Timeout\n    ErrorCode[\"TIMEOUT\"] = \"TIMEOUT\";\n    ///////////////////\n    // Operational  Errors\n    // Buffer Overrun\n    ErrorCode[\"BUFFER_OVERRUN\"] = \"BUFFER_OVERRUN\";\n    // Numeric Fault\n    //   - operation: the operation being executed\n    //   - fault: the reason this faulted\n    ErrorCode[\"NUMERIC_FAULT\"] = \"NUMERIC_FAULT\";\n    ///////////////////\n    // Argument Errors\n    // Missing new operator to an object\n    //  - name: The name of the class\n    ErrorCode[\"MISSING_NEW\"] = \"MISSING_NEW\";\n    // Invalid argument (e.g. value is incompatible with type) to a function:\n    //   - argument: The argument name that was invalid\n    //   - value: The value of the argument\n    ErrorCode[\"INVALID_ARGUMENT\"] = \"INVALID_ARGUMENT\";\n    // Missing argument to a function:\n    //   - count: The number of arguments received\n    //   - expectedCount: The number of arguments expected\n    ErrorCode[\"MISSING_ARGUMENT\"] = \"MISSING_ARGUMENT\";\n    // Too many arguments\n    //   - count: The number of arguments received\n    //   - expectedCount: The number of arguments expected\n    ErrorCode[\"UNEXPECTED_ARGUMENT\"] = \"UNEXPECTED_ARGUMENT\";\n    ///////////////////\n    // Blockchain Errors\n    // Call exception\n    //  - transaction: the transaction\n    //  - address?: the contract address\n    //  - args?: The arguments passed into the function\n    //  - method?: The Solidity method signature\n    //  - errorSignature?: The EIP848 error signature\n    //  - errorArgs?: The EIP848 error parameters\n    //  - reason: The reason (only for EIP848 \"Error(string)\")\n    ErrorCode[\"CALL_EXCEPTION\"] = \"CALL_EXCEPTION\";\n    // Insufficient funds (< value + gasLimit * gasPrice)\n    //   - transaction: the transaction attempted\n    ErrorCode[\"INSUFFICIENT_FUNDS\"] = \"INSUFFICIENT_FUNDS\";\n    // Nonce has already been used\n    //   - transaction: the transaction attempted\n    ErrorCode[\"NONCE_EXPIRED\"] = \"NONCE_EXPIRED\";\n    // The replacement fee for the transaction is too low\n    //   - transaction: the transaction attempted\n    ErrorCode[\"REPLACEMENT_UNDERPRICED\"] = \"REPLACEMENT_UNDERPRICED\";\n    // The gas limit could not be estimated\n    //   - transaction: the transaction passed to estimateGas\n    ErrorCode[\"UNPREDICTABLE_GAS_LIMIT\"] = \"UNPREDICTABLE_GAS_LIMIT\";\n    // The transaction was replaced by one with a higher gas price\n    //   - reason: \"cancelled\", \"replaced\" or \"repriced\"\n    //   - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n    //   - hash: original transaction hash\n    //   - replacement: the full TransactionsResponse for the replacement\n    //   - receipt: the receipt of the replacement\n    ErrorCode[\"TRANSACTION_REPLACED\"] = \"TRANSACTION_REPLACED\";\n})(ErrorCode || (ErrorCode = {}));\n;\nconst HEX = \"0123456789abcdef\";\nexport class Logger {\n    constructor(version) {\n        Object.defineProperty(this, \"version\", {\n            enumerable: true,\n            value: version,\n            writable: false\n        });\n    }\n    _log(logLevel, args) {\n        const level = logLevel.toLowerCase();\n        if (LogLevels[level] == null) {\n            this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n        }\n        if (_logLevel > LogLevels[level]) {\n            return;\n        }\n        console.log.apply(console, args);\n    }\n    debug(...args) {\n        this._log(Logger.levels.DEBUG, args);\n    }\n    info(...args) {\n        this._log(Logger.levels.INFO, args);\n    }\n    warn(...args) {\n        this._log(Logger.levels.WARNING, args);\n    }\n    makeError(message, code, params) {\n        // Errors are being censored\n        if (_censorErrors) {\n            return this.makeError(\"censored error\", code, {});\n        }\n        if (!code) {\n            code = Logger.errors.UNKNOWN_ERROR;\n        }\n        if (!params) {\n            params = {};\n        }\n        const messageDetails = [];\n        Object.keys(params).forEach((key) => {\n            const value = params[key];\n            try {\n                if (value instanceof Uint8Array) {\n                    let hex = \"\";\n                    for (let i = 0; i < value.length; i++) {\n                        hex += HEX[value[i] >> 4];\n                        hex += HEX[value[i] & 0x0f];\n                    }\n                    messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n                }\n                else {\n                    messageDetails.push(key + \"=\" + JSON.stringify(value));\n                }\n            }\n            catch (error) {\n                messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n            }\n        });\n        messageDetails.push(`code=${code}`);\n        messageDetails.push(`version=${this.version}`);\n        const reason = message;\n        let url = \"\";\n        switch (code) {\n            case ErrorCode.NUMERIC_FAULT: {\n                url = \"NUMERIC_FAULT\";\n                const fault = message;\n                switch (fault) {\n                    case \"overflow\":\n                    case \"underflow\":\n                    case \"division-by-zero\":\n                        url += \"-\" + fault;\n                        break;\n                    case \"negative-power\":\n                    case \"negative-width\":\n                        url += \"-unsupported\";\n                        break;\n                    case \"unbound-bitwise-result\":\n                        url += \"-unbound-result\";\n                        break;\n                }\n                break;\n            }\n            case ErrorCode.CALL_EXCEPTION:\n            case ErrorCode.INSUFFICIENT_FUNDS:\n            case ErrorCode.MISSING_NEW:\n            case ErrorCode.NONCE_EXPIRED:\n            case ErrorCode.REPLACEMENT_UNDERPRICED:\n            case ErrorCode.TRANSACTION_REPLACED:\n            case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n                url = code;\n                break;\n        }\n        if (url) {\n            message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n        }\n        if (messageDetails.length) {\n            message += \" (\" + messageDetails.join(\", \") + \")\";\n        }\n        // @TODO: Any??\n        const error = new Error(message);\n        error.reason = reason;\n        error.code = code;\n        Object.keys(params).forEach(function (key) {\n            error[key] = params[key];\n        });\n        return error;\n    }\n    throwError(message, code, params) {\n        throw this.makeError(message, code, params);\n    }\n    throwArgumentError(message, name, value) {\n        return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n            argument: name,\n            value: value\n        });\n    }\n    assert(condition, message, code, params) {\n        if (!!condition) {\n            return;\n        }\n        this.throwError(message, code, params);\n    }\n    assertArgument(condition, message, name, value) {\n        if (!!condition) {\n            return;\n        }\n        this.throwArgumentError(message, name, value);\n    }\n    checkNormalize(message) {\n        if (message == null) {\n            message = \"platform missing String.prototype.normalize\";\n        }\n        if (_normalizeError) {\n            this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n                operation: \"String.prototype.normalize\", form: _normalizeError\n            });\n        }\n    }\n    checkSafeUint53(value, message) {\n        if (typeof (value) !== \"number\") {\n            return;\n        }\n        if (message == null) {\n            message = \"value not safe\";\n        }\n        if (value < 0 || value >= 0x1fffffffffffff) {\n            this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n                operation: \"checkSafeInteger\",\n                fault: \"out-of-safe-range\",\n                value: value\n            });\n        }\n        if (value % 1) {\n            this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n                operation: \"checkSafeInteger\",\n                fault: \"non-integer\",\n                value: value\n            });\n        }\n    }\n    checkArgumentCount(count, expectedCount, message) {\n        if (message) {\n            message = \": \" + message;\n        }\n        else {\n            message = \"\";\n        }\n        if (count < expectedCount) {\n            this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n                count: count,\n                expectedCount: expectedCount\n            });\n        }\n        if (count > expectedCount) {\n            this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n                count: count,\n                expectedCount: expectedCount\n            });\n        }\n    }\n    checkNew(target, kind) {\n        if (target === Object || target == null) {\n            this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n        }\n    }\n    checkAbstract(target, kind) {\n        if (target === kind) {\n            this.throwError(\"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\", Logger.errors.UNSUPPORTED_OPERATION, { name: target.name, operation: \"new\" });\n        }\n        else if (target === Object || target == null) {\n            this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n        }\n    }\n    static globalLogger() {\n        if (!_globalLogger) {\n            _globalLogger = new Logger(version);\n        }\n        return _globalLogger;\n    }\n    static setCensorship(censorship, permanent) {\n        if (!censorship && permanent) {\n            this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n                operation: \"setCensorship\"\n            });\n        }\n        if (_permanentCensorErrors) {\n            if (!censorship) {\n                return;\n            }\n            this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n                operation: \"setCensorship\"\n            });\n        }\n        _censorErrors = !!censorship;\n        _permanentCensorErrors = !!permanent;\n    }\n    static setLogLevel(logLevel) {\n        const level = LogLevels[logLevel.toLowerCase()];\n        if (level == null) {\n            Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n            return;\n        }\n        _logLevel = level;\n    }\n    static from(version) {\n        return new Logger(version);\n    }\n}\nLogger.errors = ErrorCode;\nLogger.levels = LogLevel;\n//# sourceMappingURL=index.js.map","export const version = \"strings/5.6.1\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nexport var UnicodeNormalizationForm;\n(function (UnicodeNormalizationForm) {\n    UnicodeNormalizationForm[\"current\"] = \"\";\n    UnicodeNormalizationForm[\"NFC\"] = \"NFC\";\n    UnicodeNormalizationForm[\"NFD\"] = \"NFD\";\n    UnicodeNormalizationForm[\"NFKC\"] = \"NFKC\";\n    UnicodeNormalizationForm[\"NFKD\"] = \"NFKD\";\n})(UnicodeNormalizationForm || (UnicodeNormalizationForm = {}));\n;\nexport var Utf8ErrorReason;\n(function (Utf8ErrorReason) {\n    // A continuation byte was present where there was nothing to continue\n    // - offset = the index the codepoint began in\n    Utf8ErrorReason[\"UNEXPECTED_CONTINUE\"] = \"unexpected continuation byte\";\n    // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n    // - offset = the index the codepoint began in\n    Utf8ErrorReason[\"BAD_PREFIX\"] = \"bad codepoint prefix\";\n    // The string is too short to process the expected codepoint\n    // - offset = the index the codepoint began in\n    Utf8ErrorReason[\"OVERRUN\"] = \"string overrun\";\n    // A missing continuation byte was expected but not found\n    // - offset = the index the continuation byte was expected at\n    Utf8ErrorReason[\"MISSING_CONTINUE\"] = \"missing continuation byte\";\n    // The computed code point is outside the range for UTF-8\n    // - offset       = start of this codepoint\n    // - badCodepoint = the computed codepoint; outside the UTF-8 range\n    Utf8ErrorReason[\"OUT_OF_RANGE\"] = \"out of UTF-8 range\";\n    // UTF-8 strings may not contain UTF-16 surrogate pairs\n    // - offset       = start of this codepoint\n    // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n    Utf8ErrorReason[\"UTF16_SURROGATE\"] = \"UTF-16 surrogate\";\n    // The string is an overlong representation\n    // - offset       = start of this codepoint\n    // - badCodepoint = the computed codepoint; already bounds checked\n    Utf8ErrorReason[\"OVERLONG\"] = \"overlong representation\";\n})(Utf8ErrorReason || (Utf8ErrorReason = {}));\n;\nfunction errorFunc(reason, offset, bytes, output, badCodepoint) {\n    return logger.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, \"bytes\", bytes);\n}\nfunction ignoreFunc(reason, offset, bytes, output, badCodepoint) {\n    // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n    if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n        let i = 0;\n        for (let o = offset + 1; o < bytes.length; o++) {\n            if (bytes[o] >> 6 !== 0x02) {\n                break;\n            }\n            i++;\n        }\n        return i;\n    }\n    // This byte runs us past the end of the string, so just jump to the end\n    // (but the first byte was read already read and therefore skipped)\n    if (reason === Utf8ErrorReason.OVERRUN) {\n        return bytes.length - offset - 1;\n    }\n    // Nothing to skip\n    return 0;\n}\nfunction replaceFunc(reason, offset, bytes, output, badCodepoint) {\n    // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n    if (reason === Utf8ErrorReason.OVERLONG) {\n        output.push(badCodepoint);\n        return 0;\n    }\n    // Put the replacement character into the output\n    output.push(0xfffd);\n    // Otherwise, process as if ignoring errors\n    return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n// Common error handing strategies\nexport const Utf8ErrorFuncs = Object.freeze({\n    error: errorFunc,\n    ignore: ignoreFunc,\n    replace: replaceFunc\n});\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes, onError) {\n    if (onError == null) {\n        onError = Utf8ErrorFuncs.error;\n    }\n    bytes = arrayify(bytes);\n    const result = [];\n    let i = 0;\n    // Invalid bytes are ignored\n    while (i < bytes.length) {\n        const c = bytes[i++];\n        // 0xxx xxxx\n        if (c >> 7 === 0) {\n            result.push(c);\n            continue;\n        }\n        // Multibyte; how many bytes left for this character?\n        let extraLength = null;\n        let overlongMask = null;\n        // 110x xxxx 10xx xxxx\n        if ((c & 0xe0) === 0xc0) {\n            extraLength = 1;\n            overlongMask = 0x7f;\n            // 1110 xxxx 10xx xxxx 10xx xxxx\n        }\n        else if ((c & 0xf0) === 0xe0) {\n            extraLength = 2;\n            overlongMask = 0x7ff;\n            // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n        }\n        else if ((c & 0xf8) === 0xf0) {\n            extraLength = 3;\n            overlongMask = 0xffff;\n        }\n        else {\n            if ((c & 0xc0) === 0x80) {\n                i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n            }\n            else {\n                i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n            }\n            continue;\n        }\n        // Do we have enough bytes in our data?\n        if (i - 1 + extraLength >= bytes.length) {\n            i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n            continue;\n        }\n        // Remove the length prefix from the char\n        let res = c & ((1 << (8 - extraLength - 1)) - 1);\n        for (let j = 0; j < extraLength; j++) {\n            let nextChar = bytes[i];\n            // Invalid continuation byte\n            if ((nextChar & 0xc0) != 0x80) {\n                i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n                res = null;\n                break;\n            }\n            ;\n            res = (res << 6) | (nextChar & 0x3f);\n            i++;\n        }\n        // See above loop for invalid continuation byte\n        if (res === null) {\n            continue;\n        }\n        // Maximum code point\n        if (res > 0x10ffff) {\n            i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n            continue;\n        }\n        // Reserved for UTF-16 surrogate halves\n        if (res >= 0xd800 && res <= 0xdfff) {\n            i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n            continue;\n        }\n        // Check for overlong sequences (more bytes than needed)\n        if (res <= overlongMask) {\n            i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n            continue;\n        }\n        result.push(res);\n    }\n    return result;\n}\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {\n    if (form != UnicodeNormalizationForm.current) {\n        logger.checkNormalize();\n        str = str.normalize(form);\n    }\n    let result = [];\n    for (let i = 0; i < str.length; i++) {\n        const c = str.charCodeAt(i);\n        if (c < 0x80) {\n            result.push(c);\n        }\n        else if (c < 0x800) {\n            result.push((c >> 6) | 0xc0);\n            result.push((c & 0x3f) | 0x80);\n        }\n        else if ((c & 0xfc00) == 0xd800) {\n            i++;\n            const c2 = str.charCodeAt(i);\n            if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n                throw new Error(\"invalid utf-8 string\");\n            }\n            // Surrogate Pair\n            const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n            result.push((pair >> 18) | 0xf0);\n            result.push(((pair >> 12) & 0x3f) | 0x80);\n            result.push(((pair >> 6) & 0x3f) | 0x80);\n            result.push((pair & 0x3f) | 0x80);\n        }\n        else {\n            result.push((c >> 12) | 0xe0);\n            result.push(((c >> 6) & 0x3f) | 0x80);\n            result.push((c & 0x3f) | 0x80);\n        }\n    }\n    return arrayify(result);\n}\n;\nfunction escapeChar(value) {\n    const hex = (\"0000\" + value.toString(16));\n    return \"\\\\u\" + hex.substring(hex.length - 4);\n}\nexport function _toEscapedUtf8String(bytes, onError) {\n    return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n        if (codePoint < 256) {\n            switch (codePoint) {\n                case 8: return \"\\\\b\";\n                case 9: return \"\\\\t\";\n                case 10: return \"\\\\n\";\n                case 13: return \"\\\\r\";\n                case 34: return \"\\\\\\\"\";\n                case 92: return \"\\\\\\\\\";\n            }\n            if (codePoint >= 32 && codePoint < 127) {\n                return String.fromCharCode(codePoint);\n            }\n        }\n        if (codePoint <= 0xffff) {\n            return escapeChar(codePoint);\n        }\n        codePoint -= 0x10000;\n        return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n    }).join(\"\") + '\"';\n}\nexport function _toUtf8String(codePoints) {\n    return codePoints.map((codePoint) => {\n        if (codePoint <= 0xffff) {\n            return String.fromCharCode(codePoint);\n        }\n        codePoint -= 0x10000;\n        return String.fromCharCode((((codePoint >> 10) & 0x3ff) + 0xd800), ((codePoint & 0x3ff) + 0xdc00));\n    }).join(\"\");\n}\nexport function toUtf8String(bytes, onError) {\n    return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\nexport function toUtf8CodePoints(str, form = UnicodeNormalizationForm.current) {\n    return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n//# sourceMappingURL=utf8.js.map","\"use strict\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { arrayify, concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"./utf8\";\nexport function formatBytes32String(text) {\n    // Get the bytes\n    const bytes = toUtf8Bytes(text);\n    // Check we have room for null-termination\n    if (bytes.length > 31) {\n        throw new Error(\"bytes32 string must be less than 32 bytes\");\n    }\n    // Zero-pad (implicitly null-terminates)\n    return hexlify(concat([bytes, HashZero]).slice(0, 32));\n}\nexport function parseBytes32String(bytes) {\n    const data = arrayify(bytes);\n    // Must be 32 bytes with a null-termination\n    if (data.length !== 32) {\n        throw new Error(\"invalid bytes32 - not 32 bytes long\");\n    }\n    if (data[31] !== 0) {\n        throw new Error(\"invalid bytes32 string - no null terminator\");\n    }\n    // Find the null termination\n    let length = 31;\n    while (data[length - 1] === 0) {\n        length--;\n    }\n    // Determine the string value\n    return toUtf8String(data.slice(0, length));\n}\n//# sourceMappingURL=bytes32.js.map","import { Signer } from '@ethersproject/abstract-signer'\nimport { CallOverrides, Contract } from '@ethersproject/contracts'\nimport { BlockTag, JsonRpcProvider, Provider, TransactionReceipt } from '@ethersproject/providers'\nimport { getContractForNetwork } from './configuration'\nimport {\n  address,\n  DEFAULT_REGISTRY_ADDRESS,\n  interpretIdentifier,\n  MESSAGE_PREFIX,\n  MetaSignature,\n  stringToBytes32,\n} from './helpers'\nimport { arrayify, concat, hexConcat, hexlify, isHexString, zeroPad } from '@ethersproject/bytes'\nimport { keccak256 } from '@ethersproject/keccak256'\nimport { formatBytes32String, toUtf8Bytes } from '@ethersproject/strings'\n\n/**\n * A class that can be used to interact with the ERC1056 contract on behalf of a local controller key-pair\n */\nexport class EthrDidController {\n  private contract: Contract\n  private readonly signer?: Signer\n  private readonly address: string\n  public readonly did: string\n  private readonly legacyNonce: boolean\n\n  /**\n   * Creates an EthrDidController instance.\n   *\n   * @param identifier - required - a `did:ethr` string or a publicKeyHex or an ethereum address\n   * @param signer - optional - a Signer that represents the current controller key (owner) of the identifier. If a\n   *   'signer' is not provided, then a 'contract' with an attached signer can be used.\n   * @param contract - optional - a Contract instance representing a ERC1056 contract. At least one of `contract`,\n   *   `provider`, or `rpcUrl` is required\n   * @param chainNameOrId - optional - the network name or chainID, defaults to 'mainnet'\n   * @param provider - optional - a web3 Provider. At least one of `contract`, `provider`, or `rpcUrl` is required\n   * @param rpcUrl - optional - a JSON-RPC URL that can be used to connect to an ethereum network. At least one of\n   *   `contract`, `provider`, or `rpcUrl` is required\n   * @param registry - optional - The ERC1056 registry address. Defaults to\n   *   '0xdca7ef03e98e0dc2b855be647c39abe984fcf21b'. Only used with 'provider' or 'rpcUrl'\n   * @param legacyNonce - optional - If the legacy nonce tracking method should be accounted for. If lesser version of\n   *   did-ethr-registry contract v1.0.0 is used then this should be true.\n   */\n  constructor(\n    identifier: string | address,\n    contract?: Contract,\n    signer?: Signer,\n    chainNameOrId = 'mainnet',\n    provider?: Provider,\n    rpcUrl?: string,\n    registry: string = DEFAULT_REGISTRY_ADDRESS,\n    legacyNonce = true\n  ) {\n    this.legacyNonce = legacyNonce\n    // initialize identifier\n    const { address, publicKey, network } = interpretIdentifier(identifier)\n    const net = network || chainNameOrId\n    // initialize contract connection\n    if (contract) {\n      this.contract = contract\n    } else if (provider || signer?.provider || rpcUrl) {\n      const prov = provider || signer?.provider\n      this.contract = getContractForNetwork({ name: net, provider: prov, registry, rpcUrl })\n    } else {\n      throw new Error(' either a contract instance or a provider or rpcUrl is required to initialize')\n    }\n    this.signer = signer\n    this.address = address\n    let networkString = net ? `${net}:` : ''\n    if (networkString in ['mainnet:', '0x1:']) {\n      networkString = ''\n    }\n    this.did = publicKey ? `did:ethr:${networkString}${publicKey}` : `did:ethr:${networkString}${address}`\n  }\n\n  async getOwner(address: address, blockTag?: BlockTag): Promise<string> {\n    const result = await this.contract.functions.identityOwner(address, { blockTag })\n    return result[0]\n  }\n\n  async attachContract(controller?: address | Promise<address>): Promise<Contract> {\n    const currentOwner = controller ? await controller : await this.getOwner(this.address, 'latest')\n    const signer = this.signer\n      ? this.signer\n      : (<JsonRpcProvider>this.contract.provider).getSigner(currentOwner) || this.contract.signer\n    return this.contract.connect(signer)\n  }\n\n  async changeOwner(newOwner: address, options: CallOverrides = {}): Promise<TransactionReceipt> {\n    // console.log(`changing owner for ${oldOwner} on registry at ${registryContract.address}`)\n    const overrides = {\n      gasLimit: 123456,\n      gasPrice: 1000000000,\n      ...options,\n    }\n\n    const contract = await this.attachContract(overrides.from)\n    delete overrides.from\n\n    const ownerChange = await contract.functions.changeOwner(this.address, newOwner, overrides)\n    return await ownerChange.wait()\n  }\n\n  async createChangeOwnerHash(newOwner: address) {\n    const paddedNonce = await this.getPaddedNonceCompatibility()\n\n    const dataToHash = hexConcat([\n      MESSAGE_PREFIX,\n      this.contract.address,\n      paddedNonce,\n      this.address,\n      concat([toUtf8Bytes('changeOwner'), newOwner]),\n    ])\n    return keccak256(dataToHash)\n  }\n\n  async changeOwnerSigned(\n    newOwner: address,\n    metaSignature: MetaSignature,\n    options: CallOverrides = {}\n  ): Promise<TransactionReceipt> {\n    const overrides = {\n      gasLimit: 123456,\n      gasPrice: 1000000000,\n      ...options,\n    }\n\n    const contract = await this.attachContract(overrides.from)\n    delete overrides.from\n\n    const ownerChange = await contract.functions.changeOwnerSigned(\n      this.address,\n      metaSignature.sigV,\n      metaSignature.sigR,\n      metaSignature.sigS,\n      newOwner,\n      overrides\n    )\n    return await ownerChange.wait()\n  }\n\n  async addDelegate(\n    delegateType: string,\n    delegateAddress: address,\n    exp: number,\n    options: CallOverrides = {}\n  ): Promise<TransactionReceipt> {\n    const overrides = {\n      gasLimit: 123456,\n      gasPrice: 1000000000,\n      ...options,\n    }\n    const contract = await this.attachContract(overrides.from)\n    delete overrides.from\n\n    const delegateTypeBytes = stringToBytes32(delegateType)\n    const addDelegateTx = await contract.functions.addDelegate(\n      this.address,\n      delegateTypeBytes,\n      delegateAddress,\n      exp,\n      overrides\n    )\n    return await addDelegateTx.wait()\n  }\n\n  async createAddDelegateHash(delegateType: string, delegateAddress: address, exp: number) {\n    const paddedNonce = await this.getPaddedNonceCompatibility()\n\n    const dataToHash = hexConcat([\n      MESSAGE_PREFIX,\n      this.contract.address,\n      paddedNonce,\n      this.address,\n      concat([\n        toUtf8Bytes('addDelegate'),\n        formatBytes32String(delegateType),\n        delegateAddress,\n        zeroPad(hexlify(exp), 32),\n      ]),\n    ])\n    return keccak256(dataToHash)\n  }\n\n  async addDelegateSigned(\n    delegateType: string,\n    delegateAddress: address,\n    exp: number,\n    metaSignature: MetaSignature,\n    options: CallOverrides = {}\n  ): Promise<TransactionReceipt> {\n    const overrides = {\n      gasLimit: 123456,\n      gasPrice: 1000000000,\n      ...options,\n    }\n    const contract = await this.attachContract(overrides.from)\n    delete overrides.from\n\n    const delegateTypeBytes = stringToBytes32(delegateType)\n    const addDelegateTx = await contract.functions.addDelegateSigned(\n      this.address,\n      metaSignature.sigV,\n      metaSignature.sigR,\n      metaSignature.sigS,\n      delegateTypeBytes,\n      delegateAddress,\n      exp,\n      overrides\n    )\n    return await addDelegateTx.wait()\n  }\n\n  async revokeDelegate(\n    delegateType: string,\n    delegateAddress: address,\n    options: CallOverrides = {}\n  ): Promise<TransactionReceipt> {\n    const overrides = {\n      gasLimit: 123456,\n      gasPrice: 1000000000,\n      ...options,\n    }\n    delegateType = delegateType.startsWith('0x') ? delegateType : stringToBytes32(delegateType)\n    const contract = await this.attachContract(overrides.from)\n    delete overrides.from\n    const addDelegateTx = await contract.functions.revokeDelegate(\n      this.address,\n      delegateType,\n      delegateAddress,\n      overrides\n    )\n    return await addDelegateTx.wait()\n  }\n\n  async createRevokeDelegateHash(delegateType: string, delegateAddress: address) {\n    const paddedNonce = await this.getPaddedNonceCompatibility()\n\n    const dataToHash = hexConcat([\n      MESSAGE_PREFIX,\n      this.contract.address,\n      paddedNonce,\n      this.address,\n      concat([toUtf8Bytes('revokeDelegate'), formatBytes32String(delegateType), delegateAddress]),\n    ])\n    return keccak256(dataToHash)\n  }\n\n  async revokeDelegateSigned(\n    delegateType: string,\n    delegateAddress: address,\n    metaSignature: MetaSignature,\n    options: CallOverrides = {}\n  ): Promise<TransactionReceipt> {\n    const overrides = {\n      gasLimit: 123456,\n      gasPrice: 1000000000,\n      ...options,\n    }\n    delegateType = delegateType.startsWith('0x') ? delegateType : stringToBytes32(delegateType)\n    const contract = await this.attachContract(overrides.from)\n    delete overrides.from\n    const addDelegateTx = await contract.functions.revokeDelegateSigned(\n      this.address,\n      metaSignature.sigV,\n      metaSignature.sigR,\n      metaSignature.sigS,\n      delegateType,\n      delegateAddress,\n      overrides\n    )\n    return await addDelegateTx.wait()\n  }\n\n  async setAttribute(\n    attrName: string,\n    attrValue: string,\n    exp: number,\n    options: CallOverrides = {}\n  ): Promise<TransactionReceipt> {\n    const overrides = {\n      gasLimit: 123456,\n      gasPrice: 1000000000,\n      controller: undefined,\n      ...options,\n    }\n    attrName = attrName.startsWith('0x') ? attrName : stringToBytes32(attrName)\n    attrValue = attrValue.startsWith('0x') ? attrValue : '0x' + Buffer.from(attrValue, 'utf-8').toString('hex')\n    const contract = await this.attachContract(overrides.from)\n    delete overrides.from\n    const setAttrTx = await contract.functions.setAttribute(this.address, attrName, attrValue, exp, overrides)\n    return await setAttrTx.wait()\n  }\n\n  async createSetAttributeHash(attrName: string, attrValue: string, exp: number) {\n    const paddedNonce = await this.getPaddedNonceCompatibility(true)\n\n    // The incoming attribute value may be a hex encoded key, or an utf8 encoded string (like service endpoints)\n    const encodedValue = isHexString(attrValue) ? attrValue : toUtf8Bytes(attrValue)\n\n    const dataToHash = hexConcat([\n      MESSAGE_PREFIX,\n      this.contract.address,\n      paddedNonce,\n      this.address,\n      concat([toUtf8Bytes('setAttribute'), formatBytes32String(attrName), encodedValue, zeroPad(hexlify(exp), 32)]),\n    ])\n    return keccak256(dataToHash)\n  }\n\n  async setAttributeSigned(\n    attrName: string,\n    attrValue: string,\n    exp: number,\n    metaSignature: MetaSignature,\n    options: CallOverrides = {}\n  ): Promise<TransactionReceipt> {\n    const overrides = {\n      gasLimit: 123456,\n      gasPrice: 1000000000,\n      controller: undefined,\n      ...options,\n    }\n    attrName = attrName.startsWith('0x') ? attrName : stringToBytes32(attrName)\n    attrValue = attrValue.startsWith('0x') ? attrValue : '0x' + Buffer.from(attrValue, 'utf-8').toString('hex')\n    const contract = await this.attachContract(overrides.from)\n    delete overrides.from\n    const setAttrTx = await contract.functions.setAttributeSigned(\n      this.address,\n      metaSignature.sigV,\n      metaSignature.sigR,\n      metaSignature.sigS,\n      attrName,\n      attrValue,\n      exp,\n      overrides\n    )\n    return await setAttrTx.wait()\n  }\n\n  async revokeAttribute(attrName: string, attrValue: string, options: CallOverrides = {}): Promise<TransactionReceipt> {\n    // console.log(`revoking attribute ${attrName}(${attrValue}) for ${identity}`)\n    const overrides = {\n      gasLimit: 123456,\n      gasPrice: 1000000000,\n      ...options,\n    }\n    attrName = attrName.startsWith('0x') ? attrName : stringToBytes32(attrName)\n    attrValue = attrValue.startsWith('0x') ? attrValue : '0x' + Buffer.from(attrValue, 'utf-8').toString('hex')\n    const contract = await this.attachContract(overrides.from)\n    delete overrides.from\n    const revokeAttributeTX = await contract.functions.revokeAttribute(this.address, attrName, attrValue, overrides)\n    return await revokeAttributeTX.wait()\n  }\n\n  async createRevokeAttributeHash(attrName: string, attrValue: string) {\n    const paddedNonce = await this.getPaddedNonceCompatibility(true)\n\n    const dataToHash = hexConcat([\n      MESSAGE_PREFIX,\n      this.contract.address,\n      paddedNonce,\n      this.address,\n      concat([toUtf8Bytes('revokeAttribute'), formatBytes32String(attrName), toUtf8Bytes(attrValue)]),\n    ])\n    return keccak256(dataToHash)\n  }\n\n  /**\n   * The legacy version of the ethr-did-registry contract tracks the nonce as a property of the original owner, and not\n   * as a property of the signer (current owner). That's why we need to differentiate between deployments here, or\n   * otherwise our signature will be computed wrong resulting in a failed TX.\n   *\n   * Not only that, but the nonce is loaded differently for [set/revoke]AttributeSigned methods.\n   */\n  private async getPaddedNonceCompatibility(attribute = false) {\n    let nonceKey\n    if (this.legacyNonce && attribute) {\n      nonceKey = this.address\n    } else {\n      nonceKey = await this.getOwner(this.address)\n    }\n    return zeroPad(arrayify(await this.contract.nonce(nonceKey)), 32)\n  }\n\n  async revokeAttributeSigned(\n    attrName: string,\n    attrValue: string,\n    metaSignature: MetaSignature,\n    options: CallOverrides = {}\n  ): Promise<TransactionReceipt> {\n    // console.log(`revoking attribute ${attrName}(${attrValue}) for ${identity}`)\n    const overrides = {\n      gasLimit: 123456,\n      gasPrice: 1000000000,\n      ...options,\n    }\n    attrName = attrName.startsWith('0x') ? attrName : stringToBytes32(attrName)\n    attrValue = attrValue.startsWith('0x') ? attrValue : '0x' + Buffer.from(attrValue, 'utf-8').toString('hex')\n    const contract = await this.attachContract(overrides.from)\n    delete overrides.from\n    const revokeAttributeTX = await contract.functions.revokeAttributeSigned(\n      this.address,\n      metaSignature.sigV,\n      metaSignature.sigR,\n      metaSignature.sigS,\n      attrName,\n      attrValue,\n      overrides\n    )\n    return await revokeAttributeTX.wait()\n  }\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport { Contract } from '@ethersproject/contracts'\nimport { Log } from '@ethersproject/providers'\nimport { LogDescription } from '@ethersproject/abi'\nimport { bytes32toString, ERC1056Event } from './helpers'\n\nfunction populateEventMetaClass(logResult: LogDescription, blockNumber: number): ERC1056Event {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const result: Record<string, any> = {}\n  if (logResult.eventFragment.inputs.length !== logResult.args.length) {\n    throw new TypeError('malformed event input. wrong number of arguments')\n  }\n  logResult.eventFragment.inputs.forEach((input, index) => {\n    let val = logResult.args[index]\n    if (typeof val === 'object') {\n      val = BigNumber.from(val)\n    }\n    if (input.type === 'bytes32') {\n      val = bytes32toString(val)\n    }\n    result[input.name] = val\n  })\n  result._eventName = logResult.name\n  result.blockNumber = blockNumber\n  return result as ERC1056Event\n}\n\nexport function logDecoder(contract: Contract, logs: Log[]): ERC1056Event[] {\n  const results: ERC1056Event[] = logs.map((log: Log) => {\n    const res = contract.interface.parseLog(log)\n    const event = populateEventMetaClass(res, log.blockNumber)\n    return event\n  })\n  return results\n}\n","import { Base58 } from '@ethersproject/basex'\nimport { BigNumber } from '@ethersproject/bignumber'\nimport { Block, BlockTag } from '@ethersproject/providers'\nimport { ConfigurationOptions, ConfiguredNetworks, configureResolverWithNetworks } from './configuration'\nimport { EthrDidController } from './controller'\nimport {\n  DIDDocument,\n  DIDResolutionOptions,\n  DIDResolutionResult,\n  DIDResolver,\n  ParsedDID,\n  Resolvable,\n  Service,\n  VerificationMethod,\n} from 'did-resolver'\nimport {\n  interpretIdentifier,\n  DIDAttributeChanged,\n  DIDDelegateChanged,\n  ERC1056Event,\n  eventNames,\n  legacyAlgoMap,\n  legacyAttrTypes,\n  LegacyVerificationMethod,\n  verificationMethodTypes,\n  identifierMatcher,\n  nullAddress,\n  DIDOwnerChanged,\n  Errors,\n  strip0x,\n} from './helpers'\nimport { logDecoder } from './logParser'\n\nexport function getResolver(options: ConfigurationOptions): Record<string, DIDResolver> {\n  return new EthrDidResolver(options).build()\n}\n\nexport class EthrDidResolver {\n  private contracts: ConfiguredNetworks\n\n  constructor(options: ConfigurationOptions) {\n    this.contracts = configureResolverWithNetworks(options)\n  }\n\n  /**\n   * returns the current owner of a DID (represented by an address or public key)\n   *\n   * @param address\n   */\n  async getOwner(address: string, networkId: string, blockTag?: BlockTag): Promise<string> {\n    //TODO: check if address or public key\n    return new EthrDidController(address, this.contracts[networkId]).getOwner(address, blockTag)\n  }\n\n  /**\n   * returns the previous change\n   *\n   * @param address\n   */\n  async previousChange(address: string, networkId: string, blockTag?: BlockTag): Promise<BigNumber> {\n    const result = await this.contracts[networkId].functions.changed(address, { blockTag })\n    // console.log(`last change result: '${BigNumber.from(result['0'])}'`)\n    return BigNumber.from(result['0'])\n  }\n\n  async getBlockMetadata(blockHeight: number, networkId: string): Promise<{ height: string; isoDate: string }> {\n    const block: Block = await this.contracts[networkId].provider.getBlock(blockHeight)\n    return {\n      height: block.number.toString(),\n      isoDate: new Date(block.timestamp * 1000).toISOString().replace('.000', ''),\n    }\n  }\n\n  async changeLog(\n    identity: string,\n    networkId: string,\n    blockTag: BlockTag = 'latest'\n  ): Promise<{ address: string; history: ERC1056Event[]; controllerKey?: string; chainId: number }> {\n    const contract = this.contracts[networkId]\n    const provider = contract.provider\n    const hexChainId = networkId.startsWith('0x') ? networkId : undefined\n    //TODO: this can be used to check if the configuration is ok\n    const chainId = hexChainId ? BigNumber.from(hexChainId).toNumber() : (await provider.getNetwork()).chainId\n    const history: ERC1056Event[] = []\n    const { address, publicKey } = interpretIdentifier(identity)\n    const controllerKey = publicKey\n    let previousChange: BigNumber | null = await this.previousChange(address, networkId, blockTag)\n    while (previousChange) {\n      const blockNumber = previousChange\n      const logs = await provider.getLogs({\n        address: contract.address, // networks[networkId].registryAddress,\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        topics: [null as any, `0x000000000000000000000000${address.slice(2)}`],\n        fromBlock: previousChange.toHexString(),\n        toBlock: previousChange.toHexString(),\n      })\n      const events: ERC1056Event[] = logDecoder(contract, logs)\n      events.reverse()\n      previousChange = null\n      for (const event of events) {\n        history.unshift(event)\n        if (event.previousChange.lt(blockNumber)) {\n          previousChange = event.previousChange\n        }\n      }\n    }\n    return { address, history, controllerKey, chainId }\n  }\n\n  wrapDidDocument(\n    did: string,\n    address: string,\n    controllerKey: string | undefined,\n    history: ERC1056Event[],\n    chainId: number,\n    blockHeight: string | number,\n    now: BigNumber\n  ): { didDocument: DIDDocument; deactivated: boolean; versionId: number; nextVersionId: number } {\n    const baseDIDDocument: DIDDocument = {\n      '@context': ['https://www.w3.org/ns/did/v1', 'https://w3id.org/security/suites/secp256k1recovery-2020/v2'],\n      id: did,\n      verificationMethod: [],\n      authentication: [],\n      assertionMethod: [],\n    }\n\n    let controller = address\n\n    const authentication = [`${did}#controller`]\n    const keyAgreement: string[] = []\n\n    let versionId = 0\n    let nextVersionId = Number.POSITIVE_INFINITY\n    let deactivated = false\n    let delegateCount = 0\n    let serviceCount = 0\n    let endpoint = ''\n    const auth: Record<string, string> = {}\n    const keyAgreementRefs: Record<string, string> = {}\n    const pks: Record<string, VerificationMethod> = {}\n    const services: Record<string, Service> = {}\n    for (const event of history) {\n      if (blockHeight !== -1 && event.blockNumber > blockHeight) {\n        if (nextVersionId > event.blockNumber) {\n          nextVersionId = event.blockNumber\n        }\n        continue\n      } else {\n        if (versionId < event.blockNumber) {\n          versionId = event.blockNumber\n        }\n      }\n      const validTo = event.validTo || BigNumber.from(0)\n      const eventIndex = `${event._eventName}-${\n        (<DIDDelegateChanged>event).delegateType || (<DIDAttributeChanged>event).name\n      }-${(<DIDDelegateChanged>event).delegate || (<DIDAttributeChanged>event).value}`\n      if (validTo && validTo.gte(now)) {\n        if (event._eventName === eventNames.DIDDelegateChanged) {\n          const currentEvent = <DIDDelegateChanged>event\n          delegateCount++\n          const delegateType = currentEvent.delegateType //conversion from bytes32 is done in logParser\n          switch (delegateType) {\n            case 'sigAuth':\n              auth[eventIndex] = `${did}#delegate-${delegateCount}`\n            // eslint-disable-line no-fallthrough\n            case 'veriKey':\n              pks[eventIndex] = {\n                id: `${did}#delegate-${delegateCount}`,\n                type: verificationMethodTypes.EcdsaSecp256k1RecoveryMethod2020,\n                controller: did,\n                blockchainAccountId: `eip155:${chainId}:${currentEvent.delegate}`,\n              }\n              break\n          }\n        } else if (event._eventName === eventNames.DIDAttributeChanged) {\n          const currentEvent = <DIDAttributeChanged>event\n          const name = currentEvent.name //conversion from bytes32 is done in logParser\n          const match = name.match(/^did\\/(pub|svc)\\/(\\w+)(\\/(\\w+))?(\\/(\\w+))?$/)\n          if (match) {\n            const section = match[1]\n            const algorithm = match[2]\n            const type = legacyAttrTypes[match[4]] || match[4]\n            const encoding = match[6]\n            switch (section) {\n              case 'pub': {\n                delegateCount++\n                const pk: LegacyVerificationMethod = {\n                  id: `${did}#delegate-${delegateCount}`,\n                  type: `${algorithm}${type}`,\n                  controller: did,\n                }\n                pk.type = legacyAlgoMap[pk.type] || algorithm\n                switch (encoding) {\n                  case null:\n                  case undefined:\n                  case 'hex':\n                    pk.publicKeyHex = strip0x(currentEvent.value)\n                    break\n                  case 'base64':\n                    pk.publicKeyBase64 = Buffer.from(currentEvent.value.slice(2), 'hex').toString('base64')\n                    break\n                  case 'base58':\n                    pk.publicKeyBase58 = Base58.encode(Buffer.from(currentEvent.value.slice(2), 'hex'))\n                    break\n                  case 'pem':\n                    pk.publicKeyPem = Buffer.from(currentEvent.value.slice(2), 'hex').toString()\n                    break\n                  default:\n                    pk.value = strip0x(currentEvent.value)\n                }\n                pks[eventIndex] = pk\n                if (match[4] === 'sigAuth') {\n                  auth[eventIndex] = pk.id\n                } else if (match[4] === 'enc') {\n                  keyAgreementRefs[eventIndex] = pk.id\n                }\n                break\n              }\n              case 'svc':\n                serviceCount++\n                try {\n                  endpoint = JSON.parse(Buffer.from(currentEvent.value.slice(2), 'hex').toString())\n                } catch {\n                  endpoint = Buffer.from(currentEvent.value.slice(2), 'hex').toString()\n                }\n                services[eventIndex] = {\n                  id: `${did}#service-${serviceCount}`,\n                  type: algorithm,\n                  serviceEndpoint: endpoint,\n                }\n                break\n            }\n          }\n        }\n      } else if (event._eventName === eventNames.DIDOwnerChanged) {\n        const currentEvent = <DIDOwnerChanged>event\n        controller = currentEvent.owner\n        if (currentEvent.owner === nullAddress) {\n          deactivated = true\n          break\n        }\n      } else {\n        if (\n          event._eventName === eventNames.DIDDelegateChanged ||\n          (event._eventName === eventNames.DIDAttributeChanged &&\n            (<DIDAttributeChanged>event).name.match(/^did\\/pub\\//))\n        ) {\n          delegateCount++\n        } else if (\n          event._eventName === eventNames.DIDAttributeChanged &&\n          (<DIDAttributeChanged>event).name.match(/^did\\/svc\\//)\n        ) {\n          serviceCount++\n        }\n        delete auth[eventIndex]\n        delete pks[eventIndex]\n        delete services[eventIndex]\n      }\n    }\n\n    const publicKeys: VerificationMethod[] = [\n      {\n        id: `${did}#controller`,\n        type: verificationMethodTypes.EcdsaSecp256k1RecoveryMethod2020,\n        controller: did,\n        blockchainAccountId: `eip155:${chainId}:${controller}`,\n      },\n    ]\n\n    if (controllerKey && controller == address) {\n      publicKeys.push({\n        id: `${did}#controllerKey`,\n        type: verificationMethodTypes.EcdsaSecp256k1VerificationKey2019,\n        controller: did,\n        publicKeyHex: strip0x(controllerKey),\n      })\n      authentication.push(`${did}#controllerKey`)\n    }\n\n    const didDocument: DIDDocument = {\n      ...baseDIDDocument,\n      verificationMethod: publicKeys.concat(Object.values(pks)),\n      authentication: authentication.concat(Object.values(auth)),\n    }\n    if (Object.values(services).length > 0) {\n      didDocument.service = Object.values(services)\n    }\n    if (Object.values(keyAgreementRefs).length > 0) {\n      didDocument.keyAgreement = keyAgreement.concat(Object.values(keyAgreementRefs))\n    }\n    didDocument.assertionMethod = [...(didDocument.verificationMethod?.map((pk) => pk.id) || [])]\n\n    return deactivated\n      ? {\n          didDocument: { ...baseDIDDocument, '@context': 'https://www.w3.org/ns/did/v1' },\n          deactivated,\n          versionId,\n          nextVersionId,\n        }\n      : { didDocument, deactivated, versionId, nextVersionId }\n  }\n\n  async resolve(\n    did: string,\n    parsed: ParsedDID,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    _unused: Resolvable,\n    options: DIDResolutionOptions\n  ): Promise<DIDResolutionResult> {\n    const fullId = parsed.id.match(identifierMatcher)\n    if (!fullId) {\n      return {\n        didResolutionMetadata: {\n          error: Errors.invalidDid,\n          message: `Not a valid did:ethr: ${parsed.id}`,\n        },\n        didDocumentMetadata: {},\n        didDocument: null,\n      }\n    }\n    const id = fullId[2]\n    const networkId = !fullId[1] ? 'mainnet' : fullId[1].slice(0, -1)\n    let blockTag: string | number = options.blockTag || 'latest'\n    if (typeof parsed.query === 'string') {\n      const qParams = new URLSearchParams(parsed.query)\n      blockTag = qParams.get('versionId') ?? blockTag\n      try {\n        blockTag = Number.parseInt(<string>blockTag)\n      } catch (e) {\n        blockTag = 'latest'\n        // invalid versionId parameters are ignored\n      }\n    }\n\n    if (!this.contracts[networkId]) {\n      return {\n        didResolutionMetadata: {\n          error: Errors.unknownNetwork,\n          message: `The DID resolver does not have a configuration for network: ${networkId}`,\n        },\n        didDocumentMetadata: {},\n        didDocument: null,\n      }\n    }\n\n    let now = BigNumber.from(Math.floor(new Date().getTime() / 1000))\n\n    if (typeof blockTag === 'number') {\n      const block = await this.getBlockMetadata(blockTag, networkId)\n      now = BigNumber.from(Date.parse(block.isoDate) / 1000)\n    } else {\n      // 'latest'\n    }\n\n    const { address, history, controllerKey, chainId } = await this.changeLog(id, networkId, 'latest')\n    try {\n      const { didDocument, deactivated, versionId, nextVersionId } = this.wrapDidDocument(\n        did,\n        address,\n        controllerKey,\n        history,\n        chainId,\n        blockTag,\n        now\n      )\n      const status = deactivated ? { deactivated: true } : {}\n      let versionMeta = {}\n      let versionMetaNext = {}\n      if (versionId !== 0) {\n        const block = await this.getBlockMetadata(versionId, networkId)\n        versionMeta = {\n          versionId: block.height,\n          updated: block.isoDate,\n        }\n      }\n      if (nextVersionId !== Number.POSITIVE_INFINITY) {\n        const block = await this.getBlockMetadata(nextVersionId, networkId)\n        versionMetaNext = {\n          nextVersionId: block.height,\n          nextUpdate: block.isoDate,\n        }\n      }\n      return {\n        didDocumentMetadata: { ...status, ...versionMeta, ...versionMetaNext },\n        didResolutionMetadata: { contentType: 'application/did+ld+json' },\n        didDocument,\n      }\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    } catch (e: any) {\n      return {\n        didResolutionMetadata: {\n          error: Errors.notFound,\n          message: e.toString(), // This is not in spec, nut may be helpful\n        },\n        didDocumentMetadata: {},\n        didDocument: null,\n      }\n    }\n  }\n\n  build(): Record<string, DIDResolver> {\n    return { ethr: this.resolve.bind(this) }\n  }\n}\n"],"names":["identifierMatcher","nullAddress","DEFAULT_REGISTRY_ADDRESS","MESSAGE_PREFIX","verificationMethodTypes","eventNames","legacyAttrTypes","sigAuth","veriKey","enc","legacyAlgoMap","Secp256k1VerificationKey2018","EcdsaSecp256k1VerificationKey2019","Ed25519SignatureAuthentication2018","Ed25519VerificationKey2018","Secp256k1SignatureAuthentication2018","RSAVerificationKey2018","X25519KeyAgreementKey2019","strip0x","input","startsWith","slice","bytes32toString","buff","Buffer","from","toString","replace","stringToBytes32","str","buffStr","repeat","length","interpretIdentifier","identifier","id","network","undefined","split","components","splice","join","address","computeAddress","publicKey","getAddress","Errors","deployments","chainId","registry","name","legacyNonce","description","infuraNames","polygon","aurora","knownInfuraNames","configureNetworksWithInfura","projectId","networks","map","n","existingDeployment","find","d","infuraName","rpcUrl","filter","conf","configureNetworks","getContractForNetwork","provider","web3","currentProvider","chainIdRaw","BigNumber","toNumber","JsonRpcProvider","Error","contract","ContractFactory","fromSolidity","EthereumDIDRegistry","attach","connect","configureNetwork","net","reduce","configureResolverWithNetworks","infuraProjectId","Object","keys","version","arrayify","bytes","hexlify","concat","EthrDidController","constructor","signer","chainNameOrId","did","prov","networkString","getOwner","blockTag","functions","identityOwner","result","attachContract","controller","currentOwner","getSigner","changeOwner","newOwner","options","overrides","gasLimit","gasPrice","ownerChange","wait","createChangeOwnerHash","getPaddedNonceCompatibility","paddedNonce","dataToHash","hexConcat","toUtf8Bytes","keccak256","changeOwnerSigned","metaSignature","sigV","sigR","sigS","addDelegate","delegateType","delegateAddress","exp","delegateTypeBytes","addDelegateTx","createAddDelegateHash","formatBytes32String","zeroPad","addDelegateSigned","revokeDelegate","createRevokeDelegateHash","revokeDelegateSigned","setAttribute","attrName","attrValue","setAttrTx","createSetAttributeHash","encodedValue","isHexString","setAttributeSigned","revokeAttribute","revokeAttributeTX","createRevokeAttributeHash","attribute","nonce","nonceKey","revokeAttributeSigned","populateEventMetaClass","logResult","blockNumber","eventFragment","inputs","args","TypeError","forEach","index","val","type","_eventName","logDecoder","logs","results","log","res","interface","parseLog","event","pact","state","value","s","v","o","bind","observer","prototype","then","onFulfilled","callback","e","_this","thenable","test","update","body","shouldContinue","stage","updateValue","_resumeAfterTest","_resumeAfterBody","_resumeAfterUpdate","reject","getResolver","EthrDidResolver","build","contracts","networkId","previousChange","changed","getBlockMetadata","blockHeight","getBlock","block","height","number","isoDate","Date","timestamp","toISOString","changeLog","identity","hexChainId","history","controllerKey","getLogs","topics","fromBlock","toHexString","toBlock","events","reverse","unshift","lt","getNetwork","wrapDidDocument","now","baseDIDDocument","verificationMethod","authentication","assertionMethod","keyAgreement","versionId","nextVersionId","Number","POSITIVE_INFINITY","deactivated","delegateCount","serviceCount","endpoint","auth","keyAgreementRefs","pks","services","validTo","eventIndex","delegate","gte","DIDDelegateChanged","currentEvent","EcdsaSecp256k1RecoveryMethod2020","blockchainAccountId","DIDAttributeChanged","match","section","algorithm","encoding","pk","publicKeyHex","publicKeyBase64","publicKeyBase58","Base58","encode","publicKeyPem","JSON","parse","serviceEndpoint","DIDOwnerChanged","owner","publicKeys","push","didDocument","values","service","resolve","parsed","_unused","didDocumentMetadata","status","versionMeta","versionMetaNext","didResolutionMetadata","contentType","nextUpdate","updated","error","notFound","message","fullId","invalidDid","query","qParams","URLSearchParams","get","parseInt","unknownNetwork","Math","floor","getTime","ethr"],"mappings":"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"}