@thurinlabs/identity-kit 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -45,7 +45,7 @@ The rest, all covered in the [docs](https://docs.thurin.id/#/sdk):
45
45
  - **Proofs:** `identifyProof`, `verifyProof` (GitHub, DNS, Farcaster, Codeberg, Mastodon; a GitHub or Codeberg proof must belong to the account in its URL).
46
46
  - **Claim history:** `claimFates`, `claimFateText`, `expiresSoon`, `expiresSoonText`.
47
47
  - **Records:** `kindName`, `checkKindName`, `checkRecordValue`, `fetchRecords`, `pickRecords`, `pageRecords`, `parseRecord`, and the `thurin.releases` helpers.
48
- - **Permissions:** `attestTypedData`, `reattestTypedData`, `updateKeyTypedData`, `revokeTypedData`, `setRecordTypedData`, `markCompromisedTypedData`, for the registry's `…For` writes. To mark an already revoked claim compromised, sign `markCompromisedTypedData` alone.
48
+ - **Permissions:** `attestTypedData`, `reattestTypedData`, `updateKeyTypedData`, `revokeTypedData`, `setRecordTypedData`, `markCompromisedTypedData`, for the registry's `…For` writes. To mark an already revoked claim compromised, sign `markCompromisedTypedData` alone. `permissionSigned(client, typedData, signature, owner)` judges a signed permission the way the registry does: the owner's key (EIP-7702 accounts too), else the owner account's own answer (EIP-1271, for Safes and smart-account wallets).
49
49
  - **Keys:** `parsePgpKey`, `leanKey`, `claimSignature`, `sshKeys` (SSH keys as `authorized_keys` lines), `stripEmailUserIDs`, fingerprint and key-ID helpers.
50
50
  - **Encrypt:** `encryptionKeyFor` (only the claim that counts, with a valid encryption subkey; says when the key arrived in the last 7 days), `encryptTo` (hides the recipient by default), `encryptRefusalText`, `keyChangedText`.
51
51
  - **ENS:** `fetchEnsHint`, `ensHintWrite` for the `id.thurin` record.
@@ -736,7 +736,7 @@ async function sshKeys(input) {
736
736
  }
737
737
 
738
738
  // src/core/authorization.ts
739
- import { hashTypedData, keccak256 as keccak2562, stringToHex } from "viem";
739
+ import { hashTypedData, keccak256 as keccak2562, stringToHex, recoverTypedDataAddress, isErc6492Signature } from "viem";
740
740
  var EIP712_NAME = "Thurin PGPRegistry";
741
741
  var EIP712_VERSION = "3";
742
742
  function registryDomain(chainId, verifyingContract) {
@@ -862,6 +862,34 @@ function markCompromisedTypedData(chainId, registry, a) {
862
862
  function authorizationDigest(typedData) {
863
863
  return hashTypedData(typedData);
864
864
  }
865
+ var ERC1271_MAGIC = "0x1626ba7e";
866
+ var ERC1271_ABI = [{
867
+ type: "function",
868
+ name: "isValidSignature",
869
+ stateMutability: "view",
870
+ inputs: [{ name: "hash", type: "bytes32" }, { name: "signature", type: "bytes" }],
871
+ outputs: [{ name: "", type: "bytes4" }]
872
+ }];
873
+ async function permissionSigned(client, typedData, signature, owner) {
874
+ const code = await client.getCode({ address: owner }).catch(() => void 0);
875
+ const deployed = !!code && code !== "0x";
876
+ if (isErc6492Signature(signature)) {
877
+ return { ok: false, reason: deployed ? "This signature was made before the account was on-chain. Sign again, now that it is" : "This smart account isn't on-chain yet, so the registry can't check its signature. Send any transaction from it first (that creates it), then sign again" };
878
+ }
879
+ const signer = await recoverTypedDataAddress({ ...typedData, signature }).catch(() => void 0);
880
+ if (signer && signer.toLowerCase() === owner.toLowerCase()) return { ok: true };
881
+ if (deployed) {
882
+ const answer = await client.readContract({
883
+ address: owner,
884
+ abi: ERC1271_ABI,
885
+ functionName: "isValidSignature",
886
+ args: [authorizationDigest(typedData), signature]
887
+ }).catch(() => void 0);
888
+ if (answer === ERC1271_MAGIC) return { ok: true };
889
+ return { ok: false, reason: `The account ${owner} doesn't accept this signature as its own` };
890
+ }
891
+ return { ok: false, reason: signer ? `The signature is from ${signer}, not ${owner}` : "The signature can't be read", signer };
892
+ }
865
893
  function recordKind(name) {
866
894
  return keccak2562(stringToHex(name));
867
895
  }
@@ -3321,6 +3349,7 @@ export {
3321
3349
  setRecordTypedData,
3322
3350
  markCompromisedTypedData,
3323
3351
  authorizationDigest,
3352
+ permissionSigned,
3324
3353
  recordKind,
3325
3354
  REGISTRY_ABI,
3326
3355
  REGISTRY_ADDRESS,
@@ -862,6 +862,34 @@ function markCompromisedTypedData(chainId, registry, a) {
862
862
  function authorizationDigest(typedData) {
863
863
  return _viem.hashTypedData.call(void 0, typedData);
864
864
  }
865
+ var ERC1271_MAGIC = "0x1626ba7e";
866
+ var ERC1271_ABI = [{
867
+ type: "function",
868
+ name: "isValidSignature",
869
+ stateMutability: "view",
870
+ inputs: [{ name: "hash", type: "bytes32" }, { name: "signature", type: "bytes" }],
871
+ outputs: [{ name: "", type: "bytes4" }]
872
+ }];
873
+ async function permissionSigned(client, typedData, signature, owner) {
874
+ const code = await client.getCode({ address: owner }).catch(() => void 0);
875
+ const deployed = !!code && code !== "0x";
876
+ if (_viem.isErc6492Signature.call(void 0, signature)) {
877
+ return { ok: false, reason: deployed ? "This signature was made before the account was on-chain. Sign again, now that it is" : "This smart account isn't on-chain yet, so the registry can't check its signature. Send any transaction from it first (that creates it), then sign again" };
878
+ }
879
+ const signer = await _viem.recoverTypedDataAddress.call(void 0, { ...typedData, signature }).catch(() => void 0);
880
+ if (signer && signer.toLowerCase() === owner.toLowerCase()) return { ok: true };
881
+ if (deployed) {
882
+ const answer = await client.readContract({
883
+ address: owner,
884
+ abi: ERC1271_ABI,
885
+ functionName: "isValidSignature",
886
+ args: [authorizationDigest(typedData), signature]
887
+ }).catch(() => void 0);
888
+ if (answer === ERC1271_MAGIC) return { ok: true };
889
+ return { ok: false, reason: `The account ${owner} doesn't accept this signature as its own` };
890
+ }
891
+ return { ok: false, reason: signer ? `The signature is from ${signer}, not ${owner}` : "The signature can't be read", signer };
892
+ }
865
893
  function recordKind(name) {
866
894
  return _viem.keccak256.call(void 0, _viem.stringToHex.call(void 0, name));
867
895
  }
@@ -3374,4 +3402,5 @@ async function fetchEnsHint(client, name, verifiedFingerprint) {
3374
3402
 
3375
3403
 
3376
3404
 
3377
- exports.normalizeFingerprint = normalizeFingerprint; exports.sameFingerprint = sameFingerprint; exports.fingerprintToBytes = fingerprintToBytes; exports.bytesToFingerprint = bytesToFingerprint; exports.fingerprintHash = fingerprintHash; exports.keyIdOf = keyIdOf; exports.keyIdToBytes = keyIdToBytes; exports.identifyProof = identifyProof; exports.displayUrl = displayUrl; exports.proofHref = proofHref; exports.proofSecondaryHref = proofSecondaryHref; exports.FARCASTER_HUB = FARCASTER_HUB; exports.verifyProof = verifyProof; exports.statementText = statementText; exports.parsePgpKey = parsePgpKey; exports.verifyClearsigned = verifyClearsigned; exports.verifyStatementSignature = verifyStatementSignature; exports.verifyAttestation = verifyAttestation; exports.stripEmailUserIDs = stripEmailUserIDs; exports.hasEmailUserID = hasEmailUserID; exports.leanKey = leanKey; exports.claimSignature = claimSignature; exports.signatureEmail = signatureEmail; exports.payloadText = payloadText; exports.sshKeys = sshKeys; exports.EIP712_NAME = EIP712_NAME; exports.EIP712_VERSION = EIP712_VERSION; exports.registryDomain = registryDomain; exports.AUTHORIZATION_TYPES = AUTHORIZATION_TYPES; exports.REVOKE_REASONS = REVOKE_REASONS; exports.OWNER_REVOKE_REASONS = OWNER_REVOKE_REASONS; exports.attestTypedData = attestTypedData; exports.reattestTypedData = reattestTypedData; exports.updateKeyTypedData = updateKeyTypedData; exports.revokeTypedData = revokeTypedData; exports.setRecordTypedData = setRecordTypedData; exports.markCompromisedTypedData = markCompromisedTypedData; exports.authorizationDigest = authorizationDigest; exports.recordKind = recordKind; exports.REGISTRY_ABI = REGISTRY_ABI; exports.REGISTRY_ADDRESS = REGISTRY_ADDRESS; exports.NETWORKS = NETWORKS; exports.isNetworkName = isNetworkName; exports.getRegistry = getRegistry; exports.chainFor = chainFor; exports.CLAIM_LIMIT = CLAIM_LIMIT; exports.readClaims = readClaims; exports.keyStanding = keyStanding; exports.findOwners = findOwners; exports.CLAIM_CHECK_LABEL = CLAIM_CHECK_LABEL; exports.formatClaimDate = formatClaimDate; exports.claimCheckText = claimCheckText; exports.keyProblemText = keyProblemText; exports.expiresSoon = expiresSoon; exports.expiresSoonText = expiresSoonText; exports.claimFates = claimFates; exports.claimFateText = claimFateText; exports.encryptionKeyFor = encryptionKeyFor; exports.encryptRefusalText = encryptRefusalText; exports.keyChangedText = keyChangedText; exports.encryptTo = encryptTo; exports.CONTRACT_ERROR_TEXT = CONTRACT_ERROR_TEXT; exports.contractErrorName = contractErrorName; exports.contractErrorText = contractErrorText; exports.MAX_RECORD_BYTES = MAX_RECORD_BYTES; exports.MAX_KIND_BYTES = MAX_KIND_BYTES; exports.kindName = kindName; exports.checkKindName = checkKindName; exports.checkRecordValue = checkRecordValue; exports.KNOWN_KINDS = KNOWN_KINDS; exports.parseReleases = parseReleases; exports.addRelease = addRelease; exports.renderReleases = renderReleases; exports.parseRecord = parseRecord; exports.pickRecords = pickRecords; exports.pageRecords = pageRecords; exports.fetchRecords = fetchRecords; exports.IPFS_GATEWAYS = IPFS_GATEWAYS; exports.IPFS_GATEWAY = IPFS_GATEWAY; exports.ARWEAVE_GATEWAY = ARWEAVE_GATEWAY; exports.avatarUrl = avatarUrl; exports.avatarFallbacks = avatarFallbacks; exports.parseNftAvatar = parseNftAvatar; exports.NFT_AVATAR_ABI = NFT_AVATAR_ABI; exports.nftAvatarImage = nftAvatarImage; exports.ENS_HINT_KEY = ENS_HINT_KEY; exports.ensHintFor = ensHintFor; exports.ensHintValue = ensHintValue; exports.ENS_TEXT_RESOLVER_ABI = ENS_TEXT_RESOLVER_ABI; exports.ensHintWrite = ensHintWrite; exports.fetchEnsHint = fetchEnsHint;
3405
+
3406
+ exports.normalizeFingerprint = normalizeFingerprint; exports.sameFingerprint = sameFingerprint; exports.fingerprintToBytes = fingerprintToBytes; exports.bytesToFingerprint = bytesToFingerprint; exports.fingerprintHash = fingerprintHash; exports.keyIdOf = keyIdOf; exports.keyIdToBytes = keyIdToBytes; exports.identifyProof = identifyProof; exports.displayUrl = displayUrl; exports.proofHref = proofHref; exports.proofSecondaryHref = proofSecondaryHref; exports.FARCASTER_HUB = FARCASTER_HUB; exports.verifyProof = verifyProof; exports.statementText = statementText; exports.parsePgpKey = parsePgpKey; exports.verifyClearsigned = verifyClearsigned; exports.verifyStatementSignature = verifyStatementSignature; exports.verifyAttestation = verifyAttestation; exports.stripEmailUserIDs = stripEmailUserIDs; exports.hasEmailUserID = hasEmailUserID; exports.leanKey = leanKey; exports.claimSignature = claimSignature; exports.signatureEmail = signatureEmail; exports.payloadText = payloadText; exports.sshKeys = sshKeys; exports.EIP712_NAME = EIP712_NAME; exports.EIP712_VERSION = EIP712_VERSION; exports.registryDomain = registryDomain; exports.AUTHORIZATION_TYPES = AUTHORIZATION_TYPES; exports.REVOKE_REASONS = REVOKE_REASONS; exports.OWNER_REVOKE_REASONS = OWNER_REVOKE_REASONS; exports.attestTypedData = attestTypedData; exports.reattestTypedData = reattestTypedData; exports.updateKeyTypedData = updateKeyTypedData; exports.revokeTypedData = revokeTypedData; exports.setRecordTypedData = setRecordTypedData; exports.markCompromisedTypedData = markCompromisedTypedData; exports.authorizationDigest = authorizationDigest; exports.permissionSigned = permissionSigned; exports.recordKind = recordKind; exports.REGISTRY_ABI = REGISTRY_ABI; exports.REGISTRY_ADDRESS = REGISTRY_ADDRESS; exports.NETWORKS = NETWORKS; exports.isNetworkName = isNetworkName; exports.getRegistry = getRegistry; exports.chainFor = chainFor; exports.CLAIM_LIMIT = CLAIM_LIMIT; exports.readClaims = readClaims; exports.keyStanding = keyStanding; exports.findOwners = findOwners; exports.CLAIM_CHECK_LABEL = CLAIM_CHECK_LABEL; exports.formatClaimDate = formatClaimDate; exports.claimCheckText = claimCheckText; exports.keyProblemText = keyProblemText; exports.expiresSoon = expiresSoon; exports.expiresSoonText = expiresSoonText; exports.claimFates = claimFates; exports.claimFateText = claimFateText; exports.encryptionKeyFor = encryptionKeyFor; exports.encryptRefusalText = encryptRefusalText; exports.keyChangedText = keyChangedText; exports.encryptTo = encryptTo; exports.CONTRACT_ERROR_TEXT = CONTRACT_ERROR_TEXT; exports.contractErrorName = contractErrorName; exports.contractErrorText = contractErrorText; exports.MAX_RECORD_BYTES = MAX_RECORD_BYTES; exports.MAX_KIND_BYTES = MAX_KIND_BYTES; exports.kindName = kindName; exports.checkKindName = checkKindName; exports.checkRecordValue = checkRecordValue; exports.KNOWN_KINDS = KNOWN_KINDS; exports.parseReleases = parseReleases; exports.addRelease = addRelease; exports.renderReleases = renderReleases; exports.parseRecord = parseRecord; exports.pickRecords = pickRecords; exports.pageRecords = pageRecords; exports.fetchRecords = fetchRecords; exports.IPFS_GATEWAYS = IPFS_GATEWAYS; exports.IPFS_GATEWAY = IPFS_GATEWAY; exports.ARWEAVE_GATEWAY = ARWEAVE_GATEWAY; exports.avatarUrl = avatarUrl; exports.avatarFallbacks = avatarFallbacks; exports.parseNftAvatar = parseNftAvatar; exports.NFT_AVATAR_ABI = NFT_AVATAR_ABI; exports.nftAvatarImage = nftAvatarImage; exports.ENS_HINT_KEY = ENS_HINT_KEY; exports.ensHintFor = ensHintFor; exports.ensHintValue = ensHintValue; exports.ENS_TEXT_RESOLVER_ABI = ENS_TEXT_RESOLVER_ABI; exports.ensHintWrite = ensHintWrite; exports.fetchEnsHint = fetchEnsHint;
package/dist/core.cjs CHANGED
@@ -90,8 +90,8 @@
90
90
 
91
91
 
92
92
 
93
- var _chunkDJGCYNJNcjs = require('./chunk-DJGCYNJN.cjs');
94
93
 
94
+ var _chunkT4VPFPFPcjs = require('./chunk-T4VPFPFP.cjs');
95
95
 
96
96
 
97
97
 
@@ -183,4 +183,6 @@ var _chunkDJGCYNJNcjs = require('./chunk-DJGCYNJN.cjs');
183
183
 
184
184
 
185
185
 
186
- exports.ARWEAVE_GATEWAY = _chunkDJGCYNJNcjs.ARWEAVE_GATEWAY; exports.AUTHORIZATION_TYPES = _chunkDJGCYNJNcjs.AUTHORIZATION_TYPES; exports.CLAIM_CHECK_LABEL = _chunkDJGCYNJNcjs.CLAIM_CHECK_LABEL; exports.CLAIM_LIMIT = _chunkDJGCYNJNcjs.CLAIM_LIMIT; exports.CONTRACT_ERROR_TEXT = _chunkDJGCYNJNcjs.CONTRACT_ERROR_TEXT; exports.EIP712_NAME = _chunkDJGCYNJNcjs.EIP712_NAME; exports.EIP712_VERSION = _chunkDJGCYNJNcjs.EIP712_VERSION; exports.ENS_HINT_KEY = _chunkDJGCYNJNcjs.ENS_HINT_KEY; exports.ENS_TEXT_RESOLVER_ABI = _chunkDJGCYNJNcjs.ENS_TEXT_RESOLVER_ABI; exports.FARCASTER_HUB = _chunkDJGCYNJNcjs.FARCASTER_HUB; exports.IPFS_GATEWAY = _chunkDJGCYNJNcjs.IPFS_GATEWAY; exports.IPFS_GATEWAYS = _chunkDJGCYNJNcjs.IPFS_GATEWAYS; exports.KNOWN_KINDS = _chunkDJGCYNJNcjs.KNOWN_KINDS; exports.MAX_KIND_BYTES = _chunkDJGCYNJNcjs.MAX_KIND_BYTES; exports.MAX_RECORD_BYTES = _chunkDJGCYNJNcjs.MAX_RECORD_BYTES; exports.NETWORKS = _chunkDJGCYNJNcjs.NETWORKS; exports.NFT_AVATAR_ABI = _chunkDJGCYNJNcjs.NFT_AVATAR_ABI; exports.OWNER_REVOKE_REASONS = _chunkDJGCYNJNcjs.OWNER_REVOKE_REASONS; exports.REGISTRY_ABI = _chunkDJGCYNJNcjs.REGISTRY_ABI; exports.REGISTRY_ADDRESS = _chunkDJGCYNJNcjs.REGISTRY_ADDRESS; exports.REVOKE_REASONS = _chunkDJGCYNJNcjs.REVOKE_REASONS; exports.addRelease = _chunkDJGCYNJNcjs.addRelease; exports.attestTypedData = _chunkDJGCYNJNcjs.attestTypedData; exports.authorizationDigest = _chunkDJGCYNJNcjs.authorizationDigest; exports.avatarFallbacks = _chunkDJGCYNJNcjs.avatarFallbacks; exports.avatarUrl = _chunkDJGCYNJNcjs.avatarUrl; exports.bytesToFingerprint = _chunkDJGCYNJNcjs.bytesToFingerprint; exports.chainFor = _chunkDJGCYNJNcjs.chainFor; exports.checkKindName = _chunkDJGCYNJNcjs.checkKindName; exports.checkRecordValue = _chunkDJGCYNJNcjs.checkRecordValue; exports.claimCheckText = _chunkDJGCYNJNcjs.claimCheckText; exports.claimFateText = _chunkDJGCYNJNcjs.claimFateText; exports.claimFates = _chunkDJGCYNJNcjs.claimFates; exports.claimSignature = _chunkDJGCYNJNcjs.claimSignature; exports.contractErrorName = _chunkDJGCYNJNcjs.contractErrorName; exports.contractErrorText = _chunkDJGCYNJNcjs.contractErrorText; exports.displayUrl = _chunkDJGCYNJNcjs.displayUrl; exports.encryptRefusalText = _chunkDJGCYNJNcjs.encryptRefusalText; exports.encryptTo = _chunkDJGCYNJNcjs.encryptTo; exports.encryptionKeyFor = _chunkDJGCYNJNcjs.encryptionKeyFor; exports.ensHintFor = _chunkDJGCYNJNcjs.ensHintFor; exports.ensHintValue = _chunkDJGCYNJNcjs.ensHintValue; exports.ensHintWrite = _chunkDJGCYNJNcjs.ensHintWrite; exports.expiresSoon = _chunkDJGCYNJNcjs.expiresSoon; exports.expiresSoonText = _chunkDJGCYNJNcjs.expiresSoonText; exports.fetchEnsHint = _chunkDJGCYNJNcjs.fetchEnsHint; exports.fetchRecords = _chunkDJGCYNJNcjs.fetchRecords; exports.findOwners = _chunkDJGCYNJNcjs.findOwners; exports.fingerprintHash = _chunkDJGCYNJNcjs.fingerprintHash; exports.fingerprintToBytes = _chunkDJGCYNJNcjs.fingerprintToBytes; exports.formatClaimDate = _chunkDJGCYNJNcjs.formatClaimDate; exports.getRegistry = _chunkDJGCYNJNcjs.getRegistry; exports.hasEmailUserID = _chunkDJGCYNJNcjs.hasEmailUserID; exports.identifyProof = _chunkDJGCYNJNcjs.identifyProof; exports.isNetworkName = _chunkDJGCYNJNcjs.isNetworkName; exports.keyChangedText = _chunkDJGCYNJNcjs.keyChangedText; exports.keyIdOf = _chunkDJGCYNJNcjs.keyIdOf; exports.keyIdToBytes = _chunkDJGCYNJNcjs.keyIdToBytes; exports.keyProblemText = _chunkDJGCYNJNcjs.keyProblemText; exports.keyStanding = _chunkDJGCYNJNcjs.keyStanding; exports.kindName = _chunkDJGCYNJNcjs.kindName; exports.leanKey = _chunkDJGCYNJNcjs.leanKey; exports.markCompromisedTypedData = _chunkDJGCYNJNcjs.markCompromisedTypedData; exports.nftAvatarImage = _chunkDJGCYNJNcjs.nftAvatarImage; exports.normalizeFingerprint = _chunkDJGCYNJNcjs.normalizeFingerprint; exports.pageRecords = _chunkDJGCYNJNcjs.pageRecords; exports.parseNftAvatar = _chunkDJGCYNJNcjs.parseNftAvatar; exports.parsePgpKey = _chunkDJGCYNJNcjs.parsePgpKey; exports.parseRecord = _chunkDJGCYNJNcjs.parseRecord; exports.parseReleases = _chunkDJGCYNJNcjs.parseReleases; exports.payloadText = _chunkDJGCYNJNcjs.payloadText; exports.pickRecords = _chunkDJGCYNJNcjs.pickRecords; exports.proofHref = _chunkDJGCYNJNcjs.proofHref; exports.proofSecondaryHref = _chunkDJGCYNJNcjs.proofSecondaryHref; exports.readClaims = _chunkDJGCYNJNcjs.readClaims; exports.reattestTypedData = _chunkDJGCYNJNcjs.reattestTypedData; exports.recordKind = _chunkDJGCYNJNcjs.recordKind; exports.registryDomain = _chunkDJGCYNJNcjs.registryDomain; exports.renderReleases = _chunkDJGCYNJNcjs.renderReleases; exports.revokeTypedData = _chunkDJGCYNJNcjs.revokeTypedData; exports.sameFingerprint = _chunkDJGCYNJNcjs.sameFingerprint; exports.setRecordTypedData = _chunkDJGCYNJNcjs.setRecordTypedData; exports.signatureEmail = _chunkDJGCYNJNcjs.signatureEmail; exports.sshKeys = _chunkDJGCYNJNcjs.sshKeys; exports.statementText = _chunkDJGCYNJNcjs.statementText; exports.stripEmailUserIDs = _chunkDJGCYNJNcjs.stripEmailUserIDs; exports.updateKeyTypedData = _chunkDJGCYNJNcjs.updateKeyTypedData; exports.verifyAttestation = _chunkDJGCYNJNcjs.verifyAttestation; exports.verifyClearsigned = _chunkDJGCYNJNcjs.verifyClearsigned; exports.verifyProof = _chunkDJGCYNJNcjs.verifyProof; exports.verifyStatementSignature = _chunkDJGCYNJNcjs.verifyStatementSignature;
186
+
187
+
188
+ exports.ARWEAVE_GATEWAY = _chunkT4VPFPFPcjs.ARWEAVE_GATEWAY; exports.AUTHORIZATION_TYPES = _chunkT4VPFPFPcjs.AUTHORIZATION_TYPES; exports.CLAIM_CHECK_LABEL = _chunkT4VPFPFPcjs.CLAIM_CHECK_LABEL; exports.CLAIM_LIMIT = _chunkT4VPFPFPcjs.CLAIM_LIMIT; exports.CONTRACT_ERROR_TEXT = _chunkT4VPFPFPcjs.CONTRACT_ERROR_TEXT; exports.EIP712_NAME = _chunkT4VPFPFPcjs.EIP712_NAME; exports.EIP712_VERSION = _chunkT4VPFPFPcjs.EIP712_VERSION; exports.ENS_HINT_KEY = _chunkT4VPFPFPcjs.ENS_HINT_KEY; exports.ENS_TEXT_RESOLVER_ABI = _chunkT4VPFPFPcjs.ENS_TEXT_RESOLVER_ABI; exports.FARCASTER_HUB = _chunkT4VPFPFPcjs.FARCASTER_HUB; exports.IPFS_GATEWAY = _chunkT4VPFPFPcjs.IPFS_GATEWAY; exports.IPFS_GATEWAYS = _chunkT4VPFPFPcjs.IPFS_GATEWAYS; exports.KNOWN_KINDS = _chunkT4VPFPFPcjs.KNOWN_KINDS; exports.MAX_KIND_BYTES = _chunkT4VPFPFPcjs.MAX_KIND_BYTES; exports.MAX_RECORD_BYTES = _chunkT4VPFPFPcjs.MAX_RECORD_BYTES; exports.NETWORKS = _chunkT4VPFPFPcjs.NETWORKS; exports.NFT_AVATAR_ABI = _chunkT4VPFPFPcjs.NFT_AVATAR_ABI; exports.OWNER_REVOKE_REASONS = _chunkT4VPFPFPcjs.OWNER_REVOKE_REASONS; exports.REGISTRY_ABI = _chunkT4VPFPFPcjs.REGISTRY_ABI; exports.REGISTRY_ADDRESS = _chunkT4VPFPFPcjs.REGISTRY_ADDRESS; exports.REVOKE_REASONS = _chunkT4VPFPFPcjs.REVOKE_REASONS; exports.addRelease = _chunkT4VPFPFPcjs.addRelease; exports.attestTypedData = _chunkT4VPFPFPcjs.attestTypedData; exports.authorizationDigest = _chunkT4VPFPFPcjs.authorizationDigest; exports.avatarFallbacks = _chunkT4VPFPFPcjs.avatarFallbacks; exports.avatarUrl = _chunkT4VPFPFPcjs.avatarUrl; exports.bytesToFingerprint = _chunkT4VPFPFPcjs.bytesToFingerprint; exports.chainFor = _chunkT4VPFPFPcjs.chainFor; exports.checkKindName = _chunkT4VPFPFPcjs.checkKindName; exports.checkRecordValue = _chunkT4VPFPFPcjs.checkRecordValue; exports.claimCheckText = _chunkT4VPFPFPcjs.claimCheckText; exports.claimFateText = _chunkT4VPFPFPcjs.claimFateText; exports.claimFates = _chunkT4VPFPFPcjs.claimFates; exports.claimSignature = _chunkT4VPFPFPcjs.claimSignature; exports.contractErrorName = _chunkT4VPFPFPcjs.contractErrorName; exports.contractErrorText = _chunkT4VPFPFPcjs.contractErrorText; exports.displayUrl = _chunkT4VPFPFPcjs.displayUrl; exports.encryptRefusalText = _chunkT4VPFPFPcjs.encryptRefusalText; exports.encryptTo = _chunkT4VPFPFPcjs.encryptTo; exports.encryptionKeyFor = _chunkT4VPFPFPcjs.encryptionKeyFor; exports.ensHintFor = _chunkT4VPFPFPcjs.ensHintFor; exports.ensHintValue = _chunkT4VPFPFPcjs.ensHintValue; exports.ensHintWrite = _chunkT4VPFPFPcjs.ensHintWrite; exports.expiresSoon = _chunkT4VPFPFPcjs.expiresSoon; exports.expiresSoonText = _chunkT4VPFPFPcjs.expiresSoonText; exports.fetchEnsHint = _chunkT4VPFPFPcjs.fetchEnsHint; exports.fetchRecords = _chunkT4VPFPFPcjs.fetchRecords; exports.findOwners = _chunkT4VPFPFPcjs.findOwners; exports.fingerprintHash = _chunkT4VPFPFPcjs.fingerprintHash; exports.fingerprintToBytes = _chunkT4VPFPFPcjs.fingerprintToBytes; exports.formatClaimDate = _chunkT4VPFPFPcjs.formatClaimDate; exports.getRegistry = _chunkT4VPFPFPcjs.getRegistry; exports.hasEmailUserID = _chunkT4VPFPFPcjs.hasEmailUserID; exports.identifyProof = _chunkT4VPFPFPcjs.identifyProof; exports.isNetworkName = _chunkT4VPFPFPcjs.isNetworkName; exports.keyChangedText = _chunkT4VPFPFPcjs.keyChangedText; exports.keyIdOf = _chunkT4VPFPFPcjs.keyIdOf; exports.keyIdToBytes = _chunkT4VPFPFPcjs.keyIdToBytes; exports.keyProblemText = _chunkT4VPFPFPcjs.keyProblemText; exports.keyStanding = _chunkT4VPFPFPcjs.keyStanding; exports.kindName = _chunkT4VPFPFPcjs.kindName; exports.leanKey = _chunkT4VPFPFPcjs.leanKey; exports.markCompromisedTypedData = _chunkT4VPFPFPcjs.markCompromisedTypedData; exports.nftAvatarImage = _chunkT4VPFPFPcjs.nftAvatarImage; exports.normalizeFingerprint = _chunkT4VPFPFPcjs.normalizeFingerprint; exports.pageRecords = _chunkT4VPFPFPcjs.pageRecords; exports.parseNftAvatar = _chunkT4VPFPFPcjs.parseNftAvatar; exports.parsePgpKey = _chunkT4VPFPFPcjs.parsePgpKey; exports.parseRecord = _chunkT4VPFPFPcjs.parseRecord; exports.parseReleases = _chunkT4VPFPFPcjs.parseReleases; exports.payloadText = _chunkT4VPFPFPcjs.payloadText; exports.permissionSigned = _chunkT4VPFPFPcjs.permissionSigned; exports.pickRecords = _chunkT4VPFPFPcjs.pickRecords; exports.proofHref = _chunkT4VPFPFPcjs.proofHref; exports.proofSecondaryHref = _chunkT4VPFPFPcjs.proofSecondaryHref; exports.readClaims = _chunkT4VPFPFPcjs.readClaims; exports.reattestTypedData = _chunkT4VPFPFPcjs.reattestTypedData; exports.recordKind = _chunkT4VPFPFPcjs.recordKind; exports.registryDomain = _chunkT4VPFPFPcjs.registryDomain; exports.renderReleases = _chunkT4VPFPFPcjs.renderReleases; exports.revokeTypedData = _chunkT4VPFPFPcjs.revokeTypedData; exports.sameFingerprint = _chunkT4VPFPFPcjs.sameFingerprint; exports.setRecordTypedData = _chunkT4VPFPFPcjs.setRecordTypedData; exports.signatureEmail = _chunkT4VPFPFPcjs.signatureEmail; exports.sshKeys = _chunkT4VPFPFPcjs.sshKeys; exports.statementText = _chunkT4VPFPFPcjs.statementText; exports.stripEmailUserIDs = _chunkT4VPFPFPcjs.stripEmailUserIDs; exports.updateKeyTypedData = _chunkT4VPFPFPcjs.updateKeyTypedData; exports.verifyAttestation = _chunkT4VPFPFPcjs.verifyAttestation; exports.verifyClearsigned = _chunkT4VPFPFPcjs.verifyClearsigned; exports.verifyProof = _chunkT4VPFPFPcjs.verifyProof; exports.verifyStatementSignature = _chunkT4VPFPFPcjs.verifyStatementSignature;
package/dist/core.d.cts CHANGED
@@ -579,6 +579,28 @@ declare function markCompromisedTypedData(chainId: number, registry: Hex, a: Mar
579
579
  };
580
580
  /** The digest the registry recovers the signer from. */
581
581
  declare function authorizationDigest(typedData: ReturnType<typeof attestTypedData | typeof reattestTypedData | typeof updateKeyTypedData | typeof revokeTypedData | typeof setRecordTypedData | typeof markCompromisedTypedData>): Hex;
582
+ /** Any client with viem's `getCode` and `readContract` (a viem PublicClient, or a stub in tests). */
583
+ interface PermissionReader {
584
+ getCode(args: {
585
+ address: Hex;
586
+ }): Promise<Hex | undefined>;
587
+ readContract(args: any): Promise<unknown>;
588
+ }
589
+ type PermissionCheck = {
590
+ ok: true;
591
+ } | {
592
+ ok: false;
593
+ reason: string;
594
+ signer?: Hex;
595
+ };
596
+ /**
597
+ * Is `signature` a permission from `owner`? Judged the way the registry judges it: a plain signature
598
+ * from the owner's key (any address, EIP-7702 accounts included), else, for an account with code (a
599
+ * Safe, a smart-account wallet), the account's own answer (EIP-1271). An ERC-6492 signature (from an
600
+ * account not on-chain yet) is refused with the reason: the registry asks the deployed account.
601
+ * `signer` is set when a plain signature came from someone else.
602
+ */
603
+ declare function permissionSigned(client: PermissionReader, typedData: Parameters<typeof authorizationDigest>[0], signature: Hex, owner: Hex): Promise<PermissionCheck>;
582
604
  /** The hash the registry indexes a record name by (the `kindHash` in `RecordSet` events). */
583
605
  declare function recordKind(name: string): Hex;
584
606
 
@@ -2076,14 +2098,17 @@ declare function chainFor(network?: NetworkName): {
2076
2098
  };
2077
2099
  };
2078
2100
  sourceId?: number | undefined | undefined;
2101
+ supportsTransactionReplacementDetection?: boolean | undefined | undefined;
2079
2102
  testnet: true;
2080
2103
  custom?: Record<string, unknown> | undefined;
2081
2104
  extendSchema?: Record<string, unknown> | undefined;
2082
2105
  fees?: viem.ChainFees<undefined> | undefined;
2083
2106
  formatters?: undefined;
2084
2107
  prepareTransactionRequest?: ((args: viem.PrepareTransactionRequestParameters, options: {
2108
+ client: viem.Client;
2085
2109
  phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
2086
2110
  }) => Promise<viem.PrepareTransactionRequestParameters>) | [fn: ((args: viem.PrepareTransactionRequestParameters, options: {
2111
+ client: viem.Client;
2087
2112
  phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
2088
2113
  }) => Promise<viem.PrepareTransactionRequestParameters>) | undefined, options: {
2089
2114
  runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
@@ -2129,14 +2154,17 @@ declare function chainFor(network?: NetworkName): {
2129
2154
  };
2130
2155
  };
2131
2156
  sourceId?: number | undefined | undefined;
2157
+ supportsTransactionReplacementDetection?: boolean | undefined | undefined;
2132
2158
  testnet?: boolean | undefined | undefined;
2133
2159
  custom?: Record<string, unknown> | undefined;
2134
2160
  extendSchema?: Record<string, unknown> | undefined;
2135
2161
  fees?: viem.ChainFees<undefined> | undefined;
2136
2162
  formatters?: undefined;
2137
2163
  prepareTransactionRequest?: ((args: viem.PrepareTransactionRequestParameters, options: {
2164
+ client: viem.Client;
2138
2165
  phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
2139
2166
  }) => Promise<viem.PrepareTransactionRequestParameters>) | [fn: ((args: viem.PrepareTransactionRequestParameters, options: {
2167
+ client: viem.Client;
2140
2168
  phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
2141
2169
  }) => Promise<viem.PrepareTransactionRequestParameters>) | undefined, options: {
2142
2170
  runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
@@ -2173,18 +2201,21 @@ declare function chainFor(network?: NetworkName): {
2173
2201
  experimental_preconfirmationTime?: number | undefined | undefined;
2174
2202
  rpcUrls: {
2175
2203
  readonly default: {
2176
- readonly http: readonly ["https://eth.merkle.io"];
2204
+ readonly http: readonly ["https://ethereum.reth.rs/rpc"];
2177
2205
  };
2178
2206
  };
2179
2207
  sourceId?: number | undefined | undefined;
2208
+ supportsTransactionReplacementDetection?: boolean | undefined | undefined;
2180
2209
  testnet?: boolean | undefined | undefined;
2181
2210
  custom?: Record<string, unknown> | undefined;
2182
2211
  extendSchema?: Record<string, unknown> | undefined;
2183
2212
  fees?: viem.ChainFees<undefined> | undefined;
2184
2213
  formatters?: undefined;
2185
2214
  prepareTransactionRequest?: ((args: viem.PrepareTransactionRequestParameters, options: {
2215
+ client: viem.Client;
2186
2216
  phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
2187
2217
  }) => Promise<viem.PrepareTransactionRequestParameters>) | [fn: ((args: viem.PrepareTransactionRequestParameters, options: {
2218
+ client: viem.Client;
2188
2219
  phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
2189
2220
  }) => Promise<viem.PrepareTransactionRequestParameters>) | undefined, options: {
2190
2221
  runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
@@ -2618,4 +2649,4 @@ interface EnsTextReader {
2618
2649
  /** Read a name's `id.thurin` record and compare it with the verified fingerprint. */
2619
2650
  declare function fetchEnsHint(client: EnsTextReader, name: string, verifiedFingerprint: string | null | undefined): Promise<EnsHint>;
2620
2651
 
2621
- export { ARWEAVE_GATEWAY, AUTHORIZATION_TYPES, type AttestAuthorization, type Attestation, type AuthorizationAction, CLAIM_CHECK_LABEL, CLAIM_LIMIT, CONTRACT_ERROR_TEXT, type ClaimCheckKind, type ClaimCheckText, type ClaimFate, type ClaimReader, EIP712_NAME, EIP712_VERSION, ENS_HINT_KEY, ENS_TEXT_RESOLVER_ABI, type EncryptRefusal, type EncryptionKey, type EncryptionKeyResult, type EnsHint, type EnsHintState, type EnsTextReader, FARCASTER_HUB, IPFS_GATEWAY, IPFS_GATEWAYS, KNOWN_KINDS, type KeyStanding, type KnownKind, type LeanKey, MAX_KIND_BYTES, MAX_RECORD_BYTES, type MarkCompromisedAuthorization, NETWORKS, NFT_AVATAR_ABI, type NetworkName, type NftAvatar, type Notation, OWNER_REVOKE_REASONS, type PGPKeyInfo, type PGPVerification, type ParsedRecord, type PgpInput, type Proof, type ProofOptions, REGISTRY_ABI, REGISTRY_ADDRESS, REVOKE_REASONS, type ReattestAuthorization, type RecordData, type RecordReader, type RegistryDeployment, type ReleaseEntry, type ReleasesRecord, type RevokeAuthorization, type RevokeReason, type SetRecordAuthorization, type SshKey, type StrippedKey, type SubkeyInfo, type UpdateKeyAuthorization, addRelease, attestTypedData, authorizationDigest, avatarFallbacks, avatarUrl, bytesToFingerprint, chainFor, checkKindName, checkRecordValue, claimCheckText, claimFateText, claimFates, claimSignature, contractErrorName, contractErrorText, displayUrl, encryptRefusalText, encryptTo, encryptionKeyFor, ensHintFor, ensHintValue, ensHintWrite, expiresSoon, expiresSoonText, fetchEnsHint, fetchRecords, findOwners, fingerprintHash, fingerprintToBytes, formatClaimDate, getRegistry, hasEmailUserID, identifyProof, isNetworkName, keyChangedText, keyIdOf, keyIdToBytes, keyProblemText, keyStanding, kindName, leanKey, markCompromisedTypedData, nftAvatarImage, normalizeFingerprint, pageRecords, parseNftAvatar, parsePgpKey, parseRecord, parseReleases, payloadText, pickRecords, proofHref, proofSecondaryHref, readClaims, reattestTypedData, recordKind, registryDomain, renderReleases, revokeTypedData, sameFingerprint, setRecordTypedData, signatureEmail, sshKeys, statementText, stripEmailUserIDs, updateKeyTypedData, verifyAttestation, verifyClearsigned, verifyProof, verifyStatementSignature };
2652
+ export { ARWEAVE_GATEWAY, AUTHORIZATION_TYPES, type AttestAuthorization, type Attestation, type AuthorizationAction, CLAIM_CHECK_LABEL, CLAIM_LIMIT, CONTRACT_ERROR_TEXT, type ClaimCheckKind, type ClaimCheckText, type ClaimFate, type ClaimReader, EIP712_NAME, EIP712_VERSION, ENS_HINT_KEY, ENS_TEXT_RESOLVER_ABI, type EncryptRefusal, type EncryptionKey, type EncryptionKeyResult, type EnsHint, type EnsHintState, type EnsTextReader, FARCASTER_HUB, IPFS_GATEWAY, IPFS_GATEWAYS, KNOWN_KINDS, type KeyStanding, type KnownKind, type LeanKey, MAX_KIND_BYTES, MAX_RECORD_BYTES, type MarkCompromisedAuthorization, NETWORKS, NFT_AVATAR_ABI, type NetworkName, type NftAvatar, type Notation, OWNER_REVOKE_REASONS, type PGPKeyInfo, type PGPVerification, type ParsedRecord, type PermissionCheck, type PermissionReader, type PgpInput, type Proof, type ProofOptions, REGISTRY_ABI, REGISTRY_ADDRESS, REVOKE_REASONS, type ReattestAuthorization, type RecordData, type RecordReader, type RegistryDeployment, type ReleaseEntry, type ReleasesRecord, type RevokeAuthorization, type RevokeReason, type SetRecordAuthorization, type SshKey, type StrippedKey, type SubkeyInfo, type UpdateKeyAuthorization, addRelease, attestTypedData, authorizationDigest, avatarFallbacks, avatarUrl, bytesToFingerprint, chainFor, checkKindName, checkRecordValue, claimCheckText, claimFateText, claimFates, claimSignature, contractErrorName, contractErrorText, displayUrl, encryptRefusalText, encryptTo, encryptionKeyFor, ensHintFor, ensHintValue, ensHintWrite, expiresSoon, expiresSoonText, fetchEnsHint, fetchRecords, findOwners, fingerprintHash, fingerprintToBytes, formatClaimDate, getRegistry, hasEmailUserID, identifyProof, isNetworkName, keyChangedText, keyIdOf, keyIdToBytes, keyProblemText, keyStanding, kindName, leanKey, markCompromisedTypedData, nftAvatarImage, normalizeFingerprint, pageRecords, parseNftAvatar, parsePgpKey, parseRecord, parseReleases, payloadText, permissionSigned, pickRecords, proofHref, proofSecondaryHref, readClaims, reattestTypedData, recordKind, registryDomain, renderReleases, revokeTypedData, sameFingerprint, setRecordTypedData, signatureEmail, sshKeys, statementText, stripEmailUserIDs, updateKeyTypedData, verifyAttestation, verifyClearsigned, verifyProof, verifyStatementSignature };
package/dist/core.d.ts CHANGED
@@ -579,6 +579,28 @@ declare function markCompromisedTypedData(chainId: number, registry: Hex, a: Mar
579
579
  };
580
580
  /** The digest the registry recovers the signer from. */
581
581
  declare function authorizationDigest(typedData: ReturnType<typeof attestTypedData | typeof reattestTypedData | typeof updateKeyTypedData | typeof revokeTypedData | typeof setRecordTypedData | typeof markCompromisedTypedData>): Hex;
582
+ /** Any client with viem's `getCode` and `readContract` (a viem PublicClient, or a stub in tests). */
583
+ interface PermissionReader {
584
+ getCode(args: {
585
+ address: Hex;
586
+ }): Promise<Hex | undefined>;
587
+ readContract(args: any): Promise<unknown>;
588
+ }
589
+ type PermissionCheck = {
590
+ ok: true;
591
+ } | {
592
+ ok: false;
593
+ reason: string;
594
+ signer?: Hex;
595
+ };
596
+ /**
597
+ * Is `signature` a permission from `owner`? Judged the way the registry judges it: a plain signature
598
+ * from the owner's key (any address, EIP-7702 accounts included), else, for an account with code (a
599
+ * Safe, a smart-account wallet), the account's own answer (EIP-1271). An ERC-6492 signature (from an
600
+ * account not on-chain yet) is refused with the reason: the registry asks the deployed account.
601
+ * `signer` is set when a plain signature came from someone else.
602
+ */
603
+ declare function permissionSigned(client: PermissionReader, typedData: Parameters<typeof authorizationDigest>[0], signature: Hex, owner: Hex): Promise<PermissionCheck>;
582
604
  /** The hash the registry indexes a record name by (the `kindHash` in `RecordSet` events). */
583
605
  declare function recordKind(name: string): Hex;
584
606
 
@@ -2076,14 +2098,17 @@ declare function chainFor(network?: NetworkName): {
2076
2098
  };
2077
2099
  };
2078
2100
  sourceId?: number | undefined | undefined;
2101
+ supportsTransactionReplacementDetection?: boolean | undefined | undefined;
2079
2102
  testnet: true;
2080
2103
  custom?: Record<string, unknown> | undefined;
2081
2104
  extendSchema?: Record<string, unknown> | undefined;
2082
2105
  fees?: viem.ChainFees<undefined> | undefined;
2083
2106
  formatters?: undefined;
2084
2107
  prepareTransactionRequest?: ((args: viem.PrepareTransactionRequestParameters, options: {
2108
+ client: viem.Client;
2085
2109
  phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
2086
2110
  }) => Promise<viem.PrepareTransactionRequestParameters>) | [fn: ((args: viem.PrepareTransactionRequestParameters, options: {
2111
+ client: viem.Client;
2087
2112
  phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
2088
2113
  }) => Promise<viem.PrepareTransactionRequestParameters>) | undefined, options: {
2089
2114
  runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
@@ -2129,14 +2154,17 @@ declare function chainFor(network?: NetworkName): {
2129
2154
  };
2130
2155
  };
2131
2156
  sourceId?: number | undefined | undefined;
2157
+ supportsTransactionReplacementDetection?: boolean | undefined | undefined;
2132
2158
  testnet?: boolean | undefined | undefined;
2133
2159
  custom?: Record<string, unknown> | undefined;
2134
2160
  extendSchema?: Record<string, unknown> | undefined;
2135
2161
  fees?: viem.ChainFees<undefined> | undefined;
2136
2162
  formatters?: undefined;
2137
2163
  prepareTransactionRequest?: ((args: viem.PrepareTransactionRequestParameters, options: {
2164
+ client: viem.Client;
2138
2165
  phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
2139
2166
  }) => Promise<viem.PrepareTransactionRequestParameters>) | [fn: ((args: viem.PrepareTransactionRequestParameters, options: {
2167
+ client: viem.Client;
2140
2168
  phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
2141
2169
  }) => Promise<viem.PrepareTransactionRequestParameters>) | undefined, options: {
2142
2170
  runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
@@ -2173,18 +2201,21 @@ declare function chainFor(network?: NetworkName): {
2173
2201
  experimental_preconfirmationTime?: number | undefined | undefined;
2174
2202
  rpcUrls: {
2175
2203
  readonly default: {
2176
- readonly http: readonly ["https://eth.merkle.io"];
2204
+ readonly http: readonly ["https://ethereum.reth.rs/rpc"];
2177
2205
  };
2178
2206
  };
2179
2207
  sourceId?: number | undefined | undefined;
2208
+ supportsTransactionReplacementDetection?: boolean | undefined | undefined;
2180
2209
  testnet?: boolean | undefined | undefined;
2181
2210
  custom?: Record<string, unknown> | undefined;
2182
2211
  extendSchema?: Record<string, unknown> | undefined;
2183
2212
  fees?: viem.ChainFees<undefined> | undefined;
2184
2213
  formatters?: undefined;
2185
2214
  prepareTransactionRequest?: ((args: viem.PrepareTransactionRequestParameters, options: {
2215
+ client: viem.Client;
2186
2216
  phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
2187
2217
  }) => Promise<viem.PrepareTransactionRequestParameters>) | [fn: ((args: viem.PrepareTransactionRequestParameters, options: {
2218
+ client: viem.Client;
2188
2219
  phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
2189
2220
  }) => Promise<viem.PrepareTransactionRequestParameters>) | undefined, options: {
2190
2221
  runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
@@ -2618,4 +2649,4 @@ interface EnsTextReader {
2618
2649
  /** Read a name's `id.thurin` record and compare it with the verified fingerprint. */
2619
2650
  declare function fetchEnsHint(client: EnsTextReader, name: string, verifiedFingerprint: string | null | undefined): Promise<EnsHint>;
2620
2651
 
2621
- export { ARWEAVE_GATEWAY, AUTHORIZATION_TYPES, type AttestAuthorization, type Attestation, type AuthorizationAction, CLAIM_CHECK_LABEL, CLAIM_LIMIT, CONTRACT_ERROR_TEXT, type ClaimCheckKind, type ClaimCheckText, type ClaimFate, type ClaimReader, EIP712_NAME, EIP712_VERSION, ENS_HINT_KEY, ENS_TEXT_RESOLVER_ABI, type EncryptRefusal, type EncryptionKey, type EncryptionKeyResult, type EnsHint, type EnsHintState, type EnsTextReader, FARCASTER_HUB, IPFS_GATEWAY, IPFS_GATEWAYS, KNOWN_KINDS, type KeyStanding, type KnownKind, type LeanKey, MAX_KIND_BYTES, MAX_RECORD_BYTES, type MarkCompromisedAuthorization, NETWORKS, NFT_AVATAR_ABI, type NetworkName, type NftAvatar, type Notation, OWNER_REVOKE_REASONS, type PGPKeyInfo, type PGPVerification, type ParsedRecord, type PgpInput, type Proof, type ProofOptions, REGISTRY_ABI, REGISTRY_ADDRESS, REVOKE_REASONS, type ReattestAuthorization, type RecordData, type RecordReader, type RegistryDeployment, type ReleaseEntry, type ReleasesRecord, type RevokeAuthorization, type RevokeReason, type SetRecordAuthorization, type SshKey, type StrippedKey, type SubkeyInfo, type UpdateKeyAuthorization, addRelease, attestTypedData, authorizationDigest, avatarFallbacks, avatarUrl, bytesToFingerprint, chainFor, checkKindName, checkRecordValue, claimCheckText, claimFateText, claimFates, claimSignature, contractErrorName, contractErrorText, displayUrl, encryptRefusalText, encryptTo, encryptionKeyFor, ensHintFor, ensHintValue, ensHintWrite, expiresSoon, expiresSoonText, fetchEnsHint, fetchRecords, findOwners, fingerprintHash, fingerprintToBytes, formatClaimDate, getRegistry, hasEmailUserID, identifyProof, isNetworkName, keyChangedText, keyIdOf, keyIdToBytes, keyProblemText, keyStanding, kindName, leanKey, markCompromisedTypedData, nftAvatarImage, normalizeFingerprint, pageRecords, parseNftAvatar, parsePgpKey, parseRecord, parseReleases, payloadText, pickRecords, proofHref, proofSecondaryHref, readClaims, reattestTypedData, recordKind, registryDomain, renderReleases, revokeTypedData, sameFingerprint, setRecordTypedData, signatureEmail, sshKeys, statementText, stripEmailUserIDs, updateKeyTypedData, verifyAttestation, verifyClearsigned, verifyProof, verifyStatementSignature };
2652
+ export { ARWEAVE_GATEWAY, AUTHORIZATION_TYPES, type AttestAuthorization, type Attestation, type AuthorizationAction, CLAIM_CHECK_LABEL, CLAIM_LIMIT, CONTRACT_ERROR_TEXT, type ClaimCheckKind, type ClaimCheckText, type ClaimFate, type ClaimReader, EIP712_NAME, EIP712_VERSION, ENS_HINT_KEY, ENS_TEXT_RESOLVER_ABI, type EncryptRefusal, type EncryptionKey, type EncryptionKeyResult, type EnsHint, type EnsHintState, type EnsTextReader, FARCASTER_HUB, IPFS_GATEWAY, IPFS_GATEWAYS, KNOWN_KINDS, type KeyStanding, type KnownKind, type LeanKey, MAX_KIND_BYTES, MAX_RECORD_BYTES, type MarkCompromisedAuthorization, NETWORKS, NFT_AVATAR_ABI, type NetworkName, type NftAvatar, type Notation, OWNER_REVOKE_REASONS, type PGPKeyInfo, type PGPVerification, type ParsedRecord, type PermissionCheck, type PermissionReader, type PgpInput, type Proof, type ProofOptions, REGISTRY_ABI, REGISTRY_ADDRESS, REVOKE_REASONS, type ReattestAuthorization, type RecordData, type RecordReader, type RegistryDeployment, type ReleaseEntry, type ReleasesRecord, type RevokeAuthorization, type RevokeReason, type SetRecordAuthorization, type SshKey, type StrippedKey, type SubkeyInfo, type UpdateKeyAuthorization, addRelease, attestTypedData, authorizationDigest, avatarFallbacks, avatarUrl, bytesToFingerprint, chainFor, checkKindName, checkRecordValue, claimCheckText, claimFateText, claimFates, claimSignature, contractErrorName, contractErrorText, displayUrl, encryptRefusalText, encryptTo, encryptionKeyFor, ensHintFor, ensHintValue, ensHintWrite, expiresSoon, expiresSoonText, fetchEnsHint, fetchRecords, findOwners, fingerprintHash, fingerprintToBytes, formatClaimDate, getRegistry, hasEmailUserID, identifyProof, isNetworkName, keyChangedText, keyIdOf, keyIdToBytes, keyProblemText, keyStanding, kindName, leanKey, markCompromisedTypedData, nftAvatarImage, normalizeFingerprint, pageRecords, parseNftAvatar, parsePgpKey, parseRecord, parseReleases, payloadText, permissionSigned, pickRecords, proofHref, proofSecondaryHref, readClaims, reattestTypedData, recordKind, registryDomain, renderReleases, revokeTypedData, sameFingerprint, setRecordTypedData, signatureEmail, sshKeys, statementText, stripEmailUserIDs, updateKeyTypedData, verifyAttestation, verifyClearsigned, verifyProof, verifyStatementSignature };
package/dist/core.js CHANGED
@@ -70,6 +70,7 @@ import {
70
70
  parseRecord,
71
71
  parseReleases,
72
72
  payloadText,
73
+ permissionSigned,
73
74
  pickRecords,
74
75
  proofHref,
75
76
  proofSecondaryHref,
@@ -90,7 +91,7 @@ import {
90
91
  verifyClearsigned,
91
92
  verifyProof,
92
93
  verifyStatementSignature
93
- } from "./chunk-AAJWERE2.js";
94
+ } from "./chunk-SGAMXZDL.js";
94
95
  export {
95
96
  ARWEAVE_GATEWAY,
96
97
  AUTHORIZATION_TYPES,
@@ -163,6 +164,7 @@ export {
163
164
  parseRecord,
164
165
  parseReleases,
165
166
  payloadText,
167
+ permissionSigned,
166
168
  pickRecords,
167
169
  proofHref,
168
170
  proofSecondaryHref,
package/dist/index.cjs CHANGED
@@ -90,8 +90,8 @@
90
90
 
91
91
 
92
92
 
93
- var _chunkDJGCYNJNcjs = require('./chunk-DJGCYNJN.cjs');
94
93
 
94
+ var _chunkT4VPFPFPcjs = require('./chunk-T4VPFPFP.cjs');
95
95
 
96
96
 
97
97
 
@@ -183,4 +183,6 @@ var _chunkDJGCYNJNcjs = require('./chunk-DJGCYNJN.cjs');
183
183
 
184
184
 
185
185
 
186
- exports.ARWEAVE_GATEWAY = _chunkDJGCYNJNcjs.ARWEAVE_GATEWAY; exports.AUTHORIZATION_TYPES = _chunkDJGCYNJNcjs.AUTHORIZATION_TYPES; exports.CLAIM_CHECK_LABEL = _chunkDJGCYNJNcjs.CLAIM_CHECK_LABEL; exports.CLAIM_LIMIT = _chunkDJGCYNJNcjs.CLAIM_LIMIT; exports.CONTRACT_ERROR_TEXT = _chunkDJGCYNJNcjs.CONTRACT_ERROR_TEXT; exports.EIP712_NAME = _chunkDJGCYNJNcjs.EIP712_NAME; exports.EIP712_VERSION = _chunkDJGCYNJNcjs.EIP712_VERSION; exports.ENS_HINT_KEY = _chunkDJGCYNJNcjs.ENS_HINT_KEY; exports.ENS_TEXT_RESOLVER_ABI = _chunkDJGCYNJNcjs.ENS_TEXT_RESOLVER_ABI; exports.FARCASTER_HUB = _chunkDJGCYNJNcjs.FARCASTER_HUB; exports.IPFS_GATEWAY = _chunkDJGCYNJNcjs.IPFS_GATEWAY; exports.IPFS_GATEWAYS = _chunkDJGCYNJNcjs.IPFS_GATEWAYS; exports.KNOWN_KINDS = _chunkDJGCYNJNcjs.KNOWN_KINDS; exports.MAX_KIND_BYTES = _chunkDJGCYNJNcjs.MAX_KIND_BYTES; exports.MAX_RECORD_BYTES = _chunkDJGCYNJNcjs.MAX_RECORD_BYTES; exports.NETWORKS = _chunkDJGCYNJNcjs.NETWORKS; exports.NFT_AVATAR_ABI = _chunkDJGCYNJNcjs.NFT_AVATAR_ABI; exports.OWNER_REVOKE_REASONS = _chunkDJGCYNJNcjs.OWNER_REVOKE_REASONS; exports.REGISTRY_ABI = _chunkDJGCYNJNcjs.REGISTRY_ABI; exports.REGISTRY_ADDRESS = _chunkDJGCYNJNcjs.REGISTRY_ADDRESS; exports.REVOKE_REASONS = _chunkDJGCYNJNcjs.REVOKE_REASONS; exports.addRelease = _chunkDJGCYNJNcjs.addRelease; exports.attestTypedData = _chunkDJGCYNJNcjs.attestTypedData; exports.authorizationDigest = _chunkDJGCYNJNcjs.authorizationDigest; exports.avatarFallbacks = _chunkDJGCYNJNcjs.avatarFallbacks; exports.avatarUrl = _chunkDJGCYNJNcjs.avatarUrl; exports.bytesToFingerprint = _chunkDJGCYNJNcjs.bytesToFingerprint; exports.chainFor = _chunkDJGCYNJNcjs.chainFor; exports.checkKindName = _chunkDJGCYNJNcjs.checkKindName; exports.checkRecordValue = _chunkDJGCYNJNcjs.checkRecordValue; exports.claimCheckText = _chunkDJGCYNJNcjs.claimCheckText; exports.claimFateText = _chunkDJGCYNJNcjs.claimFateText; exports.claimFates = _chunkDJGCYNJNcjs.claimFates; exports.claimSignature = _chunkDJGCYNJNcjs.claimSignature; exports.contractErrorName = _chunkDJGCYNJNcjs.contractErrorName; exports.contractErrorText = _chunkDJGCYNJNcjs.contractErrorText; exports.displayUrl = _chunkDJGCYNJNcjs.displayUrl; exports.encryptRefusalText = _chunkDJGCYNJNcjs.encryptRefusalText; exports.encryptTo = _chunkDJGCYNJNcjs.encryptTo; exports.encryptionKeyFor = _chunkDJGCYNJNcjs.encryptionKeyFor; exports.ensHintFor = _chunkDJGCYNJNcjs.ensHintFor; exports.ensHintValue = _chunkDJGCYNJNcjs.ensHintValue; exports.ensHintWrite = _chunkDJGCYNJNcjs.ensHintWrite; exports.expiresSoon = _chunkDJGCYNJNcjs.expiresSoon; exports.expiresSoonText = _chunkDJGCYNJNcjs.expiresSoonText; exports.fetchEnsHint = _chunkDJGCYNJNcjs.fetchEnsHint; exports.fetchRecords = _chunkDJGCYNJNcjs.fetchRecords; exports.findOwners = _chunkDJGCYNJNcjs.findOwners; exports.fingerprintHash = _chunkDJGCYNJNcjs.fingerprintHash; exports.fingerprintToBytes = _chunkDJGCYNJNcjs.fingerprintToBytes; exports.formatClaimDate = _chunkDJGCYNJNcjs.formatClaimDate; exports.getRegistry = _chunkDJGCYNJNcjs.getRegistry; exports.hasEmailUserID = _chunkDJGCYNJNcjs.hasEmailUserID; exports.identifyProof = _chunkDJGCYNJNcjs.identifyProof; exports.isNetworkName = _chunkDJGCYNJNcjs.isNetworkName; exports.keyChangedText = _chunkDJGCYNJNcjs.keyChangedText; exports.keyIdOf = _chunkDJGCYNJNcjs.keyIdOf; exports.keyIdToBytes = _chunkDJGCYNJNcjs.keyIdToBytes; exports.keyProblemText = _chunkDJGCYNJNcjs.keyProblemText; exports.keyStanding = _chunkDJGCYNJNcjs.keyStanding; exports.kindName = _chunkDJGCYNJNcjs.kindName; exports.leanKey = _chunkDJGCYNJNcjs.leanKey; exports.markCompromisedTypedData = _chunkDJGCYNJNcjs.markCompromisedTypedData; exports.nftAvatarImage = _chunkDJGCYNJNcjs.nftAvatarImage; exports.normalizeFingerprint = _chunkDJGCYNJNcjs.normalizeFingerprint; exports.pageRecords = _chunkDJGCYNJNcjs.pageRecords; exports.parseNftAvatar = _chunkDJGCYNJNcjs.parseNftAvatar; exports.parsePgpKey = _chunkDJGCYNJNcjs.parsePgpKey; exports.parseRecord = _chunkDJGCYNJNcjs.parseRecord; exports.parseReleases = _chunkDJGCYNJNcjs.parseReleases; exports.payloadText = _chunkDJGCYNJNcjs.payloadText; exports.pickRecords = _chunkDJGCYNJNcjs.pickRecords; exports.proofHref = _chunkDJGCYNJNcjs.proofHref; exports.proofSecondaryHref = _chunkDJGCYNJNcjs.proofSecondaryHref; exports.readClaims = _chunkDJGCYNJNcjs.readClaims; exports.reattestTypedData = _chunkDJGCYNJNcjs.reattestTypedData; exports.recordKind = _chunkDJGCYNJNcjs.recordKind; exports.registryDomain = _chunkDJGCYNJNcjs.registryDomain; exports.renderReleases = _chunkDJGCYNJNcjs.renderReleases; exports.revokeTypedData = _chunkDJGCYNJNcjs.revokeTypedData; exports.sameFingerprint = _chunkDJGCYNJNcjs.sameFingerprint; exports.setRecordTypedData = _chunkDJGCYNJNcjs.setRecordTypedData; exports.signatureEmail = _chunkDJGCYNJNcjs.signatureEmail; exports.sshKeys = _chunkDJGCYNJNcjs.sshKeys; exports.statementText = _chunkDJGCYNJNcjs.statementText; exports.stripEmailUserIDs = _chunkDJGCYNJNcjs.stripEmailUserIDs; exports.updateKeyTypedData = _chunkDJGCYNJNcjs.updateKeyTypedData; exports.verifyAttestation = _chunkDJGCYNJNcjs.verifyAttestation; exports.verifyClearsigned = _chunkDJGCYNJNcjs.verifyClearsigned; exports.verifyProof = _chunkDJGCYNJNcjs.verifyProof; exports.verifyStatementSignature = _chunkDJGCYNJNcjs.verifyStatementSignature;
186
+
187
+
188
+ exports.ARWEAVE_GATEWAY = _chunkT4VPFPFPcjs.ARWEAVE_GATEWAY; exports.AUTHORIZATION_TYPES = _chunkT4VPFPFPcjs.AUTHORIZATION_TYPES; exports.CLAIM_CHECK_LABEL = _chunkT4VPFPFPcjs.CLAIM_CHECK_LABEL; exports.CLAIM_LIMIT = _chunkT4VPFPFPcjs.CLAIM_LIMIT; exports.CONTRACT_ERROR_TEXT = _chunkT4VPFPFPcjs.CONTRACT_ERROR_TEXT; exports.EIP712_NAME = _chunkT4VPFPFPcjs.EIP712_NAME; exports.EIP712_VERSION = _chunkT4VPFPFPcjs.EIP712_VERSION; exports.ENS_HINT_KEY = _chunkT4VPFPFPcjs.ENS_HINT_KEY; exports.ENS_TEXT_RESOLVER_ABI = _chunkT4VPFPFPcjs.ENS_TEXT_RESOLVER_ABI; exports.FARCASTER_HUB = _chunkT4VPFPFPcjs.FARCASTER_HUB; exports.IPFS_GATEWAY = _chunkT4VPFPFPcjs.IPFS_GATEWAY; exports.IPFS_GATEWAYS = _chunkT4VPFPFPcjs.IPFS_GATEWAYS; exports.KNOWN_KINDS = _chunkT4VPFPFPcjs.KNOWN_KINDS; exports.MAX_KIND_BYTES = _chunkT4VPFPFPcjs.MAX_KIND_BYTES; exports.MAX_RECORD_BYTES = _chunkT4VPFPFPcjs.MAX_RECORD_BYTES; exports.NETWORKS = _chunkT4VPFPFPcjs.NETWORKS; exports.NFT_AVATAR_ABI = _chunkT4VPFPFPcjs.NFT_AVATAR_ABI; exports.OWNER_REVOKE_REASONS = _chunkT4VPFPFPcjs.OWNER_REVOKE_REASONS; exports.REGISTRY_ABI = _chunkT4VPFPFPcjs.REGISTRY_ABI; exports.REGISTRY_ADDRESS = _chunkT4VPFPFPcjs.REGISTRY_ADDRESS; exports.REVOKE_REASONS = _chunkT4VPFPFPcjs.REVOKE_REASONS; exports.addRelease = _chunkT4VPFPFPcjs.addRelease; exports.attestTypedData = _chunkT4VPFPFPcjs.attestTypedData; exports.authorizationDigest = _chunkT4VPFPFPcjs.authorizationDigest; exports.avatarFallbacks = _chunkT4VPFPFPcjs.avatarFallbacks; exports.avatarUrl = _chunkT4VPFPFPcjs.avatarUrl; exports.bytesToFingerprint = _chunkT4VPFPFPcjs.bytesToFingerprint; exports.chainFor = _chunkT4VPFPFPcjs.chainFor; exports.checkKindName = _chunkT4VPFPFPcjs.checkKindName; exports.checkRecordValue = _chunkT4VPFPFPcjs.checkRecordValue; exports.claimCheckText = _chunkT4VPFPFPcjs.claimCheckText; exports.claimFateText = _chunkT4VPFPFPcjs.claimFateText; exports.claimFates = _chunkT4VPFPFPcjs.claimFates; exports.claimSignature = _chunkT4VPFPFPcjs.claimSignature; exports.contractErrorName = _chunkT4VPFPFPcjs.contractErrorName; exports.contractErrorText = _chunkT4VPFPFPcjs.contractErrorText; exports.displayUrl = _chunkT4VPFPFPcjs.displayUrl; exports.encryptRefusalText = _chunkT4VPFPFPcjs.encryptRefusalText; exports.encryptTo = _chunkT4VPFPFPcjs.encryptTo; exports.encryptionKeyFor = _chunkT4VPFPFPcjs.encryptionKeyFor; exports.ensHintFor = _chunkT4VPFPFPcjs.ensHintFor; exports.ensHintValue = _chunkT4VPFPFPcjs.ensHintValue; exports.ensHintWrite = _chunkT4VPFPFPcjs.ensHintWrite; exports.expiresSoon = _chunkT4VPFPFPcjs.expiresSoon; exports.expiresSoonText = _chunkT4VPFPFPcjs.expiresSoonText; exports.fetchEnsHint = _chunkT4VPFPFPcjs.fetchEnsHint; exports.fetchRecords = _chunkT4VPFPFPcjs.fetchRecords; exports.findOwners = _chunkT4VPFPFPcjs.findOwners; exports.fingerprintHash = _chunkT4VPFPFPcjs.fingerprintHash; exports.fingerprintToBytes = _chunkT4VPFPFPcjs.fingerprintToBytes; exports.formatClaimDate = _chunkT4VPFPFPcjs.formatClaimDate; exports.getRegistry = _chunkT4VPFPFPcjs.getRegistry; exports.hasEmailUserID = _chunkT4VPFPFPcjs.hasEmailUserID; exports.identifyProof = _chunkT4VPFPFPcjs.identifyProof; exports.isNetworkName = _chunkT4VPFPFPcjs.isNetworkName; exports.keyChangedText = _chunkT4VPFPFPcjs.keyChangedText; exports.keyIdOf = _chunkT4VPFPFPcjs.keyIdOf; exports.keyIdToBytes = _chunkT4VPFPFPcjs.keyIdToBytes; exports.keyProblemText = _chunkT4VPFPFPcjs.keyProblemText; exports.keyStanding = _chunkT4VPFPFPcjs.keyStanding; exports.kindName = _chunkT4VPFPFPcjs.kindName; exports.leanKey = _chunkT4VPFPFPcjs.leanKey; exports.markCompromisedTypedData = _chunkT4VPFPFPcjs.markCompromisedTypedData; exports.nftAvatarImage = _chunkT4VPFPFPcjs.nftAvatarImage; exports.normalizeFingerprint = _chunkT4VPFPFPcjs.normalizeFingerprint; exports.pageRecords = _chunkT4VPFPFPcjs.pageRecords; exports.parseNftAvatar = _chunkT4VPFPFPcjs.parseNftAvatar; exports.parsePgpKey = _chunkT4VPFPFPcjs.parsePgpKey; exports.parseRecord = _chunkT4VPFPFPcjs.parseRecord; exports.parseReleases = _chunkT4VPFPFPcjs.parseReleases; exports.payloadText = _chunkT4VPFPFPcjs.payloadText; exports.permissionSigned = _chunkT4VPFPFPcjs.permissionSigned; exports.pickRecords = _chunkT4VPFPFPcjs.pickRecords; exports.proofHref = _chunkT4VPFPFPcjs.proofHref; exports.proofSecondaryHref = _chunkT4VPFPFPcjs.proofSecondaryHref; exports.readClaims = _chunkT4VPFPFPcjs.readClaims; exports.reattestTypedData = _chunkT4VPFPFPcjs.reattestTypedData; exports.recordKind = _chunkT4VPFPFPcjs.recordKind; exports.registryDomain = _chunkT4VPFPFPcjs.registryDomain; exports.renderReleases = _chunkT4VPFPFPcjs.renderReleases; exports.revokeTypedData = _chunkT4VPFPFPcjs.revokeTypedData; exports.sameFingerprint = _chunkT4VPFPFPcjs.sameFingerprint; exports.setRecordTypedData = _chunkT4VPFPFPcjs.setRecordTypedData; exports.signatureEmail = _chunkT4VPFPFPcjs.signatureEmail; exports.sshKeys = _chunkT4VPFPFPcjs.sshKeys; exports.statementText = _chunkT4VPFPFPcjs.statementText; exports.stripEmailUserIDs = _chunkT4VPFPFPcjs.stripEmailUserIDs; exports.updateKeyTypedData = _chunkT4VPFPFPcjs.updateKeyTypedData; exports.verifyAttestation = _chunkT4VPFPFPcjs.verifyAttestation; exports.verifyClearsigned = _chunkT4VPFPFPcjs.verifyClearsigned; exports.verifyProof = _chunkT4VPFPFPcjs.verifyProof; exports.verifyStatementSignature = _chunkT4VPFPFPcjs.verifyStatementSignature;
package/dist/index.d.cts CHANGED
@@ -1,2 +1,2 @@
1
- export { ARWEAVE_GATEWAY, AUTHORIZATION_TYPES, AttestAuthorization, Attestation, AuthorizationAction, CLAIM_CHECK_LABEL, CLAIM_LIMIT, CONTRACT_ERROR_TEXT, ClaimCheckKind, ClaimCheckText, ClaimFate, ClaimReader, EIP712_NAME, EIP712_VERSION, ENS_HINT_KEY, ENS_TEXT_RESOLVER_ABI, EncryptRefusal, EncryptionKey, EncryptionKeyResult, EnsHint, EnsHintState, EnsTextReader, FARCASTER_HUB, IPFS_GATEWAY, IPFS_GATEWAYS, KNOWN_KINDS, KeyStanding, KnownKind, LeanKey, MAX_KIND_BYTES, MAX_RECORD_BYTES, MarkCompromisedAuthorization, NETWORKS, NFT_AVATAR_ABI, NetworkName, NftAvatar, Notation, OWNER_REVOKE_REASONS, PGPKeyInfo, PGPVerification, ParsedRecord, PgpInput, Proof, ProofOptions, REGISTRY_ABI, REGISTRY_ADDRESS, REVOKE_REASONS, ReattestAuthorization, RecordData, RecordReader, RegistryDeployment, ReleaseEntry, ReleasesRecord, RevokeAuthorization, RevokeReason, SetRecordAuthorization, SshKey, StrippedKey, SubkeyInfo, UpdateKeyAuthorization, addRelease, attestTypedData, authorizationDigest, avatarFallbacks, avatarUrl, bytesToFingerprint, chainFor, checkKindName, checkRecordValue, claimCheckText, claimFateText, claimFates, claimSignature, contractErrorName, contractErrorText, displayUrl, encryptRefusalText, encryptTo, encryptionKeyFor, ensHintFor, ensHintValue, ensHintWrite, expiresSoon, expiresSoonText, fetchEnsHint, fetchRecords, findOwners, fingerprintHash, fingerprintToBytes, formatClaimDate, getRegistry, hasEmailUserID, identifyProof, isNetworkName, keyChangedText, keyIdOf, keyIdToBytes, keyProblemText, keyStanding, kindName, leanKey, markCompromisedTypedData, nftAvatarImage, normalizeFingerprint, pageRecords, parseNftAvatar, parsePgpKey, parseRecord, parseReleases, payloadText, pickRecords, proofHref, proofSecondaryHref, readClaims, reattestTypedData, recordKind, registryDomain, renderReleases, revokeTypedData, sameFingerprint, setRecordTypedData, signatureEmail, sshKeys, statementText, stripEmailUserIDs, updateKeyTypedData, verifyAttestation, verifyClearsigned, verifyProof, verifyStatementSignature } from './core.cjs';
1
+ export { ARWEAVE_GATEWAY, AUTHORIZATION_TYPES, AttestAuthorization, Attestation, AuthorizationAction, CLAIM_CHECK_LABEL, CLAIM_LIMIT, CONTRACT_ERROR_TEXT, ClaimCheckKind, ClaimCheckText, ClaimFate, ClaimReader, EIP712_NAME, EIP712_VERSION, ENS_HINT_KEY, ENS_TEXT_RESOLVER_ABI, EncryptRefusal, EncryptionKey, EncryptionKeyResult, EnsHint, EnsHintState, EnsTextReader, FARCASTER_HUB, IPFS_GATEWAY, IPFS_GATEWAYS, KNOWN_KINDS, KeyStanding, KnownKind, LeanKey, MAX_KIND_BYTES, MAX_RECORD_BYTES, MarkCompromisedAuthorization, NETWORKS, NFT_AVATAR_ABI, NetworkName, NftAvatar, Notation, OWNER_REVOKE_REASONS, PGPKeyInfo, PGPVerification, ParsedRecord, PermissionCheck, PermissionReader, PgpInput, Proof, ProofOptions, REGISTRY_ABI, REGISTRY_ADDRESS, REVOKE_REASONS, ReattestAuthorization, RecordData, RecordReader, RegistryDeployment, ReleaseEntry, ReleasesRecord, RevokeAuthorization, RevokeReason, SetRecordAuthorization, SshKey, StrippedKey, SubkeyInfo, UpdateKeyAuthorization, addRelease, attestTypedData, authorizationDigest, avatarFallbacks, avatarUrl, bytesToFingerprint, chainFor, checkKindName, checkRecordValue, claimCheckText, claimFateText, claimFates, claimSignature, contractErrorName, contractErrorText, displayUrl, encryptRefusalText, encryptTo, encryptionKeyFor, ensHintFor, ensHintValue, ensHintWrite, expiresSoon, expiresSoonText, fetchEnsHint, fetchRecords, findOwners, fingerprintHash, fingerprintToBytes, formatClaimDate, getRegistry, hasEmailUserID, identifyProof, isNetworkName, keyChangedText, keyIdOf, keyIdToBytes, keyProblemText, keyStanding, kindName, leanKey, markCompromisedTypedData, nftAvatarImage, normalizeFingerprint, pageRecords, parseNftAvatar, parsePgpKey, parseRecord, parseReleases, payloadText, permissionSigned, pickRecords, proofHref, proofSecondaryHref, readClaims, reattestTypedData, recordKind, registryDomain, renderReleases, revokeTypedData, sameFingerprint, setRecordTypedData, signatureEmail, sshKeys, statementText, stripEmailUserIDs, updateKeyTypedData, verifyAttestation, verifyClearsigned, verifyProof, verifyStatementSignature } from './core.cjs';
2
2
  import 'viem';
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { ARWEAVE_GATEWAY, AUTHORIZATION_TYPES, AttestAuthorization, Attestation, AuthorizationAction, CLAIM_CHECK_LABEL, CLAIM_LIMIT, CONTRACT_ERROR_TEXT, ClaimCheckKind, ClaimCheckText, ClaimFate, ClaimReader, EIP712_NAME, EIP712_VERSION, ENS_HINT_KEY, ENS_TEXT_RESOLVER_ABI, EncryptRefusal, EncryptionKey, EncryptionKeyResult, EnsHint, EnsHintState, EnsTextReader, FARCASTER_HUB, IPFS_GATEWAY, IPFS_GATEWAYS, KNOWN_KINDS, KeyStanding, KnownKind, LeanKey, MAX_KIND_BYTES, MAX_RECORD_BYTES, MarkCompromisedAuthorization, NETWORKS, NFT_AVATAR_ABI, NetworkName, NftAvatar, Notation, OWNER_REVOKE_REASONS, PGPKeyInfo, PGPVerification, ParsedRecord, PgpInput, Proof, ProofOptions, REGISTRY_ABI, REGISTRY_ADDRESS, REVOKE_REASONS, ReattestAuthorization, RecordData, RecordReader, RegistryDeployment, ReleaseEntry, ReleasesRecord, RevokeAuthorization, RevokeReason, SetRecordAuthorization, SshKey, StrippedKey, SubkeyInfo, UpdateKeyAuthorization, addRelease, attestTypedData, authorizationDigest, avatarFallbacks, avatarUrl, bytesToFingerprint, chainFor, checkKindName, checkRecordValue, claimCheckText, claimFateText, claimFates, claimSignature, contractErrorName, contractErrorText, displayUrl, encryptRefusalText, encryptTo, encryptionKeyFor, ensHintFor, ensHintValue, ensHintWrite, expiresSoon, expiresSoonText, fetchEnsHint, fetchRecords, findOwners, fingerprintHash, fingerprintToBytes, formatClaimDate, getRegistry, hasEmailUserID, identifyProof, isNetworkName, keyChangedText, keyIdOf, keyIdToBytes, keyProblemText, keyStanding, kindName, leanKey, markCompromisedTypedData, nftAvatarImage, normalizeFingerprint, pageRecords, parseNftAvatar, parsePgpKey, parseRecord, parseReleases, payloadText, pickRecords, proofHref, proofSecondaryHref, readClaims, reattestTypedData, recordKind, registryDomain, renderReleases, revokeTypedData, sameFingerprint, setRecordTypedData, signatureEmail, sshKeys, statementText, stripEmailUserIDs, updateKeyTypedData, verifyAttestation, verifyClearsigned, verifyProof, verifyStatementSignature } from './core.js';
1
+ export { ARWEAVE_GATEWAY, AUTHORIZATION_TYPES, AttestAuthorization, Attestation, AuthorizationAction, CLAIM_CHECK_LABEL, CLAIM_LIMIT, CONTRACT_ERROR_TEXT, ClaimCheckKind, ClaimCheckText, ClaimFate, ClaimReader, EIP712_NAME, EIP712_VERSION, ENS_HINT_KEY, ENS_TEXT_RESOLVER_ABI, EncryptRefusal, EncryptionKey, EncryptionKeyResult, EnsHint, EnsHintState, EnsTextReader, FARCASTER_HUB, IPFS_GATEWAY, IPFS_GATEWAYS, KNOWN_KINDS, KeyStanding, KnownKind, LeanKey, MAX_KIND_BYTES, MAX_RECORD_BYTES, MarkCompromisedAuthorization, NETWORKS, NFT_AVATAR_ABI, NetworkName, NftAvatar, Notation, OWNER_REVOKE_REASONS, PGPKeyInfo, PGPVerification, ParsedRecord, PermissionCheck, PermissionReader, PgpInput, Proof, ProofOptions, REGISTRY_ABI, REGISTRY_ADDRESS, REVOKE_REASONS, ReattestAuthorization, RecordData, RecordReader, RegistryDeployment, ReleaseEntry, ReleasesRecord, RevokeAuthorization, RevokeReason, SetRecordAuthorization, SshKey, StrippedKey, SubkeyInfo, UpdateKeyAuthorization, addRelease, attestTypedData, authorizationDigest, avatarFallbacks, avatarUrl, bytesToFingerprint, chainFor, checkKindName, checkRecordValue, claimCheckText, claimFateText, claimFates, claimSignature, contractErrorName, contractErrorText, displayUrl, encryptRefusalText, encryptTo, encryptionKeyFor, ensHintFor, ensHintValue, ensHintWrite, expiresSoon, expiresSoonText, fetchEnsHint, fetchRecords, findOwners, fingerprintHash, fingerprintToBytes, formatClaimDate, getRegistry, hasEmailUserID, identifyProof, isNetworkName, keyChangedText, keyIdOf, keyIdToBytes, keyProblemText, keyStanding, kindName, leanKey, markCompromisedTypedData, nftAvatarImage, normalizeFingerprint, pageRecords, parseNftAvatar, parsePgpKey, parseRecord, parseReleases, payloadText, permissionSigned, pickRecords, proofHref, proofSecondaryHref, readClaims, reattestTypedData, recordKind, registryDomain, renderReleases, revokeTypedData, sameFingerprint, setRecordTypedData, signatureEmail, sshKeys, statementText, stripEmailUserIDs, updateKeyTypedData, verifyAttestation, verifyClearsigned, verifyProof, verifyStatementSignature } from './core.js';
2
2
  import 'viem';
package/dist/index.js CHANGED
@@ -70,6 +70,7 @@ import {
70
70
  parseRecord,
71
71
  parseReleases,
72
72
  payloadText,
73
+ permissionSigned,
73
74
  pickRecords,
74
75
  proofHref,
75
76
  proofSecondaryHref,
@@ -90,7 +91,7 @@ import {
90
91
  verifyClearsigned,
91
92
  verifyProof,
92
93
  verifyStatementSignature
93
- } from "./chunk-AAJWERE2.js";
94
+ } from "./chunk-SGAMXZDL.js";
94
95
  export {
95
96
  ARWEAVE_GATEWAY,
96
97
  AUTHORIZATION_TYPES,
@@ -163,6 +164,7 @@ export {
163
164
  parseRecord,
164
165
  parseReleases,
165
166
  payloadText,
167
+ permissionSigned,
166
168
  pickRecords,
167
169
  proofHref,
168
170
  proofSecondaryHref,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thurinlabs/identity-kit",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "Check Thurin.id claims (PGP keys on Ethereum addresses) in Node, workers, or the browser",
5
5
  "repository": {
6
6
  "type": "git",
@@ -47,7 +47,8 @@
47
47
  "tsup": "^8.0.0",
48
48
  "typescript": "^5.5.0",
49
49
  "viem": "^2.21.0",
50
- "vitest": "^2.0.0"
50
+ "vite": "^8.3.1",
51
+ "vitest": "^5.0.2"
51
52
  },
52
53
  "license": "MIT"
53
54
  }