@seedprotocol/publish 0.7.5-next.850.g9ab585b → 0.7.5
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 +31 -1
- package/dist/{chainConfig-BWzE8DIF.js → chainConfig-CY22-kWO.js} +1389 -1304
- package/dist/chainConfig-CY22-kWO.js.map +1 -0
- package/dist/{ensureAutomationSessionKey-BenLVZk4.js → ensureAutomationSessionKey-CKFyZNj7.js} +3 -3
- package/dist/{ensureAutomationSessionKey-BenLVZk4.js.map → ensureAutomationSessionKey-CKFyZNj7.js.map} +1 -1
- package/dist/{ensureModularPublishBootstrap-CngVyk4c.js → ensureModularPublishBootstrap-DQDSbkQy.js} +3 -3
- package/dist/{ensureModularPublishBootstrap-CngVyk4c.js.map → ensureModularPublishBootstrap-DQDSbkQy.js.map} +1 -1
- package/dist/ensureSmartWalletThenPublish-By_Xv7xG.js +47 -0
- package/dist/ensureSmartWalletThenPublish-By_Xv7xG.js.map +1 -0
- package/dist/helpers/arweave.d.ts.map +1 -1
- package/dist/helpers/chainClient.d.ts +6 -0
- package/dist/helpers/chainClient.d.ts.map +1 -1
- package/dist/helpers/ensureSmartWalletThenPublish.d.ts.map +1 -1
- package/dist/helpers/ensureWalletThenPublish.d.ts.map +1 -1
- package/dist/helpers/publishWalletRegistry.d.ts +17 -0
- package/dist/helpers/publishWalletRegistry.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/{managedAccountAdmin-CW1P40qh.js → managedAccountAdmin-DBAX8yny.js} +2 -2
- package/dist/{managedAccountAdmin-CW1P40qh.js.map → managedAccountAdmin-DBAX8yny.js.map} +1 -1
- package/dist/{publishAuthorization-BOalFNvQ.js → publishAuthorization-D2wbNc-H.js} +2 -2
- package/dist/{publishAuthorization-BOalFNvQ.js.map → publishAuthorization-D2wbNc-H.js.map} +1 -1
- package/dist/{publishWalletRegistry-Bf_Nvf_3.js → publishWalletRegistry-BaQe9rIR.js} +23 -20
- package/dist/publishWalletRegistry-BaQe9rIR.js.map +1 -0
- package/dist/react/ConnectButton.d.ts.map +1 -1
- package/dist/{resolveRevokeAccount-BUK9i1T4.js → resolveRevokeAccount-B7cj6OyT.js} +2 -2
- package/dist/{resolveRevokeAccount-BUK9i1T4.js.map → resolveRevokeAccount-B7cj6OyT.js.map} +1 -1
- package/dist/services/arweaveL1Finalize/worker.d.ts.map +1 -1
- package/dist/services/publish/actors/checking.d.ts.map +1 -1
- package/dist/services/publish/actors/createArweaveDataItems.d.ts +2 -0
- package/dist/services/publish/actors/createArweaveDataItems.d.ts.map +1 -1
- package/dist/services/publish/actors/createArweaveDataItemsPhase2.d.ts.map +1 -1
- package/dist/services/publish/actors/uploadViaBundler.d.ts +5 -0
- package/dist/services/publish/actors/uploadViaBundler.d.ts.map +1 -1
- package/dist/services/publish/index.d.ts +3 -1
- package/dist/services/publish/index.d.ts.map +1 -1
- package/dist/services/publishManager/actors/restorableSnapshot.d.ts +22 -0
- package/dist/services/publishManager/actors/restorableSnapshot.d.ts.map +1 -0
- package/dist/services/publishManager/actors/restoreFromDb.d.ts.map +1 -1
- package/dist/thirdweb.js +17 -13
- package/dist/thirdweb.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/{undeployedSmartAccount-B6KSTipF.js → undeployedSmartAccount-pbMpi4PV.js} +2 -2
- package/dist/{undeployedSmartAccount-B6KSTipF.js.map → undeployedSmartAccount-pbMpi4PV.js.map} +1 -1
- package/dist/worker-CBBwWaxo.js +87 -0
- package/dist/worker-CBBwWaxo.js.map +1 -0
- package/package.json +8 -8
- package/dist/chainConfig-BWzE8DIF.js.map +0 -1
- package/dist/ensureSmartWalletThenPublish-3Q_vA8mD.js +0 -46
- package/dist/ensureSmartWalletThenPublish-3Q_vA8mD.js.map +0 -1
- package/dist/publishWalletRegistry-Bf_Nvf_3.js.map +0 -1
- package/dist/worker-DAciYSNY.js +0 -88
- package/dist/worker-DAciYSNY.js.map +0 -1
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
|
|
2
|
-
import { H as t, Tt as n, V as r, X as i, _t as a, a as o, f as s, gt as c, qt as l, t as u, wt as d } from "./chainConfig-BWzE8DIF.js";
|
|
3
|
-
import { ethers as f } from "ethers";
|
|
4
|
-
//#region src/helpers/ensureSmartWalletThenPublish.ts
|
|
5
|
-
var p = /* @__PURE__ */ e({ ensureSmartWalletThenPublish: () => _ }), m = "A connected wallet is required for publishing with the modular executor. Connect your wallet and try again.", h = () => `Could not connect the managed publishing account on ${u()}. Reconnect with the same sign-in method and try again.`;
|
|
6
|
-
function g(e) {
|
|
7
|
-
if (e) return e instanceof f.Wallet ? e : d(e) ? e.signer : n(e) ? e : c(e).signer;
|
|
8
|
-
}
|
|
9
|
-
async function _(e, n, u, d) {
|
|
10
|
-
let f = o(), p = await u();
|
|
11
|
-
if (!p || !p.trim()) return { outcome: "no_address" };
|
|
12
|
-
if (f.useModularExecutor) {
|
|
13
|
-
let n = await t();
|
|
14
|
-
if (!n) return {
|
|
15
|
-
outcome: "managed_not_ready",
|
|
16
|
-
error: new l(m, "MANAGED_ACCOUNT_UNAVAILABLE")
|
|
17
|
-
};
|
|
18
|
-
let i;
|
|
19
|
-
try {
|
|
20
|
-
i = await r(a());
|
|
21
|
-
} catch (e) {
|
|
22
|
-
return {
|
|
23
|
-
outcome: "managed_not_ready",
|
|
24
|
-
error: new l(h(), "MANAGED_ACCOUNT_UNAVAILABLE", void 0, e)
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
let o = c(n, { kind: "smart" });
|
|
28
|
-
return s(e, i, o, {
|
|
29
|
-
...d,
|
|
30
|
-
dataItemSigner: g(d?.dataItemSigner) ?? o.signer
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
let _ = await i(n ?? null);
|
|
34
|
-
if ("address" in _) {
|
|
35
|
-
let t = c(_.account, { kind: "smart" });
|
|
36
|
-
return s(e, _.address, t, {
|
|
37
|
-
...d,
|
|
38
|
-
dataItemSigner: g(d?.dataItemSigner) ?? t.signer
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
return { outcome: "needs_deploy" };
|
|
42
|
-
}
|
|
43
|
-
//#endregion
|
|
44
|
-
export { p as n, _ as t };
|
|
45
|
-
|
|
46
|
-
//# sourceMappingURL=ensureSmartWalletThenPublish-3Q_vA8mD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ensureSmartWalletThenPublish-3Q_vA8mD.js","names":["__exportAll","getConnectedModularAccount","isSeedSigner","getConnectedManagedAccountAddress","resolveSmartWalletForPublish","getPublishThirdwebChain","getPublishConfig","startPublish","fromThirdwebAccount","ManagedAccountPublishError","getPublishChainName","isPublishWallet","ensureSmartWalletThenPublish_exports","ensureSmartWalletThenPublish","MSG_NO_ACCOUNT_MODULAR","MSG_MANAGED_UNAVAILABLE","coerceDataItemSigner","signer","ethers","config","address","getAddress","modularAccount","managedAddress","cause","wallet","item","options","resolved","activeAccount"],"sources":["../src/helpers/ensureSmartWalletThenPublish.ts"],"sourcesContent":["import type { Item } from '@seedprotocol/sdk'\nimport type { Account } from 'thirdweb/wallets'\nimport {\n getConnectedManagedAccountAddress,\n getConnectedModularAccount,\n resolveSmartWalletForPublish,\n} from './thirdweb'\nimport { fromThirdwebAccount } from './adapters/thirdwebAccount'\nimport { isPublishWallet, isSeedSigner, type PublishWallet, type SeedSigner } from './seedSigner'\nimport { ethers } from 'ethers'\nimport { startPublish } from './ensureWalletThenPublish'\nimport type { CreatePublishOptions } from '../config'\nimport { getPublishConfig } from '../config'\nimport { ManagedAccountPublishError } from '../errors'\nimport { getPublishThirdwebChain } from './thirdwebChain'\nimport { getPublishChainName } from './chainConfig'\n\nexport type EnsureSmartWalletResult =\n | Extract<import('./ensureWalletThenPublish').EnsureWalletThenPublishResult, { outcome: 'started' | 'already_publishing' }>\n | { outcome: 'no_address' }\n | { outcome: 'needs_deploy' }\n | { outcome: 'managed_not_ready'; error: ManagedAccountPublishError }\n\nconst MSG_NO_ACCOUNT_MODULAR =\n 'A connected wallet is required for publishing with the modular executor. Connect your wallet and try again.'\n\nconst MSG_MANAGED_UNAVAILABLE = () =>\n `Could not connect the managed publishing account on ${getPublishChainName()}. Reconnect with the same sign-in method and try again.`\n\nfunction coerceDataItemSigner(\n signer: CreatePublishOptions['dataItemSigner'] | Account | SeedSigner | PublishWallet | undefined,\n): CreatePublishOptions['dataItemSigner'] {\n if (!signer) return undefined\n if (signer instanceof ethers.Wallet) return signer\n if (isPublishWallet(signer)) return signer.signer\n if (isSeedSigner(signer)) return signer\n return fromThirdwebAccount(signer as Account).signer\n}\n\n/**\n * Thirdweb path: resolves the smart wallet for the current account; if deployed, starts publish.\n * Prefer {@link ensureWalletThenPublish} for vendor-neutral entry.\n */\nexport async function ensureSmartWalletThenPublish(\n item: Item<any>,\n activeAccount: Account | null | undefined,\n getAddress: () => Promise<string | null>,\n options?: CreatePublishOptions,\n): Promise<EnsureSmartWalletResult> {\n const config = getPublishConfig()\n const address = await getAddress()\n if (!address || !address.trim()) {\n return { outcome: 'no_address' }\n }\n\n if (config.useModularExecutor) {\n const modularAccount = await getConnectedModularAccount()\n if (!modularAccount) {\n return {\n outcome: 'managed_not_ready',\n error: new ManagedAccountPublishError(MSG_NO_ACCOUNT_MODULAR, 'MANAGED_ACCOUNT_UNAVAILABLE'),\n }\n }\n\n let managedAddress: string\n try {\n managedAddress = await getConnectedManagedAccountAddress(getPublishThirdwebChain())\n } catch (cause) {\n return {\n outcome: 'managed_not_ready',\n error: new ManagedAccountPublishError(\n MSG_MANAGED_UNAVAILABLE(),\n 'MANAGED_ACCOUNT_UNAVAILABLE',\n undefined,\n cause,\n ),\n }\n }\n\n const wallet = fromThirdwebAccount(modularAccount, { kind: 'smart' })\n return startPublish(item, managedAddress, wallet, {\n ...options,\n dataItemSigner: coerceDataItemSigner(options?.dataItemSigner) ?? wallet.signer,\n })\n }\n\n const resolved = await resolveSmartWalletForPublish(activeAccount ?? null)\n if ('address' in resolved) {\n const wallet = fromThirdwebAccount(resolved.account, { kind: 'smart' })\n return startPublish(item, resolved.address, wallet, {\n ...options,\n dataItemSigner: coerceDataItemSigner(options?.dataItemSigner) ?? wallet.signer,\n })\n }\n return { outcome: 'needs_deploy' }\n}\n"],"mappings":";;;;sEAuBMc,IACJ,+GAEIC,UACJ,uDAAuDL,EAAoB,EAAE;AAE/E,SAASM,EACP,GACwC;CACxC,IAAKC,GAIL,OAHIA,aAAkBC,EAAO,SAAeD,IACxCN,EAAgBM,CAAM,IAAUA,EAAO,SACvCf,EAAae,CAAM,IAAUA,IAC1BT,EAAoBS,CAAiB,CAAC,CAAC;AAChD;AAMA,eAAsBJ,EACpB,GACA,GACA,GACA,GACkC;CAClC,IAAMM,IAASb,EAAiB,GAC1Bc,IAAU,MAAMC,EAAW;CACjC,IAAI,CAACD,KAAW,CAACA,EAAQ,KAAK,GAC5B,OAAO,EAAE,SAAS,aAAa;CAGjC,IAAID,EAAO,oBAAoB;EAC7B,IAAMG,IAAiB,MAAMrB,EAA2B;EACxD,IAAI,CAACqB,GACH,OAAO;GACL,SAAS;GACT,OAAO,IAAIb,EAA2BK,GAAwB,6BAA6B;EAC7F;EAGF,IAAIS;EACJ,IAAI;GACF,IAAiB,MAAMpB,EAAkCE,EAAwB,CAAC;EACpF,SAASmB,GAAO;GACd,OAAO;IACL,SAAS;IACT,OAAO,IAAIf,EACTM,EAAwB,GACxB,+BACA,KAAA,GACAS,CACF;GACF;EACF;EAEA,IAAMC,IAASjB,EAAoBc,GAAgB,EAAE,MAAM,QAAQ,CAAC;EACpE,OAAOf,EAAamB,GAAMH,GAAgBE,GAAQ;GAChD,GAAGE;GACH,gBAAgBX,EAAqBW,GAAS,cAAc,KAAKF,EAAO;EAC1E,CAAC;CACH;CAEA,IAAMG,IAAW,MAAMxB,EAA6ByB,KAAiB,IAAI;CACzE,IAAI,aAAaD,GAAU;EACzB,IAAMH,IAASjB,EAAoBoB,EAAS,SAAS,EAAE,MAAM,QAAQ,CAAC;EACtE,OAAOrB,EAAamB,GAAME,EAAS,SAASH,GAAQ;GAClD,GAAGE;GACH,gBAAgBX,EAAqBW,GAAS,cAAc,KAAKF,EAAO;EAC1E,CAAC;CACH;CACA,OAAO,EAAE,SAAS,eAAe;AACnC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"publishWalletRegistry-Bf_Nvf_3.js","names":["seedClient","session","waitUntilSeedInitialized","client","resolve","setPublishWallet","next","owned","a","claimAs","err","getPublishWallet","clearPublishWallet"],"sources":["../src/helpers/publishWalletRegistry.ts"],"sourcesContent":["import { client as seedClient } from '@seedprotocol/sdk'\nimport type { PublishWallet, SeedSigner, SeedTxSender } from './seedSigner'\n\nexport type PublishWalletSession = PublishWallet & {\n /** Addresses to treat as owned in the Seed SDK (EOA + smart account, etc.). */\n ownedAddresses?: string[]\n /** Preferred publisher address for new seeds (defaults to signer.address). */\n publisherAddress?: string\n /**\n * Admin (EOA) of the smart account this session publishes from, when there is one. Lets publish\n * tell an undeployed smart account from an EOA, which both have no bytecode.\n */\n adminAddress?: string\n}\n\nlet session: PublishWalletSession | null = null\n\nfunction waitUntilSeedInitialized(): Promise<void> {\n if (seedClient.isInitialized()) return Promise.resolve()\n return new Promise((resolve) => {\n seedClient.onReady(() => resolve())\n })\n}\n\n/**\n * Register the active publish wallet (EIP-1193, ethers, Thirdweb adapter, etc.).\n * Syncs owned addresses into the Seed SDK when possible.\n */\nexport async function setPublishWallet(\n next: PublishWalletSession | null,\n): Promise<void> {\n session = next\n if (!next) return\n await waitUntilSeedInitialized()\n const owned = new Set<string>()\n for (const a of next.ownedAddresses ?? []) {\n if (a) owned.add(a.toLowerCase())\n }\n owned.add(next.signer.address.toLowerCase())\n owned.add(next.txSender.address.toLowerCase())\n if (next.publisherAddress) owned.add(next.publisherAddress.toLowerCase())\n try {\n // Watched addresses aren't the wallet's: keep them (setAddresses replaces both lists).\n const { watched } = await seedClient.getAddresses()\n await seedClient.setAddresses({ owned: [...owned], watched })\n const claimAs = next.publisherAddress ?? next.signer.address\n if (claimAs) {\n await seedClient.claimUnpublishedDrafts(claimAs)\n }\n } catch (err) {\n console.warn('[publishWalletRegistry] Failed to set seed client addresses:', err)\n }\n}\n\nexport function getPublishWallet(): PublishWalletSession | null {\n return session\n}\n\n/**\n * Forget the publish wallet and stop treating its addresses as owned in the Seed SDK (watched\n * addresses are kept). New drafts are then signed-out drafts, editable until a wallet connects\n * and claims them; drafts stamped with the old wallet are read-only until it reconnects.\n */\nexport async function clearPublishWallet(): Promise<void> {\n session = null\n if (!seedClient.isInitialized()) return\n try {\n const { watched } = await seedClient.getAddresses()\n // A wallet connected while we read: its addresses win.\n if (session) return\n await seedClient.setAddresses({ owned: [], watched })\n } catch (err) {\n console.warn('[publishWalletRegistry] Failed to clear seed client owned addresses:', err)\n }\n}\n\n/** Convenience for callers that only need signing. */\nexport function getRegisteredSigner(): SeedSigner | null {\n return session?.signer ?? null\n}\n\n/** Convenience for callers that only need sending. */\nexport function getRegisteredTxSender(): SeedTxSender | null {\n return session?.txSender ?? null\n}\n"],"mappings":";;AAeA,IAAIC,IAAuC;AAE3C,SAASC,IAA0C;CAEjD,OADIF,EAAW,cAAc,IAAU,QAAQ,QAAQ,IAChD,IAAI,SAAS,MAAY;EAC9B,EAAW,cAAcI,EAAQ,CAAC;CACpC,CAAC;AACH;AAMA,eAAsBC,EACpB,GACe;CAEf,IADA,IAAUC,GACN,CAACA,GAAM;CACX,MAAMJ,EAAyB;CAC/B,IAAMK,oBAAQ,IAAI,IAAY;CAC9B,KAAK,IAAMC,KAAKF,EAAK,kBAAkB,CAAC,GACtC,AAAIE,KAAGD,EAAM,IAAIC,EAAE,YAAY,CAAC;CAIlC,AAFAD,EAAM,IAAID,EAAK,OAAO,QAAQ,YAAY,CAAC,GAC3CC,EAAM,IAAID,EAAK,SAAS,QAAQ,YAAY,CAAC,GACzCA,EAAK,oBAAkBC,EAAM,IAAID,EAAK,iBAAiB,YAAY,CAAC;CACxE,IAAI;EAEF,IAAM,EAAE,eAAY,MAAMN,EAAW,aAAa;EAClD,MAAMA,EAAW,aAAa;GAAE,OAAO,CAAC,GAAGO,CAAK;GAAG;EAAQ,CAAC;EAC5D,IAAME,IAAUH,EAAK,oBAAoBA,EAAK,OAAO;EACrD,AAAIG,KACF,MAAMT,EAAW,uBAAuBS,CAAO;CAEnD,SAASC,GAAK;EACZ,QAAQ,KAAK,gEAAgEA,CAAG;CAClF;AACF;AAEA,SAAgBC,IAAgD;CAC9D,OAAOV;AACT;AAOA,eAAsBW,IAAoC;CAExD,IADA,IAAU,MACLZ,EAAW,cAAc,GAC9B,IAAI;EACF,IAAM,EAAE,eAAY,MAAMA,EAAW,aAAa;EAElD,IAAIC,GAAS;EACb,MAAMD,EAAW,aAAa;GAAE,OAAO,CAAC;GAAG;EAAQ,CAAC;CACtD,SAASU,GAAK;EACZ,QAAQ,KAAK,wEAAwEA,CAAG;CAC1F;AACF"}
|
package/dist/worker-DAciYSNY.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { a as e, nn as t } from "./chainConfig-BWzE8DIF.js";
|
|
2
|
-
import { BaseDb as n, applyArweaveL1TransactionIdLocal as r, arweaveL1FinalizeJobs as i, getArweaveUploadStatus as a, isArweaveL1AnchoringComplete as o, queryArweaveGatewayTransactionWithFallback as s } from "@seedprotocol/sdk";
|
|
3
|
-
import c from "debug";
|
|
4
|
-
import { eq as l } from "drizzle-orm";
|
|
5
|
-
//#region src/services/arweaveL1Finalize/worker.ts
|
|
6
|
-
var u = c("seedProtocol:arweaveL1Finalize:worker"), d = 45e3, f = null;
|
|
7
|
-
function p() {
|
|
8
|
-
f ?? (f = setInterval(() => {
|
|
9
|
-
h();
|
|
10
|
-
}, d), h());
|
|
11
|
-
}
|
|
12
|
-
function m() {
|
|
13
|
-
f != null && (clearInterval(f), f = null);
|
|
14
|
-
}
|
|
15
|
-
async function h() {
|
|
16
|
-
let c;
|
|
17
|
-
try {
|
|
18
|
-
c = e();
|
|
19
|
-
} catch {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
if (!c.useArweaveBundler || !n.isAppDbReady()) return;
|
|
23
|
-
let d = n.getAppDb();
|
|
24
|
-
if (!d) return;
|
|
25
|
-
let f = await d.select().from(i).where(l(i.phase, "pending_l1")).limit(25);
|
|
26
|
-
if (f.length === 0) return;
|
|
27
|
-
let p = c.arweaveUploadVerificationBaseUrl, m = c.arweaveGraphqlUrl, h = t(c).storage.uploadTo === "turbo";
|
|
28
|
-
for (let e of f) {
|
|
29
|
-
let t = e.dataItemId;
|
|
30
|
-
try {
|
|
31
|
-
let n = e.l1TransactionId;
|
|
32
|
-
if (h) {
|
|
33
|
-
let a = await s(m, t), o = a?.bundledInId ?? n ?? null;
|
|
34
|
-
o && a?.blockHeight != null && (await r({
|
|
35
|
-
seedLocalId: e.seedLocalId,
|
|
36
|
-
versionLocalId: e.versionLocalId,
|
|
37
|
-
dataItemId: t,
|
|
38
|
-
l1TransactionId: o
|
|
39
|
-
}), await d.update(i).set({
|
|
40
|
-
phase: "confirmed",
|
|
41
|
-
statusJson: JSON.stringify(a),
|
|
42
|
-
l1TransactionId: o,
|
|
43
|
-
bundleId: o,
|
|
44
|
-
updatedAt: Date.now()
|
|
45
|
-
}).where(l(i.id, e.id)));
|
|
46
|
-
continue;
|
|
47
|
-
}
|
|
48
|
-
if (!n) {
|
|
49
|
-
let r = (await s(m, t))?.bundledInId ?? null;
|
|
50
|
-
r && (n = r, await d.update(i).set({
|
|
51
|
-
l1TransactionId: r,
|
|
52
|
-
bundleId: r,
|
|
53
|
-
updatedAt: Date.now()
|
|
54
|
-
}).where(l(i.id, e.id)));
|
|
55
|
-
}
|
|
56
|
-
let c = await a(p, t), u = c ? JSON.stringify(c) : null;
|
|
57
|
-
if (c && o(c)) {
|
|
58
|
-
let a = n ?? c.bundleId ?? c.turbo?.bundleId ?? e.l1TransactionId ?? null;
|
|
59
|
-
a && await r({
|
|
60
|
-
seedLocalId: e.seedLocalId,
|
|
61
|
-
versionLocalId: e.versionLocalId,
|
|
62
|
-
dataItemId: t,
|
|
63
|
-
l1TransactionId: a
|
|
64
|
-
}), await d.update(i).set({
|
|
65
|
-
phase: "confirmed",
|
|
66
|
-
statusJson: u,
|
|
67
|
-
l1TransactionId: a ?? e.l1TransactionId,
|
|
68
|
-
bundleId: c.bundleId ?? e.bundleId,
|
|
69
|
-
updatedAt: Date.now()
|
|
70
|
-
}).where(l(i.id, e.id));
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
await d.update(i).set({
|
|
74
|
-
statusJson: u,
|
|
75
|
-
updatedAt: Date.now()
|
|
76
|
-
}).where(l(i.id, e.id));
|
|
77
|
-
} catch (t) {
|
|
78
|
-
u("tick error for job", e.id, t), await d.update(i).set({
|
|
79
|
-
errorMessage: t instanceof Error ? t.message : String(t),
|
|
80
|
-
updatedAt: Date.now()
|
|
81
|
-
}).where(l(i.id, e.id));
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
//#endregion
|
|
86
|
-
export { p as startArweaveL1FinalizeWorker, m as stopArweaveL1FinalizeWorker };
|
|
87
|
-
|
|
88
|
-
//# sourceMappingURL=worker-DAciYSNY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-DAciYSNY.js","names":["getPublishConfig","resolvePublishPayment","debug","logger","TICK_MS","intervalId","startArweaveL1FinalizeWorker","runArweaveL1FinalizeTick","stopArweaveL1FinalizeWorker","config","BaseDb","db","pending","arweaveL1FinalizeJobs","eq","uploadBase","graphqlUrl","uploadedToTurbo","job","dataItemId","l1TxId","gql","queryArweaveGatewayTransactionWithFallback","bundled","applyArweaveL1TransactionIdLocal","status","getArweaveUploadStatus","statusStr","isArweaveL1AnchoringComplete","resolvedL1","err"],"sources":["../src/services/arweaveL1Finalize/worker.ts"],"sourcesContent":["import {\n applyArweaveL1TransactionIdLocal,\n arweaveL1FinalizeJobs,\n BaseDb,\n getArweaveUploadStatus,\n isArweaveL1AnchoringComplete,\n queryArweaveGatewayTransactionWithFallback,\n} from '@seedprotocol/sdk'\nimport { eq } from 'drizzle-orm'\nimport { getPublishConfig } from '~/config'\nimport { resolvePublishPayment } from '~/payment'\nimport debug from 'debug'\n\nconst logger = debug('seedProtocol:arweaveL1Finalize:worker')\n\nconst TICK_MS = 45_000\n\nlet intervalId: ReturnType<typeof setInterval> | null = null\n\nexport function startArweaveL1FinalizeWorker(): void {\n if (intervalId != null) return\n intervalId = setInterval(() => {\n void runArweaveL1FinalizeTick()\n }, TICK_MS)\n void runArweaveL1FinalizeTick()\n}\n\nexport function stopArweaveL1FinalizeWorker(): void {\n if (intervalId != null) {\n clearInterval(intervalId)\n intervalId = null\n }\n}\n\nasync function runArweaveL1FinalizeTick(): Promise<void> {\n let config: ReturnType<typeof getPublishConfig>\n try {\n config = getPublishConfig()\n } catch {\n return\n }\n if (!config.useArweaveBundler) return\n\n // initPublish may start this worker before Seed platformClassesInit configures BaseDb.\n if (!BaseDb.isAppDbReady()) return\n const db = BaseDb.getAppDb()\n if (!db) return\n\n const pending = await db\n .select()\n .from(arweaveL1FinalizeJobs)\n .where(eq(arweaveL1FinalizeJobs.phase, 'pending_l1'))\n .limit(25)\n\n if (pending.length === 0) return\n\n const uploadBase = config.arweaveUploadVerificationBaseUrl\n const graphqlUrl = config.arweaveGraphqlUrl\n // User-paid uploads went to Turbo; the upload API doesn't know them, so finish from GraphQL.\n const uploadedToTurbo = resolvePublishPayment(config).storage.uploadTo === 'turbo'\n\n for (const job of pending) {\n const dataItemId = job.dataItemId\n try {\n let l1TxId = job.l1TransactionId\n\n if (uploadedToTurbo) {\n const gql = await queryArweaveGatewayTransactionWithFallback(graphqlUrl, dataItemId)\n const bundled = gql?.bundledInId ?? l1TxId ?? null\n if (bundled && gql?.blockHeight != null) {\n await applyArweaveL1TransactionIdLocal({\n seedLocalId: job.seedLocalId,\n versionLocalId: job.versionLocalId,\n dataItemId,\n l1TransactionId: bundled,\n })\n await db\n .update(arweaveL1FinalizeJobs)\n .set({\n phase: 'confirmed',\n statusJson: JSON.stringify(gql),\n l1TransactionId: bundled,\n bundleId: bundled,\n updatedAt: Date.now(),\n })\n .where(eq(arweaveL1FinalizeJobs.id, job.id!))\n }\n continue\n }\n\n if (!l1TxId) {\n const gql = await queryArweaveGatewayTransactionWithFallback(graphqlUrl, dataItemId)\n const bundled = gql?.bundledInId ?? null\n if (bundled) {\n l1TxId = bundled\n await db\n .update(arweaveL1FinalizeJobs)\n .set({\n l1TransactionId: bundled,\n bundleId: bundled,\n updatedAt: Date.now(),\n })\n .where(eq(arweaveL1FinalizeJobs.id, job.id!))\n }\n }\n\n const status = await getArweaveUploadStatus(uploadBase, dataItemId)\n const statusStr = status ? JSON.stringify(status) : null\n\n if (status && isArweaveL1AnchoringComplete(status)) {\n const resolvedL1 =\n l1TxId ??\n status.bundleId ??\n status.turbo?.bundleId ??\n job.l1TransactionId ??\n null\n\n if (resolvedL1) {\n await applyArweaveL1TransactionIdLocal({\n seedLocalId: job.seedLocalId,\n versionLocalId: job.versionLocalId,\n dataItemId,\n l1TransactionId: resolvedL1,\n })\n }\n\n await db\n .update(arweaveL1FinalizeJobs)\n .set({\n phase: 'confirmed',\n statusJson: statusStr,\n l1TransactionId: resolvedL1 ?? job.l1TransactionId,\n bundleId: status.bundleId ?? job.bundleId,\n updatedAt: Date.now(),\n })\n .where(eq(arweaveL1FinalizeJobs.id, job.id!))\n continue\n }\n\n await db\n .update(arweaveL1FinalizeJobs)\n .set({\n statusJson: statusStr,\n updatedAt: Date.now(),\n })\n .where(eq(arweaveL1FinalizeJobs.id, job.id!))\n } catch (err) {\n logger('tick error for job', job.id, err)\n await db\n .update(arweaveL1FinalizeJobs)\n .set({\n errorMessage: err instanceof Error ? err.message : String(err),\n updatedAt: Date.now(),\n })\n .where(eq(arweaveL1FinalizeJobs.id, job.id!))\n }\n }\n}\n"],"mappings":"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"}
|