@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 +1 -1
- package/dist/{chunk-AAJWERE2.js → chunk-SGAMXZDL.js} +30 -1
- package/dist/{chunk-DJGCYNJN.cjs → chunk-T4VPFPFP.cjs} +30 -1
- package/dist/core.cjs +4 -2
- package/dist/core.d.cts +33 -2
- package/dist/core.d.ts +33 -2
- package/dist/core.js +3 -1
- package/dist/index.cjs +4 -2
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -1
- package/package.json +3 -2
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
|
-
|
|
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
|
-
|
|
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://
|
|
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://
|
|
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-
|
|
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
|
-
|
|
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-
|
|
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.
|
|
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
|
-
"
|
|
50
|
+
"vite": "^8.3.1",
|
|
51
|
+
"vitest": "^5.0.2"
|
|
51
52
|
},
|
|
52
53
|
"license": "MIT"
|
|
53
54
|
}
|