@seedprotocol/publish 0.5.1 → 0.5.3
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/CHANGELOG.md +15 -0
- package/README.md +7 -1
- package/dist/config-BBL0ILr9.js +945 -0
- package/dist/config-BBL0ILr9.js.map +1 -0
- package/dist/config-DLoMtwmG.js +945 -0
- package/dist/config-DLoMtwmG.js.map +1 -0
- package/dist/ensureAutomationSessionKey-BuM0gQfL.js +84 -0
- package/dist/ensureAutomationSessionKey-BuM0gQfL.js.map +1 -0
- package/dist/ensureAutomationSessionKey-BwIqDrG9.js +84 -0
- package/dist/ensureAutomationSessionKey-BwIqDrG9.js.map +1 -0
- package/dist/ensureManagedAccountEasConfigured-CLB69z0D.js +1206 -0
- package/dist/ensureManagedAccountEasConfigured-CLB69z0D.js.map +1 -0
- package/dist/ensureManagedAccountEasConfigured-DkRwHXL2.js +1204 -0
- package/dist/ensureManagedAccountEasConfigured-DkRwHXL2.js.map +1 -0
- package/dist/ensureModularPublishBootstrap-B_w6G5EL.js +125 -0
- package/dist/ensureModularPublishBootstrap-B_w6G5EL.js.map +1 -0
- package/dist/ensureModularPublishBootstrap-BafX1eks.js +124 -0
- package/dist/ensureModularPublishBootstrap-BafX1eks.js.map +1 -0
- package/dist/ensureModularPublishBootstrap-CPEwnTCw.js +127 -0
- package/dist/ensureModularPublishBootstrap-CPEwnTCw.js.map +1 -0
- package/dist/ensureModularPublishBootstrap-CqKKjChn.js +127 -0
- package/dist/ensureModularPublishBootstrap-CqKKjChn.js.map +1 -0
- package/dist/ensureSmartWalletThenPublish-BDX7FxdV.js +47 -0
- package/dist/ensureSmartWalletThenPublish-BDX7FxdV.js.map +1 -0
- package/dist/ensureSmartWalletThenPublish-CgCb9kZy.js +47 -0
- package/dist/ensureSmartWalletThenPublish-CgCb9kZy.js.map +1 -0
- package/dist/ensureSmartWalletThenPublish-Ch7BST2M.js +48 -0
- package/dist/ensureSmartWalletThenPublish-Ch7BST2M.js.map +1 -0
- package/dist/ensureSmartWalletThenPublish-DaLwVUBl.js +47 -0
- package/dist/ensureSmartWalletThenPublish-DaLwVUBl.js.map +1 -0
- package/dist/ensureSmartWalletThenPublish-s7MBAeky.js +48 -0
- package/dist/ensureSmartWalletThenPublish-s7MBAeky.js.map +1 -0
- package/dist/errors-Du3LNbJN.js +70 -0
- package/dist/errors-Du3LNbJN.js.map +1 -0
- package/dist/helpers/approvedTargetsForAutomationPublish.d.ts +9 -0
- package/dist/helpers/approvedTargetsForAutomationPublish.d.ts.map +1 -0
- package/dist/helpers/assertStorageBoundToIdentity.d.ts +31 -0
- package/dist/helpers/assertStorageBoundToIdentity.d.ts.map +1 -0
- package/dist/helpers/automationSessionKeyPermissions.d.ts +26 -0
- package/dist/helpers/automationSessionKeyPermissions.d.ts.map +1 -0
- package/dist/helpers/easDirect.d.ts +7 -0
- package/dist/helpers/easDirect.d.ts.map +1 -1
- package/dist/helpers/enrollPublishAutomation.d.ts +36 -0
- package/dist/helpers/enrollPublishAutomation.d.ts.map +1 -0
- package/dist/helpers/ensureAutomationSessionKey.d.ts +20 -0
- package/dist/helpers/ensureAutomationSessionKey.d.ts.map +1 -0
- package/dist/helpers/ensureManagedAccountEasConfigured.d.ts +5 -0
- package/dist/helpers/ensureManagedAccountEasConfigured.d.ts.map +1 -1
- package/dist/helpers/resolveRevokeAccount.d.ts +3 -6
- package/dist/helpers/resolveRevokeAccount.d.ts.map +1 -1
- package/dist/helpers/seedSigner.d.ts +3 -0
- package/dist/helpers/seedSigner.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +573 -198
- package/dist/index.js.map +1 -1
- package/dist/publishAuthorization-9WO-Zbcj.js +3426 -0
- package/dist/publishAuthorization-9WO-Zbcj.js.map +1 -0
- package/dist/publishAuthorization-CSyAV8Hf.js +3403 -0
- package/dist/publishAuthorization-CSyAV8Hf.js.map +1 -0
- package/dist/publishManager-B7zTF25-.js +3018 -0
- package/dist/publishManager-B7zTF25-.js.map +1 -0
- package/dist/publishManager-DFIx_0eN.js +3060 -0
- package/dist/publishManager-DFIx_0eN.js.map +1 -0
- package/dist/publishManager-luSstTr_.js +3008 -0
- package/dist/publishManager-luSstTr_.js.map +1 -0
- package/dist/resolveRevokeAccount-B4J_Jo76.js +38 -0
- package/dist/resolveRevokeAccount-B4J_Jo76.js.map +1 -0
- package/dist/resolveRevokeAccount-Bo1IMYOj.js +38 -0
- package/dist/resolveRevokeAccount-Bo1IMYOj.js.map +1 -0
- package/dist/resolveRevokeAccount-FYMP0Qz6.js +30 -0
- package/dist/resolveRevokeAccount-FYMP0Qz6.js.map +1 -0
- package/dist/resolveRevokeAccount-mMTFtVDR.js +30 -0
- package/dist/resolveRevokeAccount-mMTFtVDR.js.map +1 -0
- package/dist/services/PublishManager/index.d.ts +2 -2
- package/dist/services/PublishManager/index.d.ts.map +1 -1
- package/dist/services/domainOwnership/challenge.d.ts +34 -0
- package/dist/services/domainOwnership/challenge.d.ts.map +1 -0
- package/dist/services/domainOwnership/dnsVerify.d.ts +23 -0
- package/dist/services/domainOwnership/dnsVerify.d.ts.map +1 -0
- package/dist/services/domainOwnership/index.d.ts +121 -0
- package/dist/services/domainOwnership/index.d.ts.map +1 -0
- package/dist/services/domainOwnership/public.d.ts +2 -0
- package/dist/services/domainOwnership/public.d.ts.map +1 -0
- package/dist/services/domainOwnership/registry.d.ts +18 -0
- package/dist/services/domainOwnership/registry.d.ts.map +1 -0
- package/dist/services/publish/actors/createAttestations.d.ts +6 -0
- package/dist/services/publish/actors/createAttestations.d.ts.map +1 -1
- package/dist/services/publish/index.d.ts +17 -17
- package/dist/services/publish/index.d.ts.map +1 -1
- package/dist/services/publishAuthorization/index.d.ts +68 -0
- package/dist/services/publishAuthorization/index.d.ts.map +1 -0
- package/dist/services/publishAuthorization/public.d.ts +2 -0
- package/dist/services/publishAuthorization/public.d.ts.map +1 -0
- package/dist/services/revoke/revokeAttestations.d.ts +3 -0
- package/dist/services/revoke/revokeAttestations.d.ts.map +1 -1
- package/dist/services/upload/uploadMachine.d.ts +2 -2
- package/dist/services/upload/uploadMachine.d.ts.map +1 -1
- package/dist/thirdweb.d.ts +5 -0
- package/dist/thirdweb.d.ts.map +1 -1
- package/dist/thirdweb.js +202 -83
- package/dist/thirdweb.js.map +1 -1
- package/dist/worker-BaZK7VaR.js +69 -0
- package/dist/worker-BaZK7VaR.js.map +1 -0
- package/dist/worker-ChGaz4Bg.js +69 -0
- package/dist/worker-ChGaz4Bg.js.map +1 -0
- package/dist/worker-Nx2FsrmM.js +69 -0
- package/dist/worker-Nx2FsrmM.js.map +1 -0
- package/dist/worker-eQpROLst.js +69 -0
- package/dist/worker-eQpROLst.js.map +1 -0
- package/package.json +7 -4
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { r as e } from "./config-DLoMtwmG.js";
|
|
2
|
+
import { A as t, E as n, F as r, N as i, O as a } from "./publishAuthorization-CSyAV8Hf.js";
|
|
3
|
+
import { getGetAdditionalSyncAddresses as o } from "@seedprotocol/sdk";
|
|
4
|
+
import { optimismSepolia as s } from "thirdweb/chains";
|
|
5
|
+
//#region src/helpers/resolveRevokeAccount.ts
|
|
6
|
+
async function c(c) {
|
|
7
|
+
let { account: l, attester: u } = c;
|
|
8
|
+
if (!u || l.address.toLowerCase() === u.toLowerCase()) return l;
|
|
9
|
+
let d = o(), f = !1;
|
|
10
|
+
if (d) {
|
|
11
|
+
let e = await d(), t = u.toLowerCase();
|
|
12
|
+
f = !!e?.some((e) => e?.toLowerCase() === t);
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
let e = await i(l.address);
|
|
16
|
+
if (u.toLowerCase() === e.toLowerCase() || f) {
|
|
17
|
+
let i = f ? await a(s).catch(() => e) : e;
|
|
18
|
+
if (await r(i)) {
|
|
19
|
+
let e = t();
|
|
20
|
+
await e.autoConnect({
|
|
21
|
+
client: n(),
|
|
22
|
+
chain: s
|
|
23
|
+
});
|
|
24
|
+
let r = e.getAccount();
|
|
25
|
+
if (r) return r;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
} catch {}
|
|
29
|
+
if (f) {
|
|
30
|
+
let { modularAccountModuleContract: t } = e();
|
|
31
|
+
throw t?.trim() ? Error("Revocation not supported for items published via the modular executor. Connect the ManagedAccount that controls the executor module.") : Error("Revocation not supported for items published via the modular executor.");
|
|
32
|
+
}
|
|
33
|
+
return l;
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
export { c as resolveRevokeAccount };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=resolveRevokeAccount-B4J_Jo76.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveRevokeAccount-B4J_Jo76.js","names":[],"sources":["../src/helpers/resolveRevokeAccount.ts"],"sourcesContent":["import type { Account } from 'thirdweb/wallets'\nimport { optimismSepolia } from 'thirdweb/chains'\nimport { getGetAdditionalSyncAddresses } from '@seedprotocol/sdk'\nimport { getPublishConfig } from '~/config'\nimport {\n getClient,\n getSmartWalletAddressForAdmin,\n isSmartWalletDeployed,\n getManagedAccountWallet,\n getConnectedManagedAccountAddress,\n} from '~/helpers/thirdweb'\n\n/**\n * Resolves which account to use for revoking attestations.\n * When the attester is the user's ManagedAccount (EIP4337) but they're connected\n * with a different wallet (e.g. EOA or modular account), attempts to use the\n * ManagedAccount wallet for the revoke.\n *\n * When the attester is the legacy executor module address, attempts the ManagedAccount\n * wallet if `modularAccountModuleContract` is configured (executor-routed multiRevoke).\n * Throws only when the module was the attester and no ManagedAccount path is available.\n */\nexport async function resolveRevokeAccount(params: {\n account: Account\n attester: string | null\n}): Promise<Account> {\n const { account, attester } = params\n\n if (!attester || account.address.toLowerCase() === attester.toLowerCase()) {\n return account\n }\n\n const additionalGetter = getGetAdditionalSyncAddresses()\n let attesterIsExecutorModule = false\n if (additionalGetter) {\n const additional = await additionalGetter()\n const attesterLower = attester.toLowerCase()\n attesterIsExecutorModule = !!additional?.some(\n (a: string | undefined) => a?.toLowerCase() === attesterLower,\n )\n }\n\n try {\n const derivedManagedAccount = await getSmartWalletAddressForAdmin(account.address)\n const attesterLower = attester.toLowerCase()\n const derivedLower = derivedManagedAccount.toLowerCase()\n\n if (attesterLower === derivedLower || attesterIsExecutorModule) {\n const managedAddress = attesterIsExecutorModule\n ? await getConnectedManagedAccountAddress(optimismSepolia).catch(() => derivedManagedAccount)\n : derivedManagedAccount\n const deployed = await isSmartWalletDeployed(managedAddress)\n if (deployed) {\n const managedAccountWallet = getManagedAccountWallet()\n await managedAccountWallet.autoConnect({\n client: getClient(),\n chain: optimismSepolia,\n })\n const managedAccount = managedAccountWallet.getAccount()\n if (managedAccount) {\n return managedAccount\n }\n }\n }\n } catch {\n // Fall through\n }\n\n if (attesterIsExecutorModule) {\n const { modularAccountModuleContract } = getPublishConfig()\n if (!modularAccountModuleContract?.trim()) {\n throw new Error(\n 'Revocation not supported for items published via the modular executor.',\n )\n }\n // Module configured but ManagedAccount wallet unavailable\n throw new Error(\n 'Revocation not supported for items published via the modular executor. Connect the ManagedAccount that controls the executor module.',\n )\n }\n\n return account\n}\n"],"mappings":";;;;;AAsBA,eAAsB,EAAqB,GAGtB;CACnB,IAAM,EAAE,YAAS,gBAAa;CAE9B,IAAI,CAAC,KAAY,EAAQ,QAAQ,YAAY,MAAM,EAAS,YAAY,GACtE,OAAO;CAGT,IAAM,IAAmB,EAA8B,GACnD,IAA2B;CAC/B,IAAI,GAAkB;EACpB,IAAM,IAAa,MAAM,EAAiB,GACpC,IAAgB,EAAS,YAAY;EAC3C,IAA2B,CAAC,CAAC,GAAY,MACtC,MAA0B,GAAG,YAAY,MAAM,CAClD;CACF;CAEA,IAAI;EACF,IAAM,IAAwB,MAAM,EAA8B,EAAQ,OAAO;EAIjF,IAHsB,EAAS,YAG3B,MAFiB,EAAsB,YAErB,KAAgB,GAA0B;GAC9D,IAAM,IAAiB,IACnB,MAAM,EAAkC,CAAe,CAAC,CAAC,YAAY,CAAqB,IAC1F;GAEJ,IAAI,MADmB,EAAsB,CAAc,GAC7C;IACZ,IAAM,IAAuB,EAAwB;IACrD,MAAM,EAAqB,YAAY;KACrC,QAAQ,EAAU;KAClB,OAAO;IACT,CAAC;IACD,IAAM,IAAiB,EAAqB,WAAW;IACvD,IAAI,GACF,OAAO;GAEX;EACF;CACF,QAAQ,CAER;CAEA,IAAI,GAA0B;EAC5B,IAAM,EAAE,oCAAiC,EAAiB;EAO1D,MANK,GAA8B,KAAK,IAM9B,MACR,sIACF,IAPY,MACR,wEACF;CAMJ;CAEA,OAAO;AACT"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { r as e } from "./config-BBL0ILr9.js";
|
|
2
|
+
import { D as t, I as n, P as r, j as i, k as a } from "./publishAuthorization-9WO-Zbcj.js";
|
|
3
|
+
import { getGetAdditionalSyncAddresses as o } from "@seedprotocol/sdk";
|
|
4
|
+
import { optimismSepolia as s } from "thirdweb/chains";
|
|
5
|
+
//#region src/helpers/resolveRevokeAccount.ts
|
|
6
|
+
async function c(c) {
|
|
7
|
+
let { account: l, attester: u } = c;
|
|
8
|
+
if (!u || l.address.toLowerCase() === u.toLowerCase()) return l;
|
|
9
|
+
let d = o(), f = !1;
|
|
10
|
+
if (d) {
|
|
11
|
+
let e = await d(), t = u.toLowerCase();
|
|
12
|
+
f = !!e?.some((e) => e?.toLowerCase() === t);
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
let e = await r(l.address);
|
|
16
|
+
if (u.toLowerCase() === e.toLowerCase() || f) {
|
|
17
|
+
let r = f ? await a(s).catch(() => e) : e;
|
|
18
|
+
if (await n(r)) {
|
|
19
|
+
let e = i();
|
|
20
|
+
await e.autoConnect({
|
|
21
|
+
client: t(),
|
|
22
|
+
chain: s
|
|
23
|
+
});
|
|
24
|
+
let n = e.getAccount();
|
|
25
|
+
if (n) return n;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
} catch {}
|
|
29
|
+
if (f) {
|
|
30
|
+
let { modularAccountModuleContract: t } = e();
|
|
31
|
+
throw t?.trim() ? Error("Revocation not supported for items published via the modular executor. Connect the ManagedAccount that controls the executor module.") : Error("Revocation not supported for items published via the modular executor.");
|
|
32
|
+
}
|
|
33
|
+
return l;
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
export { c as resolveRevokeAccount };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=resolveRevokeAccount-Bo1IMYOj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveRevokeAccount-Bo1IMYOj.js","names":[],"sources":["../src/helpers/resolveRevokeAccount.ts"],"sourcesContent":["import type { Account } from 'thirdweb/wallets'\nimport { optimismSepolia } from 'thirdweb/chains'\nimport { getGetAdditionalSyncAddresses } from '@seedprotocol/sdk'\nimport { getPublishConfig } from '~/config'\nimport {\n getClient,\n getSmartWalletAddressForAdmin,\n isSmartWalletDeployed,\n getManagedAccountWallet,\n getConnectedManagedAccountAddress,\n} from '~/helpers/thirdweb'\n\n/**\n * Resolves which account to use for revoking attestations.\n * When the attester is the user's ManagedAccount (EIP4337) but they're connected\n * with a different wallet (e.g. EOA or modular account), attempts to use the\n * ManagedAccount wallet for the revoke.\n *\n * When the attester is the legacy executor module address, attempts the ManagedAccount\n * wallet if `modularAccountModuleContract` is configured (executor-routed multiRevoke).\n * Throws only when the module was the attester and no ManagedAccount path is available.\n */\nexport async function resolveRevokeAccount(params: {\n account: Account\n attester: string | null\n}): Promise<Account> {\n const { account, attester } = params\n\n if (!attester || account.address.toLowerCase() === attester.toLowerCase()) {\n return account\n }\n\n const additionalGetter = getGetAdditionalSyncAddresses()\n let attesterIsExecutorModule = false\n if (additionalGetter) {\n const additional = await additionalGetter()\n const attesterLower = attester.toLowerCase()\n attesterIsExecutorModule = !!additional?.some(\n (a: string | undefined) => a?.toLowerCase() === attesterLower,\n )\n }\n\n try {\n const derivedManagedAccount = await getSmartWalletAddressForAdmin(account.address)\n const attesterLower = attester.toLowerCase()\n const derivedLower = derivedManagedAccount.toLowerCase()\n\n if (attesterLower === derivedLower || attesterIsExecutorModule) {\n const managedAddress = attesterIsExecutorModule\n ? await getConnectedManagedAccountAddress(optimismSepolia).catch(() => derivedManagedAccount)\n : derivedManagedAccount\n const deployed = await isSmartWalletDeployed(managedAddress)\n if (deployed) {\n const managedAccountWallet = getManagedAccountWallet()\n await managedAccountWallet.autoConnect({\n client: getClient(),\n chain: optimismSepolia,\n })\n const managedAccount = managedAccountWallet.getAccount()\n if (managedAccount) {\n return managedAccount\n }\n }\n }\n } catch {\n // Fall through\n }\n\n if (attesterIsExecutorModule) {\n const { modularAccountModuleContract } = getPublishConfig()\n if (!modularAccountModuleContract?.trim()) {\n throw new Error(\n 'Revocation not supported for items published via the modular executor.',\n )\n }\n // Module configured but ManagedAccount wallet unavailable\n throw new Error(\n 'Revocation not supported for items published via the modular executor. Connect the ManagedAccount that controls the executor module.',\n )\n }\n\n return account\n}\n"],"mappings":";;;;;AAsBA,eAAsB,EAAqB,GAGtB;CACnB,IAAM,EAAE,YAAS,gBAAa;CAE9B,IAAI,CAAC,KAAY,EAAQ,QAAQ,YAAY,MAAM,EAAS,YAAY,GACtE,OAAO;CAGT,IAAM,IAAmB,EAA8B,GACnD,IAA2B;CAC/B,IAAI,GAAkB;EACpB,IAAM,IAAa,MAAM,EAAiB,GACpC,IAAgB,EAAS,YAAY;EAC3C,IAA2B,CAAC,CAAC,GAAY,MACtC,MAA0B,GAAG,YAAY,MAAM,CAClD;CACF;CAEA,IAAI;EACF,IAAM,IAAwB,MAAM,EAA8B,EAAQ,OAAO;EAIjF,IAHsB,EAAS,YAG3B,MAFiB,EAAsB,YAErB,KAAgB,GAA0B;GAC9D,IAAM,IAAiB,IACnB,MAAM,EAAkC,CAAe,CAAC,CAAC,YAAY,CAAqB,IAC1F;GAEJ,IAAI,MADmB,EAAsB,CAAc,GAC7C;IACZ,IAAM,IAAuB,EAAwB;IACrD,MAAM,EAAqB,YAAY;KACrC,QAAQ,EAAU;KAClB,OAAO;IACT,CAAC;IACD,IAAM,IAAiB,EAAqB,WAAW;IACvD,IAAI,GACF,OAAO;GAEX;EACF;CACF,QAAQ,CAER;CAEA,IAAI,GAA0B;EAC5B,IAAM,EAAE,oCAAiC,EAAiB;EAO1D,MANK,GAA8B,KAAK,IAM9B,MACR,sIACF,IAPY,MACR,wEACF;CAMJ;CAEA,OAAO;AACT"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { h as e, o as t, p as n, u as r } from "./ensureManagedAccountEasConfigured-DkRwHXL2.js";
|
|
2
|
+
import { getGetAdditionalSyncAddresses as i } from "@seedprotocol/sdk";
|
|
3
|
+
import { optimismSepolia as a } from "thirdweb/chains";
|
|
4
|
+
//#region src/helpers/resolveRevokeAccount.ts
|
|
5
|
+
async function o(o) {
|
|
6
|
+
let { account: s, attester: c } = o;
|
|
7
|
+
if (!c || s.address.toLowerCase() === c.toLowerCase()) return s;
|
|
8
|
+
let l = i();
|
|
9
|
+
if (l) {
|
|
10
|
+
let e = await l(), t = c.toLowerCase();
|
|
11
|
+
if (e?.some((e) => e?.toLowerCase() === t)) throw Error("Revocation not supported for items published via the modular executor.");
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
let i = await n(s.address);
|
|
15
|
+
if (c.toLowerCase() === i.toLowerCase() && await e(i)) {
|
|
16
|
+
let e = r();
|
|
17
|
+
await e.autoConnect({
|
|
18
|
+
client: t(),
|
|
19
|
+
chain: a
|
|
20
|
+
});
|
|
21
|
+
let n = e.getAccount();
|
|
22
|
+
if (n) return n;
|
|
23
|
+
}
|
|
24
|
+
} catch {}
|
|
25
|
+
return s;
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { o as resolveRevokeAccount };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=resolveRevokeAccount-FYMP0Qz6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveRevokeAccount-FYMP0Qz6.js","names":[],"sources":["../src/helpers/resolveRevokeAccount.ts"],"sourcesContent":["import type { Account } from 'thirdweb/wallets'\nimport { optimismSepolia } from 'thirdweb/chains'\nimport { getGetAdditionalSyncAddresses } from '@seedprotocol/sdk'\nimport {\n getClient,\n getSmartWalletAddressForAdmin,\n isSmartWalletDeployed,\n getManagedAccountWallet,\n} from '~/helpers/thirdweb'\n\n/**\n * Resolves which account to use for revoking attestations.\n * When the attester is the user's ManagedAccount (EIP4337) but they're connected\n * with a different wallet (e.g. EOA or modular account), attempts to use the\n * ManagedAccount wallet for the revoke.\n *\n * @param account - The currently connected account\n * @param attester - The attester address from the seed (publisher or attestationRaw.attester)\n * @returns The account to use for revoke\n * @throws If `attester` equals any address from {@link getGetAdditionalSyncAddresses}\n * (e.g. `modularAccountModuleContract` when `initPublish` registers it). Those addresses\n * cannot revoke via the app wallet’s EAS `multiRevoke` path today.\n */\nexport async function resolveRevokeAccount(params: {\n account: Account\n attester: string | null\n}): Promise<Account> {\n const { account, attester } = params\n\n if (!attester || account.address.toLowerCase() === attester.toLowerCase()) {\n return account\n }\n\n const additionalGetter = getGetAdditionalSyncAddresses()\n if (additionalGetter) {\n const additional = await additionalGetter()\n const attesterLower = attester.toLowerCase()\n if (additional?.some((a: string | undefined) => a?.toLowerCase() === attesterLower)) {\n throw new Error(\n 'Revocation not supported for items published via the modular executor.',\n )\n }\n }\n\n try {\n const derivedManagedAccount = await getSmartWalletAddressForAdmin(account.address)\n const attesterLower = attester.toLowerCase()\n const derivedLower = derivedManagedAccount.toLowerCase()\n\n if (attesterLower === derivedLower) {\n const deployed = await isSmartWalletDeployed(derivedManagedAccount)\n if (deployed) {\n const managedAccountWallet = getManagedAccountWallet()\n await managedAccountWallet.autoConnect({\n client: getClient(),\n chain: optimismSepolia,\n })\n const managedAccount = managedAccountWallet.getAccount()\n if (managedAccount) {\n return managedAccount\n }\n }\n }\n } catch {\n // Fall through to return account; revoke attempt may fail with AccessDenied\n }\n\n return account\n}\n"],"mappings":";;;;AAuBA,eAAsB,EAAqB,GAGtB;CACnB,IAAM,EAAE,YAAS,gBAAa;CAE9B,IAAI,CAAC,KAAY,EAAQ,QAAQ,YAAY,MAAM,EAAS,YAAY,GACtE,OAAO;CAGT,IAAM,IAAmB,EAA8B;CACvD,IAAI,GAAkB;EACpB,IAAM,IAAa,MAAM,EAAiB,GACpC,IAAgB,EAAS,YAAY;EAC3C,IAAI,GAAY,MAAM,MAA0B,GAAG,YAAY,MAAM,CAAa,GAChF,MAAU,MACR,wEACF;CAEJ;CAEA,IAAI;EACF,IAAM,IAAwB,MAAM,EAA8B,EAAQ,OAAO;EAIjF,IAHsB,EAAS,YAG3B,MAFiB,EAAsB,YAErB,KAEhB,MADmB,EAAsB,CAAqB,GACpD;GACZ,IAAM,IAAuB,EAAwB;GACrD,MAAM,EAAqB,YAAY;IACrC,QAAQ,EAAU;IAClB,OAAO;GACT,CAAC;GACD,IAAM,IAAiB,EAAqB,WAAW;GACvD,IAAI,GACF,OAAO;EAEX;CAEJ,QAAQ,CAER;CAEA,OAAO;AACT"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { h as e, o as t, p as n, u as r } from "./ensureManagedAccountEasConfigured-CLB69z0D.js";
|
|
2
|
+
import { getGetAdditionalSyncAddresses as i } from "@seedprotocol/sdk";
|
|
3
|
+
import { optimismSepolia as a } from "thirdweb/chains";
|
|
4
|
+
//#region src/helpers/resolveRevokeAccount.ts
|
|
5
|
+
async function o(o) {
|
|
6
|
+
let { account: s, attester: c } = o;
|
|
7
|
+
if (!c || s.address.toLowerCase() === c.toLowerCase()) return s;
|
|
8
|
+
let l = i();
|
|
9
|
+
if (l) {
|
|
10
|
+
let e = await l(), t = c.toLowerCase();
|
|
11
|
+
if (e?.some((e) => e?.toLowerCase() === t)) throw Error("Revocation not supported for items published via the modular executor.");
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
let i = await n(s.address);
|
|
15
|
+
if (c.toLowerCase() === i.toLowerCase() && await e(i)) {
|
|
16
|
+
let e = r();
|
|
17
|
+
await e.autoConnect({
|
|
18
|
+
client: t(),
|
|
19
|
+
chain: a
|
|
20
|
+
});
|
|
21
|
+
let n = e.getAccount();
|
|
22
|
+
if (n) return n;
|
|
23
|
+
}
|
|
24
|
+
} catch {}
|
|
25
|
+
return s;
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { o as resolveRevokeAccount };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=resolveRevokeAccount-mMTFtVDR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveRevokeAccount-mMTFtVDR.js","names":[],"sources":["../src/helpers/resolveRevokeAccount.ts"],"sourcesContent":["import type { Account } from 'thirdweb/wallets'\nimport { optimismSepolia } from 'thirdweb/chains'\nimport { getGetAdditionalSyncAddresses } from '@seedprotocol/sdk'\nimport {\n getClient,\n getSmartWalletAddressForAdmin,\n isSmartWalletDeployed,\n getManagedAccountWallet,\n} from '~/helpers/thirdweb'\n\n/**\n * Resolves which account to use for revoking attestations.\n * When the attester is the user's ManagedAccount (EIP4337) but they're connected\n * with a different wallet (e.g. EOA or modular account), attempts to use the\n * ManagedAccount wallet for the revoke.\n *\n * @param account - The currently connected account\n * @param attester - The attester address from the seed (publisher or attestationRaw.attester)\n * @returns The account to use for revoke\n * @throws If `attester` equals any address from {@link getGetAdditionalSyncAddresses}\n * (e.g. `modularAccountModuleContract` when `initPublish` registers it). Those addresses\n * cannot revoke via the app wallet’s EAS `multiRevoke` path today.\n */\nexport async function resolveRevokeAccount(params: {\n account: Account\n attester: string | null\n}): Promise<Account> {\n const { account, attester } = params\n\n if (!attester || account.address.toLowerCase() === attester.toLowerCase()) {\n return account\n }\n\n const additionalGetter = getGetAdditionalSyncAddresses()\n if (additionalGetter) {\n const additional = await additionalGetter()\n const attesterLower = attester.toLowerCase()\n if (additional?.some((a: string | undefined) => a?.toLowerCase() === attesterLower)) {\n throw new Error(\n 'Revocation not supported for items published via the modular executor.',\n )\n }\n }\n\n try {\n const derivedManagedAccount = await getSmartWalletAddressForAdmin(account.address)\n const attesterLower = attester.toLowerCase()\n const derivedLower = derivedManagedAccount.toLowerCase()\n\n if (attesterLower === derivedLower) {\n const deployed = await isSmartWalletDeployed(derivedManagedAccount)\n if (deployed) {\n const managedAccountWallet = getManagedAccountWallet()\n await managedAccountWallet.autoConnect({\n client: getClient(),\n chain: optimismSepolia,\n })\n const managedAccount = managedAccountWallet.getAccount()\n if (managedAccount) {\n return managedAccount\n }\n }\n }\n } catch {\n // Fall through to return account; revoke attempt may fail with AccessDenied\n }\n\n return account\n}\n"],"mappings":";;;;AAuBA,eAAsB,EAAqB,GAGtB;CACnB,IAAM,EAAE,YAAS,gBAAa;CAE9B,IAAI,CAAC,KAAY,EAAQ,QAAQ,YAAY,MAAM,EAAS,YAAY,GACtE,OAAO;CAGT,IAAM,IAAmB,EAA8B;CACvD,IAAI,GAAkB;EACpB,IAAM,IAAa,MAAM,EAAiB,GACpC,IAAgB,EAAS,YAAY;EAC3C,IAAI,GAAY,MAAM,MAA0B,GAAG,YAAY,MAAM,CAAa,GAChF,MAAU,MACR,wEACF;CAEJ;CAEA,IAAI;EACF,IAAM,IAAwB,MAAM,EAA8B,EAAQ,OAAO;EAIjF,IAHsB,EAAS,YAG3B,MAFiB,EAAsB,YAErB,KAEhB,MADmB,EAAsB,CAAqB,GACpD;GACZ,IAAM,IAAuB,EAAwB;GACrD,MAAM,EAAqB,YAAY;IACrC,QAAQ,EAAU;IAClB,OAAO;GACT,CAAC;GACD,IAAM,IAAiB,EAAqB,WAAW;GACvD,IAAI,GACF,OAAO;EAEX;CAEJ,QAAQ,CAER;CAEA,OAAO;AACT"}
|
|
@@ -61,7 +61,7 @@ export declare const publishManagerMachine: import("xstate").StateMachine<Publis
|
|
|
61
61
|
readonly restoreFromDb: {};
|
|
62
62
|
readonly active: {};
|
|
63
63
|
};
|
|
64
|
-
}>;
|
|
64
|
+
}, import("xstate").MetaObject>;
|
|
65
65
|
export declare const PublishManager: {
|
|
66
66
|
getService: () => import("xstate").Actor<import("xstate").StateMachine<PublishManagerMachineContext, {
|
|
67
67
|
type: "RESTORE_FROM_DB_DONE";
|
|
@@ -119,7 +119,7 @@ export declare const PublishManager: {
|
|
|
119
119
|
readonly restoreFromDb: {};
|
|
120
120
|
readonly active: {};
|
|
121
121
|
};
|
|
122
|
-
}>>;
|
|
122
|
+
}, import("xstate").MetaObject>>;
|
|
123
123
|
createPublish: (item: InstanceType<typeof Item>, address: string, account?: import("../../helpers/seedSigner").PublishWallet, options?: import("../../config").CreatePublishOptions) => void;
|
|
124
124
|
retryAttestations: (seedLocalId: string, account?: import("../../helpers/seedSigner").PublishWallet) => void;
|
|
125
125
|
stopPublish: (seedLocalId: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/publishManager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,QAAQ,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAiB3C,MAAM,WAAW,4BAA4B;IAC3C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IAClE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAA;CACzF;AAeD,eAAO,MAAM,qBAAqB;UAZtB,sBAAsB;sBAAoB,4BAA4B,CAAC,kBAAkB,CAAC;mBAAiB,4BAA4B,CAAC,eAAe,CAAC;;UACxJ,gBAAgB;UAAQ,OAAO,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC;aAAW,MAAM;cAAY,OAAO;cAAY,OAAO,cAAc,EAAE,oBAAoB;;UACxJ,kBAAkB;iBAAe,MAAM;sBAAoB,OAAO,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;;UAC9F,sBAAsB;iBAAe,MAAM;qBAAmB,OAAO;yBAAuB,OAAO;;UACnG,mBAAmB;iBAAe,MAAM;yBAAuB,OAAO;;UACtE,cAAc;iBAAe,MAAM;;UACnC,qBAAqB;iBAAe,MAAM;;UAC1C,oBAAoB;iBAAe,MAAM;cAAY,OAAO;;UAC5D,cAAc;iBAAe,MAAM;;UACnC,OAAO;iBAAe,MAAM;;UAC5B,UAAU
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/publishManager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,QAAQ,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAiB3C,MAAM,WAAW,4BAA4B;IAC3C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IAClE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAA;CACzF;AAeD,eAAO,MAAM,qBAAqB;UAZtB,sBAAsB;sBAAoB,4BAA4B,CAAC,kBAAkB,CAAC;mBAAiB,4BAA4B,CAAC,eAAe,CAAC;;UACxJ,gBAAgB;UAAQ,OAAO,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC;aAAW,MAAM;cAAY,OAAO;cAAY,OAAO,cAAc,EAAE,oBAAoB;;UACxJ,kBAAkB;iBAAe,MAAM;sBAAoB,OAAO,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;;UAC9F,sBAAsB;iBAAe,MAAM;qBAAmB,OAAO;yBAAuB,OAAO;;UACnG,mBAAmB;iBAAe,MAAM;yBAAuB,OAAO;;UACtE,cAAc;iBAAe,MAAM;;UACnC,qBAAqB;iBAAe,MAAM;;UAC1C,oBAAoB;iBAAe,MAAM;cAAY,OAAO;;UAC5D,cAAc;iBAAe,MAAM;;UACnC,OAAO;iBAAe,MAAM;;UAC5B,UAAU;;;;;;;;;;;;;;;;+BAiFpB,CAAA;AA4CF,eAAO,MAAM,cAAc;;cAvIf,sBAAsB;0BAAoB,4BAA4B,CAAC,kBAAkB,CAAC;uBAAiB,4BAA4B,CAAC,eAAe,CAAC;;cACxJ,gBAAgB;cAAQ,OAAO,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC;iBAAW,MAAM;kBAAY,OAAO;kBAAY,OAAO,cAAc,EAAE,oBAAoB;;cACxJ,kBAAkB;qBAAe,MAAM;0BAAoB,OAAO,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;;cAC9F,sBAAsB;qBAAe,MAAM;yBAAmB,OAAO;6BAAuB,OAAO;;cACnG,mBAAmB;qBAAe,MAAM;6BAAuB,OAAO;;cACtE,cAAc;qBAAe,MAAM;;cACnC,qBAAqB;qBAAe,MAAM;;cAC1C,oBAAoB;qBAAe,MAAM;kBAAY,OAAO;;cAC5D,cAAc;qBAAe,MAAM;;cACnC,OAAO;qBAAe,MAAM;;cAC5B,UAAU;;;;;;;;;;;;;;;;;0BAgIZ,YAAY,CAAC,OAAO,IAAI,CAAC,WACtB,MAAM,YACL,OAAO,0BAA0B,EAAE,aAAa,YAChD,OAAO,cAAc,EAAE,oBAAoB;qCAEtB,MAAM,YAAY,OAAO,0BAA0B,EAAE,aAAa;+BAExE,MAAM;yBACZ,MAAM;;8BAED,MAAM;+BACL,MAAM,kBAAkB,YAAY,CAAC,OAAO,cAAc,CAAC;mCAEvD,MAAM,qBAAqB,OAAO,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;sCAE3D,MAAM;CACzC,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { DOMAIN_OWNERSHIP_METHOD } from '@seedprotocol/eas';
|
|
2
|
+
export type DomainOwnershipChallenge = {
|
|
3
|
+
/** Opaque id for caller correlation (not required by verify). */
|
|
4
|
+
challengeId: string;
|
|
5
|
+
domain: string;
|
|
6
|
+
claimer: string;
|
|
7
|
+
scope: string;
|
|
8
|
+
method: typeof DOMAIN_OWNERSHIP_METHOD;
|
|
9
|
+
/** Raw challenge token (keep private until DNS publish; discard after verify). */
|
|
10
|
+
token: string;
|
|
11
|
+
txtName: string;
|
|
12
|
+
txtValue: string;
|
|
13
|
+
challengeHash: `0x${string}`;
|
|
14
|
+
/** ISO-8601 expiry encoded in the TXT record. */
|
|
15
|
+
expiresAt: string;
|
|
16
|
+
/** Suggested dig command for operators. */
|
|
17
|
+
digHint: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Create a caller-held DNS TXT challenge for domain ownership verification.
|
|
21
|
+
* The caller must persist the returned object and pass it to verify.
|
|
22
|
+
* Domains are normalized to eTLD+1 (registrable) by default.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createDomainOwnershipChallenge(params: {
|
|
25
|
+
domain: string;
|
|
26
|
+
claimer: string;
|
|
27
|
+
scope?: string;
|
|
28
|
+
/** Override challenge TTL (ms). Default 72h. */
|
|
29
|
+
ttlMs?: number;
|
|
30
|
+
now?: number;
|
|
31
|
+
/** When false, skip eTLD+1 normalization (hostname scope). Default true. */
|
|
32
|
+
normalizeRegistrable?: boolean;
|
|
33
|
+
}): DomainOwnershipChallenge;
|
|
34
|
+
//# sourceMappingURL=challenge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"challenge.d.ts","sourceRoot":"","sources":["../../../src/services/domainOwnership/challenge.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,uBAAuB,EAKxB,MAAM,mBAAmB,CAAA;AAG1B,MAAM,MAAM,wBAAwB,GAAG;IACrC,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,uBAAuB,CAAA;IACtC,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,KAAK,MAAM,EAAE,CAAA;IAC5B,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAA;IACjB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAUD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE;IACrD,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,4EAA4E;IAC5E,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,GAAG,wBAAwB,CA8C3B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DomainOwnershipChallenge } from './challenge';
|
|
2
|
+
export type DnsTxtLookupResult = {
|
|
3
|
+
source: string;
|
|
4
|
+
values: string[];
|
|
5
|
+
dnssecAuthenticated?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export type VerifyDomainOwnershipDnsResult = {
|
|
8
|
+
ok: boolean;
|
|
9
|
+
matchedSources: string[];
|
|
10
|
+
lookups: DnsTxtLookupResult[];
|
|
11
|
+
error?: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Verify that the challenge TXT is visible via multiple DNS vantage points.
|
|
15
|
+
* Requires quorum (≥2 matching sources) when no DNSSEC-authenticated match is seen.
|
|
16
|
+
*/
|
|
17
|
+
export declare function verifyDomainOwnershipDns(challenge: DomainOwnershipChallenge, options?: {
|
|
18
|
+
lookups?: Array<(name: string) => Promise<DnsTxtLookupResult>>;
|
|
19
|
+
/** Minimum matching sources when DNSSEC AD is not observed (default 2). */
|
|
20
|
+
quorum?: number;
|
|
21
|
+
now?: number;
|
|
22
|
+
}): Promise<VerifyDomainOwnershipDnsResult>;
|
|
23
|
+
//# sourceMappingURL=dnsVerify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dnsVerify.d.ts","sourceRoot":"","sources":["../../../src/services/domainOwnership/dnsVerify.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAE3D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,EAAE,EAAE,OAAO,CAAA;IACX,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAyDD;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,wBAAwB,EACnC,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAC9D,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,GACA,OAAO,CAAC,8BAA8B,CAAC,CA4DzC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { type DomainOwnershipAssessResult, type DomainOwnershipDecoded } from '@seedprotocol/eas';
|
|
2
|
+
import { type PublishWallet, type SeedTxSender } from '~/helpers/seedSigner';
|
|
3
|
+
import { createDomainOwnershipChallenge, type DomainOwnershipChallenge } from './challenge';
|
|
4
|
+
import { verifyDomainOwnershipDns, type VerifyDomainOwnershipDnsResult } from './dnsVerify';
|
|
5
|
+
import { fingerprintFromRegistrySnapshot, lookupDomainRegistry, normalizeRegistrableDomain, type DomainRegistrySnapshot } from './registry';
|
|
6
|
+
export { DOMAIN_OWNERSHIP_SCHEMA_DEF, DOMAIN_OWNERSHIP_SCHEMA_NAME, DOMAIN_OWNERSHIP_METHOD, } from '@seedprotocol/eas';
|
|
7
|
+
export { createDomainOwnershipChallenge };
|
|
8
|
+
export type { DomainOwnershipChallenge };
|
|
9
|
+
export { verifyDomainOwnershipDns };
|
|
10
|
+
export type { VerifyDomainOwnershipDnsResult };
|
|
11
|
+
export { lookupDomainRegistry, normalizeRegistrableDomain, fingerprintFromRegistrySnapshot };
|
|
12
|
+
export type { DomainRegistrySnapshot };
|
|
13
|
+
/** Deterministic on-chain schema UID for {@link DOMAIN_OWNERSHIP_SCHEMA_DEF}. */
|
|
14
|
+
export declare function getDomainOwnershipSchemaUid(): `0x${string}`;
|
|
15
|
+
/**
|
|
16
|
+
* Registers the DomainOwnership EAS schema (if missing) and creates a Schema #1 name attestation.
|
|
17
|
+
*/
|
|
18
|
+
export declare function ensureDomainOwnershipSchema(account: PublishWallet | SeedTxSender): Promise<`0x${string}`>;
|
|
19
|
+
export declare function encodeDomainOwnershipAttestationData(params: {
|
|
20
|
+
domain: string;
|
|
21
|
+
claimer: string;
|
|
22
|
+
method: string;
|
|
23
|
+
challengeHash: string;
|
|
24
|
+
verifiedAt: number;
|
|
25
|
+
registryCreationDate: string;
|
|
26
|
+
registryExpirationDate: string;
|
|
27
|
+
registryFingerprint: string;
|
|
28
|
+
scope: string;
|
|
29
|
+
}): `0x${string}`;
|
|
30
|
+
export type AttestDomainOwnershipParams = {
|
|
31
|
+
wallet: PublishWallet | SeedTxSender;
|
|
32
|
+
domain: string;
|
|
33
|
+
claimer: string;
|
|
34
|
+
challengeHash: string;
|
|
35
|
+
registrySnapshot: DomainRegistrySnapshot;
|
|
36
|
+
scope?: string;
|
|
37
|
+
method?: string;
|
|
38
|
+
verifiedAt?: number;
|
|
39
|
+
/** When true (default), register + name the schema if missing. */
|
|
40
|
+
ensureSchema?: boolean;
|
|
41
|
+
/** Override EAS expirationTime (unix seconds). */
|
|
42
|
+
expirationTime?: number;
|
|
43
|
+
};
|
|
44
|
+
export type AttestDomainOwnershipResult = {
|
|
45
|
+
uid: `0x${string}`;
|
|
46
|
+
schemaUid: `0x${string}`;
|
|
47
|
+
challengeHash: `0x${string}`;
|
|
48
|
+
registryFingerprint: `0x${string}`;
|
|
49
|
+
verifiedAt: number;
|
|
50
|
+
expirationTime: number;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Tool wallet attests domain ownership after off-chain DNS + RDAP verification.
|
|
54
|
+
*/
|
|
55
|
+
export declare function attestDomainOwnership(params: AttestDomainOwnershipParams): Promise<AttestDomainOwnershipResult>;
|
|
56
|
+
/**
|
|
57
|
+
* Revoke a DomainOwnership sidecar attestation (must be signed by the original tool attester).
|
|
58
|
+
*/
|
|
59
|
+
export declare function revokeDomainOwnership(params: {
|
|
60
|
+
wallet: PublishWallet | SeedTxSender;
|
|
61
|
+
uid: string;
|
|
62
|
+
schemaUid?: string;
|
|
63
|
+
}): Promise<void>;
|
|
64
|
+
export type VerifyDomainOwnershipChallengeResult = {
|
|
65
|
+
ok: boolean;
|
|
66
|
+
dns: VerifyDomainOwnershipDnsResult;
|
|
67
|
+
registrySnapshot: DomainRegistrySnapshot | null;
|
|
68
|
+
challengeHash: `0x${string}`;
|
|
69
|
+
error?: string;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Verify DNS TXT for a caller-held challenge and fetch an RDAP registry snapshot.
|
|
73
|
+
* Does not write an attestation.
|
|
74
|
+
*/
|
|
75
|
+
export declare function verifyDomainOwnershipChallenge(params: {
|
|
76
|
+
challenge: DomainOwnershipChallenge;
|
|
77
|
+
/** Injected DNS lookups for tests. */
|
|
78
|
+
dnsLookups?: Array<(name: string) => Promise<{
|
|
79
|
+
source: string;
|
|
80
|
+
values: string[];
|
|
81
|
+
dnssecAuthenticated?: boolean;
|
|
82
|
+
}>>;
|
|
83
|
+
/** Injected registry lookup for tests. */
|
|
84
|
+
registryLookup?: (domain: string) => Promise<DomainRegistrySnapshot | null>;
|
|
85
|
+
now?: number;
|
|
86
|
+
}): Promise<VerifyDomainOwnershipChallengeResult>;
|
|
87
|
+
export type VerifyAndAttestDomainOwnershipResult = AttestDomainOwnershipResult & {
|
|
88
|
+
registrySnapshot: DomainRegistrySnapshot;
|
|
89
|
+
dns: VerifyDomainOwnershipDnsResult;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Verify DNS + RDAP, then attest from the tool wallet.
|
|
93
|
+
*/
|
|
94
|
+
export declare function verifyAndAttestDomainOwnership(params: {
|
|
95
|
+
challenge: DomainOwnershipChallenge;
|
|
96
|
+
wallet: PublishWallet | SeedTxSender;
|
|
97
|
+
ensureSchema?: boolean;
|
|
98
|
+
dnsLookups?: Array<(name: string) => Promise<{
|
|
99
|
+
source: string;
|
|
100
|
+
values: string[];
|
|
101
|
+
dnssecAuthenticated?: boolean;
|
|
102
|
+
}>>;
|
|
103
|
+
registryLookup?: (domain: string) => Promise<DomainRegistrySnapshot | null>;
|
|
104
|
+
now?: number;
|
|
105
|
+
}): Promise<VerifyAndAttestDomainOwnershipResult>;
|
|
106
|
+
export type AssessDomainOwnershipLiveResult = DomainOwnershipAssessResult & {
|
|
107
|
+
decoded: DomainOwnershipDecoded;
|
|
108
|
+
uid: string;
|
|
109
|
+
registrySnapshot: DomainRegistrySnapshot | null;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Load a DomainOwnership attestation (by UID via tool allowlist query) and recheck RDAP.
|
|
113
|
+
*/
|
|
114
|
+
export declare function assessDomainOwnershipLive(params: {
|
|
115
|
+
uid: string;
|
|
116
|
+
toolAddresses: string[];
|
|
117
|
+
schemaUid?: string;
|
|
118
|
+
registryLookup?: (domain: string) => Promise<DomainRegistrySnapshot | null>;
|
|
119
|
+
now?: number;
|
|
120
|
+
}): Promise<AssessDomainOwnershipLiveResult>;
|
|
121
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/domainOwnership/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { DOMAIN_OWNERSHIP_SCHEMA_DEF, DOMAIN_OWNERSHIP_SCHEMA_NAME, DOMAIN_OWNERSHIP_METHOD, createDomainOwnershipChallenge, verifyDomainOwnershipDns, lookupDomainRegistry, normalizeRegistrableDomain, fingerprintFromRegistrySnapshot, getDomainOwnershipSchemaUid, ensureDomainOwnershipSchema, encodeDomainOwnershipAttestationData, attestDomainOwnership, revokeDomainOwnership, verifyDomainOwnershipChallenge, verifyAndAttestDomainOwnership, assessDomainOwnershipLive, type DomainOwnershipChallenge, type DomainRegistrySnapshot, type VerifyDomainOwnershipDnsResult, type AttestDomainOwnershipParams, type AttestDomainOwnershipResult, type VerifyDomainOwnershipChallengeResult, type VerifyAndAttestDomainOwnershipResult, type AssessDomainOwnershipLiveResult, } from './index';
|
|
2
|
+
//# sourceMappingURL=public.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/services/domainOwnership/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EACvB,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,oCAAoC,EACpC,qBAAqB,EACrB,qBAAqB,EACrB,8BAA8B,EAC9B,8BAA8B,EAC9B,yBAAyB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,oCAAoC,EACzC,KAAK,oCAAoC,EACzC,KAAK,+BAA+B,GACrC,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type DomainRegistryFingerprintInput } from '@seedprotocol/eas';
|
|
2
|
+
export type DomainRegistrySnapshot = DomainRegistryFingerprintInput & {
|
|
3
|
+
expirationDate?: string;
|
|
4
|
+
updatedDate?: string;
|
|
5
|
+
registrarName?: string;
|
|
6
|
+
source?: string;
|
|
7
|
+
isRegistered?: boolean;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Normalize input to a registrable domain (eTLD+1). Throws when invalid.
|
|
11
|
+
*/
|
|
12
|
+
export declare function normalizeRegistrableDomain(input: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Fetch RDAP/WHOIS registry snapshot and compute fingerprint inputs.
|
|
15
|
+
*/
|
|
16
|
+
export declare function lookupDomainRegistry(domain: string): Promise<DomainRegistrySnapshot | null>;
|
|
17
|
+
export declare function fingerprintFromRegistrySnapshot(snapshot: DomainRegistryFingerprintInput): `0x${string}`;
|
|
18
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/services/domainOwnership/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,mBAAmB,CAAA;AAE1B,MAAM,MAAM,sBAAsB,GAAG,8BAA8B,GAAG;IACpE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQhE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAiBxC;AAED,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,8BAA8B,GACvC,KAAK,MAAM,EAAE,CAMf"}
|
|
@@ -4,6 +4,12 @@ type PublishRoutingInput = {
|
|
|
4
4
|
publisherAddress: string;
|
|
5
5
|
modularAccountModuleContract?: string;
|
|
6
6
|
managedAddress?: string;
|
|
7
|
+
/**
|
|
8
|
+
* When true (automation session keys), send `multiPublish` to the executor module
|
|
9
|
+
* so module-only `approvedTargets` can execute. Interactive modular publish keeps
|
|
10
|
+
* the ManagedAccount as `txTargetAddress`.
|
|
11
|
+
*/
|
|
12
|
+
routeToExecutorModule?: boolean;
|
|
7
13
|
};
|
|
8
14
|
type PublishRouting = {
|
|
9
15
|
txTargetAddress: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAttestations.d.ts","sourceRoot":"","sources":["../../../../src/services/publish/actors/createAttestations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"createAttestations.d.ts","sourceRoot":"","sources":["../../../../src/services/publish/actors/createAttestations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAuD3D,KAAK,mBAAmB,GAAG;IACzB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,gBAAgB,EAAE,MAAM,CAAA;IACxB,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,KAAK,cAAc,GAAG;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,wBAAwB,EAAE,MAAM,CAAA;CACjC,CAAA;AAMD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAiChF;AAqHD,eAAO,MAAM,kBAAkB;gBACuC,OAAO;;aApLrC,qBAAqB;WAAS,OAAO;gCAge5E,CAAA"}
|
|
@@ -4,44 +4,44 @@ export declare const publishMachine: import("xstate").StateMachine<Partial<Publi
|
|
|
4
4
|
[x: string]: import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./actors").CreateArweaveTransactionsResult, {
|
|
5
5
|
context: PublishMachineContext;
|
|
6
6
|
event: unknown;
|
|
7
|
-
}, import("xstate").EventObject
|
|
7
|
+
}, import("xstate").EventObject> | import("xstate").PromiseActorLogic<import("./actors").CreateArweaveTransactionsResult, {
|
|
8
8
|
context: PublishMachineContext;
|
|
9
9
|
event: unknown;
|
|
10
|
-
}, import("xstate").EventObject
|
|
10
|
+
}, import("xstate").EventObject> | import("xstate").PromiseActorLogic<{
|
|
11
|
+
deferredHtmlSeedLocalIds: string[];
|
|
12
|
+
}, {
|
|
13
|
+
context: PublishMachineContext;
|
|
14
|
+
}, import("xstate").EventObject> | import("xstate").PromiseActorLogic<void, {
|
|
15
|
+
context: PublishMachineContext;
|
|
16
|
+
}, import("xstate").EventObject> | import("xstate").PromiseActorLogic<import("./actors").CreateArweaveDataItemsResult, {
|
|
11
17
|
context: PublishMachineContext;
|
|
12
18
|
event: unknown;
|
|
13
|
-
}, import("xstate").EventObject
|
|
19
|
+
}, import("xstate").EventObject> | import("xstate").PromiseActorLogic<import("./actors").CreateArweaveDataItemsResult, {
|
|
14
20
|
context: PublishMachineContext;
|
|
15
21
|
event: unknown;
|
|
16
|
-
}, import("xstate").EventObject
|
|
22
|
+
}, import("xstate").EventObject> | import("xstate").PromiseActorLogic<ReimbursementResponse, {
|
|
17
23
|
context: PublishMachineContext;
|
|
18
24
|
event: unknown;
|
|
19
|
-
}, import("xstate").EventObject
|
|
25
|
+
}, import("xstate").EventObject> | import("xstate").PromiseActorLogic<void, {
|
|
20
26
|
context: PublishMachineContext;
|
|
21
27
|
event: unknown;
|
|
22
|
-
}, import("xstate").EventObject
|
|
28
|
+
}, import("xstate").EventObject> | import("xstate").CallbackActorLogic<import("xstate").EventObject, {
|
|
23
29
|
context: PublishMachineContext;
|
|
24
|
-
}, import("xstate").EventObject
|
|
30
|
+
}, import("xstate").EventObject> | import("xstate").CallbackActorLogic<import("xstate").EventObject, {
|
|
25
31
|
context: PublishMachineContext;
|
|
26
|
-
}, import("xstate").EventObject
|
|
32
|
+
}, import("xstate").EventObject> | import("xstate").PromiseActorLogic<{
|
|
27
33
|
easPayload: unknown;
|
|
28
34
|
}, {
|
|
29
35
|
context: PublishMachineContext;
|
|
30
36
|
event: unknown;
|
|
31
|
-
}, import("xstate").EventObject
|
|
37
|
+
}, import("xstate").EventObject> | import("xstate").PromiseActorLogic<{
|
|
32
38
|
easPayload: unknown;
|
|
33
39
|
}, {
|
|
34
40
|
context: PublishMachineContext;
|
|
35
41
|
event: unknown;
|
|
36
|
-
}, import("xstate").EventObject
|
|
42
|
+
}, import("xstate").EventObject> | import("xstate").CallbackActorLogic<import("xstate").EventObject, {
|
|
37
43
|
context: PublishMachineContext;
|
|
38
44
|
event?: unknown;
|
|
39
|
-
}, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<{
|
|
40
|
-
deferredHtmlSeedLocalIds: string[];
|
|
41
|
-
}, {
|
|
42
|
-
context: PublishMachineContext;
|
|
43
|
-
}, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<void, {
|
|
44
|
-
context: PublishMachineContext;
|
|
45
45
|
}, import("xstate").EventObject>> | undefined;
|
|
46
46
|
}, {
|
|
47
47
|
src: "createArweaveTransactions";
|
|
@@ -217,6 +217,6 @@ export declare const publishMachine: import("xstate").StateMachine<Partial<Publi
|
|
|
217
217
|
readonly success: {};
|
|
218
218
|
readonly failure: {};
|
|
219
219
|
};
|
|
220
|
-
}>;
|
|
220
|
+
}, import("xstate").MetaObject>;
|
|
221
221
|
export type PublishActor = ActorRefFrom<typeof publishMachine>;
|
|
222
222
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/publish/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAE1C,OAAO,EAEL,qBAAqB,EACrB,qBAAqB,EAEtB,MAAiG,aAAa,CAAA;AAgD/G,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/publish/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAE1C,OAAO,EAEL,qBAAqB,EACrB,qBAAqB,EAEtB,MAAiG,aAAa,CAAA;AAgD/G,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA8lBzB,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAA"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { type PublishAuthorizationAssessResult, type PublishAuthorizationDecoded } from '@seedprotocol/eas';
|
|
2
|
+
import { type PublishWallet, type SeedTxSender } from '~/helpers/seedSigner';
|
|
3
|
+
export { PUBLISH_AUTHORIZATION_SCHEMA_DEF, PUBLISH_AUTHORIZATION_SCHEMA_NAME, PUBLISH_AUTHORIZATION_SCOPES, } from '@seedprotocol/eas';
|
|
4
|
+
/** Deterministic on-chain schema UID for {@link PUBLISH_AUTHORIZATION_SCHEMA_DEF}. */
|
|
5
|
+
export declare function getPublishAuthorizationSchemaUid(): `0x${string}`;
|
|
6
|
+
/**
|
|
7
|
+
* Registers the PublishAuthorization EAS schema (if missing) and creates a Schema #1 name attestation.
|
|
8
|
+
*/
|
|
9
|
+
export declare function ensurePublishAuthorizationSchema(account: PublishWallet | SeedTxSender): Promise<`0x${string}`>;
|
|
10
|
+
export declare function encodePublishAuthorizationAttestationData(params: {
|
|
11
|
+
identity: string;
|
|
12
|
+
sessionKey: string;
|
|
13
|
+
app: string;
|
|
14
|
+
scopes: string;
|
|
15
|
+
grantedAt: number;
|
|
16
|
+
expiresAt: number;
|
|
17
|
+
permissionsHash: string;
|
|
18
|
+
}): `0x${string}`;
|
|
19
|
+
export type AttestPublishAuthorizationParams = {
|
|
20
|
+
/** Must be the ManagedAccount (identity) wallet — becomes EAS attester. */
|
|
21
|
+
wallet: PublishWallet | SeedTxSender;
|
|
22
|
+
identity: string;
|
|
23
|
+
sessionKey: string;
|
|
24
|
+
/** Optional app label address; defaults to zero address. */
|
|
25
|
+
app?: string;
|
|
26
|
+
scopes?: string;
|
|
27
|
+
grantedAt?: number;
|
|
28
|
+
expiresAt?: number;
|
|
29
|
+
permissionsHash?: string;
|
|
30
|
+
ensureSchema?: boolean;
|
|
31
|
+
/** Override EAS expirationTime (unix seconds). */
|
|
32
|
+
expirationTime?: number;
|
|
33
|
+
};
|
|
34
|
+
export type AttestPublishAuthorizationResult = {
|
|
35
|
+
uid: `0x${string}`;
|
|
36
|
+
schemaUid: `0x${string}`;
|
|
37
|
+
permissionsHash: `0x${string}`;
|
|
38
|
+
grantedAt: number;
|
|
39
|
+
expiresAt: number;
|
|
40
|
+
expirationTime: number;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* ManagedAccount attests a PublishAuthorization grant (recipient = session key).
|
|
44
|
+
*/
|
|
45
|
+
export declare function attestPublishAuthorization(params: AttestPublishAuthorizationParams): Promise<AttestPublishAuthorizationResult>;
|
|
46
|
+
/**
|
|
47
|
+
* Revoke a PublishAuthorization sidecar (must be signed by the original ManagedAccount attester).
|
|
48
|
+
*/
|
|
49
|
+
export declare function revokePublishAuthorization(params: {
|
|
50
|
+
wallet: PublishWallet | SeedTxSender;
|
|
51
|
+
uid: string;
|
|
52
|
+
schemaUid?: string;
|
|
53
|
+
}): Promise<void>;
|
|
54
|
+
export type AssessPublishAuthorizationLiveResult = {
|
|
55
|
+
uid: string;
|
|
56
|
+
decoded: PublishAuthorizationDecoded;
|
|
57
|
+
assess: PublishAuthorizationAssessResult;
|
|
58
|
+
expirationTime?: number | null;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Load a PublishAuthorization attestation by uid (via identity filter + client match) and assess.
|
|
62
|
+
* Prefer filtering with {@link getPublishAuthorizationFromEas} when you know identity/sessionKey.
|
|
63
|
+
*/
|
|
64
|
+
export declare function assessPublishAuthorizationLive(params: {
|
|
65
|
+
uid: string;
|
|
66
|
+
identities: string[];
|
|
67
|
+
}): Promise<AssessPublishAuthorizationLiveResult | null>;
|
|
68
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/publishAuthorization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,gCAAgC,EACrC,KAAK,2BAA2B,EACjC,MAAM,mBAAmB,CAAA;AAQ1B,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAA;AAS7B,OAAO,EACL,gCAAgC,EAChC,iCAAiC,EACjC,4BAA4B,GAC7B,MAAM,mBAAmB,CAAA;AA8B1B,sFAAsF;AACtF,wBAAgB,gCAAgC,IAAI,KAAK,MAAM,EAAE,CAMhE;AAED;;GAEG;AACH,wBAAsB,gCAAgC,CACpD,OAAO,EAAE,aAAa,GAAG,YAAY,GACpC,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAsBxB;AAED,wBAAgB,yCAAyC,CAAC,MAAM,EAAE;IAChE,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;CACxB,GAAG,KAAK,MAAM,EAAE,CAgBhB;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,2EAA2E;IAC3E,MAAM,EAAE,aAAa,GAAG,YAAY,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,GAAG,EAAE,KAAK,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;IACxB,eAAe,EAAE,KAAK,MAAM,EAAE,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,gCAAgC,GACvC,OAAO,CAAC,gCAAgC,CAAC,CAqF3C;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,MAAM,EAAE,aAAa,GAAG,YAAY,CAAA;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBhB;AAED,MAAM,MAAM,oCAAoC,GAAG;IACjD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,2BAA2B,CAAA;IACpC,MAAM,EAAE,gCAAgC,CAAA;IACxC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC3D,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB,GAAG,OAAO,CAAC,oCAAoC,GAAG,IAAI,CAAC,CAoBvD"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { PUBLISH_AUTHORIZATION_SCHEMA_DEF, PUBLISH_AUTHORIZATION_SCHEMA_NAME, PUBLISH_AUTHORIZATION_SCOPES, getPublishAuthorizationSchemaUid, ensurePublishAuthorizationSchema, encodePublishAuthorizationAttestationData, attestPublishAuthorization, revokePublishAuthorization, assessPublishAuthorizationLive, type AttestPublishAuthorizationParams, type AttestPublishAuthorizationResult, type AssessPublishAuthorizationLiveResult, } from './index';
|
|
2
|
+
//# sourceMappingURL=public.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/services/publishAuthorization/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,iCAAiC,EACjC,4BAA4B,EAC5B,gCAAgC,EAChC,gCAAgC,EAChC,yCAAyC,EACzC,0BAA0B,EAC1B,0BAA0B,EAC1B,8BAA8B,EAC9B,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,KAAK,oCAAoC,GAC1C,MAAM,SAAS,CAAA"}
|