@seedprotocol/publish 0.4.18 → 0.4.20
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 +6 -0
- package/dist/config.d.ts +24 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/helpers/arweave.d.ts +3 -2
- package/dist/helpers/arweave.d.ts.map +1 -1
- package/dist/helpers/arweave.test.d.ts +2 -0
- package/dist/helpers/arweave.test.d.ts.map +1 -0
- package/dist/helpers/ensureManagedAccountReady.test.d.ts +2 -0
- package/dist/helpers/ensureManagedAccountReady.test.d.ts.map +1 -0
- package/dist/hooks/useArweaveL1Finalize.d.ts +23 -0
- package/dist/hooks/useArweaveL1Finalize.d.ts.map +1 -0
- package/dist/hooks/useItemPublishStatus.d.ts +8 -0
- package/dist/hooks/useItemPublishStatus.d.ts.map +1 -1
- package/dist/index-BfABV7U1.js +4840 -0
- package/dist/index-BfABV7U1.js.map +1 -0
- package/dist/index-DhVUuOO3.js +4824 -0
- package/dist/index-DhVUuOO3.js.map +1 -0
- package/dist/index-P7oBN4Yu.js +4785 -0
- package/dist/index-P7oBN4Yu.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +110 -4734
- package/dist/index.js.map +1 -1
- package/dist/services/PublishManager/actions/createPublish.d.ts.map +1 -1
- package/dist/services/arweaveL1Finalize/enqueue.d.ts +7 -0
- package/dist/services/arweaveL1Finalize/enqueue.d.ts.map +1 -0
- package/dist/services/arweaveL1Finalize/worker.d.ts +3 -0
- package/dist/services/arweaveL1Finalize/worker.d.ts.map +1 -0
- package/dist/services/publish/actors/createArweaveDataItems.d.ts.map +1 -1
- package/dist/services/publish/actors/createArweaveTransactions.d.ts.map +1 -1
- package/dist/services/publish/actors/createAttestations.d.ts.map +1 -1
- package/dist/services/publish/actors/createAttestationsDirectToEas.d.ts.map +1 -1
- package/dist/services/publish/helpers/getPublishUploadData.d.ts +8 -2
- package/dist/services/publish/helpers/getPublishUploadData.d.ts.map +1 -1
- package/dist/services/upload/uploadMachine.d.ts +1 -1
- package/dist/types.d.ts +10 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/worker-BxY09Tmw.js +73 -0
- package/dist/worker-BxY09Tmw.js.map +1 -0
- package/dist/worker-Ce8qDQKc.js +73 -0
- package/dist/worker-Ce8qDQKc.js.map +1 -0
- package/dist/worker-F-UKvyIU.js +73 -0
- package/dist/worker-F-UKvyIU.js.map +1 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPublish.d.ts","sourceRoot":"","sources":["../../../../src/services/publishManager/actions/createPublish.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createPublish.d.ts","sourceRoot":"","sources":["../../../../src/services/publishManager/actions/createPublish.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,aAAa,qTA+ExB,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { PublishMachineContext } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Inserts one row per bundler DataItem id so the L1 finalize worker can resolve the L1 tx
|
|
4
|
+
* and wait for anchoring. Idempotent on `data_item_id`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function enqueueArweaveL1FinalizeJobsFromPublishContext(context: PublishMachineContext): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=enqueue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enqueue.d.ts","sourceRoot":"","sources":["../../../src/services/arweaveL1Finalize/enqueue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA0B,qBAAqB,EAAiB,MAAM,aAAa,CAAA;AAK/F;;;GAGG;AACH,wBAAsB,8CAA8C,CAClE,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAqCf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/services/arweaveL1Finalize/worker.ts"],"names":[],"mappings":"AAkBA,wBAAgB,4BAA4B,IAAI,IAAI,CAMnD;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAKlD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createArweaveDataItems.d.ts","sourceRoot":"","sources":["../../../../src/services/publish/actors/createArweaveDataItems.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createArweaveDataItems.d.ts","sourceRoot":"","sources":["../../../../src/services/publish/actors/createArweaveDataItems.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnD,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAc9F,MAAM,MAAM,4BAA4B,GAAG;IACzC,mBAAmB,EAAE,sBAAsB,EAAE,CAAA;IAC7C,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAA;IACvC,wEAAwE;IACxE,eAAe,CAAC,EAAE,OAAO,EAAE,CAAA;CAC5B,CAAA;AAID;;;GAGG;AACH,eAAO,MAAM,sBAAsB;aANK,qBAAqB;WAAS,OAAO;gCAwF5E,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createArweaveTransactions.d.ts","sourceRoot":"","sources":["../../../../src/services/publish/actors/createArweaveTransactions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createArweaveTransactions.d.ts","sourceRoot":"","sources":["../../../../src/services/publish/actors/createArweaveTransactions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAMnD,MAAM,MAAM,+BAA+B,GAAG;IAC5C,mBAAmB,EAAE,sBAAsB,EAAE,CAAA;IAC7C,cAAc,EAAE,aAAa,EAAE,CAAA;CAChC,CAAA;AAID,eAAO,MAAM,yBAAyB;aAFE,qBAAqB;WAAS,OAAO;gCA2E5E,CAAA"}
|
|
@@ -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;AA+B3D,eAAO,MAAM,kBAAkB;gBAC8C,OAAO;;aAH5C,qBAAqB;WAAS,OAAO;gCA2P5E,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAttestationsDirectToEas.d.ts","sourceRoot":"","sources":["../../../../src/services/publish/actors/createAttestationsDirectToEas.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"createAttestationsDirectToEas.d.ts","sourceRoot":"","sources":["../../../../src/services/publish/actors/createAttestationsDirectToEas.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAwG3D,eAAO,MAAM,6BAA6B;gBACmC,OAAO;;aAxB5C,qBAAqB;WAAS,OAAO;gCAwQ5E,CAAA"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import type { IItem, IItemProperty } from '@seedprotocol/sdk';
|
|
1
|
+
import type { IItem, IItemProperty, TransactionTag } from '@seedprotocol/sdk';
|
|
2
|
+
/** Optional extra tags appended after Content-SHA-256 / Content-Type (mirrors SDK getPublishUploads). */
|
|
3
|
+
export type GetPublishUploadDataOptions = {
|
|
4
|
+
arweaveUploadTags?: TransactionTag[];
|
|
5
|
+
};
|
|
2
6
|
export type PublishUploadData = {
|
|
3
7
|
data: Uint8Array;
|
|
4
8
|
contentHash?: string;
|
|
5
9
|
contentType?: string;
|
|
10
|
+
/** Full tag list for DataItem / bundler: content tags then configured arweaveUploadTags. */
|
|
11
|
+
tags: TransactionTag[];
|
|
6
12
|
itemPropertyName: string;
|
|
7
13
|
itemPropertyLocalId: string;
|
|
8
14
|
seedLocalId: string;
|
|
9
15
|
versionLocalId: string;
|
|
10
16
|
};
|
|
11
|
-
export declare const getPublishUploadData: (item: IItem<any>, uploads?: PublishUploadData[], relatedItemProperty?: IItemProperty<any
|
|
17
|
+
export declare const getPublishUploadData: (item: IItem<any>, uploads?: PublishUploadData[], relatedItemProperty?: IItemProperty<any>, options?: GetPublishUploadDataOptions) => Promise<PublishUploadData[]>;
|
|
12
18
|
//# sourceMappingURL=getPublishUploadData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPublishUploadData.d.ts","sourceRoot":"","sources":["../../../../src/services/publish/helpers/getPublishUploadData.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"getPublishUploadData.d.ts","sourceRoot":"","sources":["../../../../src/services/publish/helpers/getPublishUploadData.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE7E,yGAAyG;AACzG,MAAM,MAAM,2BAA2B,GAAG;IACxC,iBAAiB,CAAC,EAAE,cAAc,EAAE,CAAA;CACrC,CAAA;AA8DD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,UAAU,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4FAA4F;IAC5F,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,gBAAgB,EAAE,MAAM,CAAA;IACxB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAmJD,eAAO,MAAM,oBAAoB,GAC/B,MAAM,KAAK,CAAC,GAAG,CAAC,EAChB,UAAS,iBAAiB,EAAO,EACjC,sBAAsB,aAAa,CAAC,GAAG,CAAC,EACxC,UAAU,2BAA2B,KACpC,OAAO,CAAC,iBAAiB,EAAE,CAiC7B,CAAA"}
|
|
@@ -34,7 +34,7 @@ export declare const uploadMachine: import("xstate").StateMachine<UploadMachineC
|
|
|
34
34
|
}, {
|
|
35
35
|
type: "handleError";
|
|
36
36
|
params: unknown;
|
|
37
|
-
}, never, never, "success" | "failure" | "
|
|
37
|
+
}, never, never, "success" | "failure" | "reset" | "sendReimbursementRequest" | "pollForConfirmation" | "uploadData", string, import("xstate").NonReducibleUnknown, import("xstate").NonReducibleUnknown, import("xstate").EventObject, import("xstate").MetaObject, {
|
|
38
38
|
id: "upload";
|
|
39
39
|
states: {
|
|
40
40
|
readonly sendReimbursementRequest: {};
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IItem } from '@seedprotocol/sdk';
|
|
1
|
+
import type { IItem, TransactionTag } from '@seedprotocol/sdk';
|
|
2
2
|
/** Aligns with `@seedprotocol/sdk` `PublishMode`. */
|
|
3
3
|
export type PublishMode = 'patch' | 'new_version';
|
|
4
4
|
import type { Account } from 'thirdweb/wallets';
|
|
@@ -63,7 +63,10 @@ export interface PublishMachineContext {
|
|
|
63
63
|
id: string;
|
|
64
64
|
raw: Uint8Array;
|
|
65
65
|
}[];
|
|
66
|
-
/**
|
|
66
|
+
/**
|
|
67
|
+
* Per-publish: sign DataItems when useArweaveBundler (from createPublish options).
|
|
68
|
+
* Each upload has `tags` (content + arweaveUploadTags); use when building DataItems.
|
|
69
|
+
*/
|
|
67
70
|
signDataItems?: (uploads: import('./services/publish/helpers/getPublishUploadData').PublishUploadData[]) => Promise<import('./config').ArweaveDataItemInfoResult[]>;
|
|
68
71
|
/** Per-publish: signer for DataItems when useArweaveBundler (from createPublish options). */
|
|
69
72
|
dataItemSigner?: ethers.Wallet | Account;
|
|
@@ -77,6 +80,11 @@ export interface PublishMachineContext {
|
|
|
77
80
|
d?: string;
|
|
78
81
|
[key: string]: unknown;
|
|
79
82
|
};
|
|
83
|
+
/**
|
|
84
|
+
* Resolved Arweave tags for this run: initPublish defaults then createPublish extras.
|
|
85
|
+
* Appended after Content-SHA-256 / Content-Type on each upload.
|
|
86
|
+
*/
|
|
87
|
+
arweaveUploadTags?: TransactionTag[];
|
|
80
88
|
/** `patch` (default): attest only pending properties on current Version. `new_version`: new Version + full snapshot. */
|
|
81
89
|
publishMode?: PublishMode;
|
|
82
90
|
/**
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { BaseDb as g, arweaveL1FinalizeJobs as t, queryArweaveGatewayTransaction as v, getArweaveUploadStatus as b, isArweaveL1AnchoringComplete as m, applyArweaveL1TransactionIdLocal as h } from "@seedprotocol/sdk";
|
|
2
|
+
import { eq as o } from "drizzle-orm";
|
|
3
|
+
import { g as A } from "./index-P7oBN4Yu.js";
|
|
4
|
+
import L from "debug";
|
|
5
|
+
const T = L("seedProtocol:arweaveL1Finalize:worker"), y = 45e3;
|
|
6
|
+
let i = null;
|
|
7
|
+
function F() {
|
|
8
|
+
i == null && (i = setInterval(() => {
|
|
9
|
+
p();
|
|
10
|
+
}, y), p());
|
|
11
|
+
}
|
|
12
|
+
function S() {
|
|
13
|
+
i != null && (clearInterval(i), i = null);
|
|
14
|
+
}
|
|
15
|
+
async function p() {
|
|
16
|
+
let d;
|
|
17
|
+
try {
|
|
18
|
+
d = A();
|
|
19
|
+
} catch {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (!d.useArweaveBundler) return;
|
|
23
|
+
const r = g.getAppDb();
|
|
24
|
+
if (!r) return;
|
|
25
|
+
const u = await r.select().from(t).where(o(t.phase, "pending_l1")).limit(25);
|
|
26
|
+
if (u.length === 0) return;
|
|
27
|
+
const I = d.arweaveUploadVerificationBaseUrl, f = d.arweaveGraphqlUrl;
|
|
28
|
+
for (const e of u) {
|
|
29
|
+
const c = e.dataItemId;
|
|
30
|
+
try {
|
|
31
|
+
let a = e.l1TransactionId;
|
|
32
|
+
if (!a) {
|
|
33
|
+
const s = (await v(f, c))?.bundledInId ?? null;
|
|
34
|
+
s && (a = s, await r.update(t).set({
|
|
35
|
+
l1TransactionId: s,
|
|
36
|
+
bundleId: s,
|
|
37
|
+
updatedAt: Date.now()
|
|
38
|
+
}).where(o(t.id, e.id)));
|
|
39
|
+
}
|
|
40
|
+
const n = await b(I, c), w = n ? JSON.stringify(n) : null;
|
|
41
|
+
if (n && m(n)) {
|
|
42
|
+
const l = a ?? n.bundleId ?? n.turbo?.bundleId ?? e.l1TransactionId ?? null;
|
|
43
|
+
l && await h({
|
|
44
|
+
seedLocalId: e.seedLocalId,
|
|
45
|
+
versionLocalId: e.versionLocalId,
|
|
46
|
+
dataItemId: c,
|
|
47
|
+
l1TransactionId: l
|
|
48
|
+
}), await r.update(t).set({
|
|
49
|
+
phase: "confirmed",
|
|
50
|
+
statusJson: w,
|
|
51
|
+
l1TransactionId: l ?? e.l1TransactionId,
|
|
52
|
+
bundleId: n.bundleId ?? e.bundleId,
|
|
53
|
+
updatedAt: Date.now()
|
|
54
|
+
}).where(o(t.id, e.id));
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
await r.update(t).set({
|
|
58
|
+
statusJson: w,
|
|
59
|
+
updatedAt: Date.now()
|
|
60
|
+
}).where(o(t.id, e.id));
|
|
61
|
+
} catch (a) {
|
|
62
|
+
T("tick error for job", e.id, a), await r.update(t).set({
|
|
63
|
+
errorMessage: a instanceof Error ? a.message : String(a),
|
|
64
|
+
updatedAt: Date.now()
|
|
65
|
+
}).where(o(t.id, e.id));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export {
|
|
70
|
+
F as startArweaveL1FinalizeWorker,
|
|
71
|
+
S as stopArweaveL1FinalizeWorker
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=worker-BxY09Tmw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-BxY09Tmw.js","sources":["../src/services/arweaveL1Finalize/worker.ts"],"sourcesContent":["import {\n applyArweaveL1TransactionIdLocal,\n arweaveL1FinalizeJobs,\n BaseDb,\n getArweaveUploadStatus,\n isArweaveL1AnchoringComplete,\n queryArweaveGatewayTransaction,\n} from '@seedprotocol/sdk'\nimport { eq } from 'drizzle-orm'\nimport { getPublishConfig } from '~/config'\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 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\n for (const job of pending) {\n const dataItemId = job.dataItemId\n try {\n let l1TxId = job.l1TransactionId\n\n if (!l1TxId) {\n const gql = await queryArweaveGatewayTransaction(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"],"names":["logger","debug","TICK_MS","intervalId","startArweaveL1FinalizeWorker","runArweaveL1FinalizeTick","stopArweaveL1FinalizeWorker","config","getPublishConfig","db","BaseDb","pending","arweaveL1FinalizeJobs","eq","uploadBase","graphqlUrl","job","dataItemId","l1TxId","bundled","queryArweaveGatewayTransaction","status","getArweaveUploadStatus","statusStr","isArweaveL1AnchoringComplete","resolvedL1","applyArweaveL1TransactionIdLocal","err"],"mappings":";;;;AAYA,MAAMA,IAASC,EAAM,uCAAuC,GAEtDC,IAAU;AAEhB,IAAIC,IAAoD;AAEjD,SAASC,IAAqC;AACnD,EAAID,KAAc,SAClBA,IAAa,YAAY,MAAM;AAC7B,IAAKE,EAAA;AAAA,EACP,GAAGH,CAAO,GACLG,EAAA;AACP;AAEO,SAASC,IAAoC;AAClD,EAAIH,KAAc,SAChB,cAAcA,CAAU,GACxBA,IAAa;AAEjB;AAEA,eAAeE,IAA0C;AACvD,MAAIE;AACJ,MAAI;AACF,IAAAA,IAASC,EAAA;AAAA,EACX,QAAQ;AACN;AAAA,EACF;AACA,MAAI,CAACD,EAAO,kBAAmB;AAE/B,QAAME,IAAKC,EAAO,SAAA;AAClB,MAAI,CAACD,EAAI;AAET,QAAME,IAAU,MAAMF,EACnB,OAAA,EACA,KAAKG,CAAqB,EAC1B,MAAMC,EAAGD,EAAsB,OAAO,YAAY,CAAC,EACnD,MAAM,EAAE;AAEX,MAAID,EAAQ,WAAW,EAAG;AAE1B,QAAMG,IAAaP,EAAO,kCACpBQ,IAAaR,EAAO;AAE1B,aAAWS,KAAOL,GAAS;AACzB,UAAMM,IAAaD,EAAI;AACvB,QAAI;AACF,UAAIE,IAASF,EAAI;AAEjB,UAAI,CAACE,GAAQ;AAEX,cAAMC,KADM,MAAMC,EAA+BL,GAAYE,CAAU,IAClD,eAAe;AACpC,QAAIE,MACFD,IAASC,GACT,MAAMV,EACH,OAAOG,CAAqB,EAC5B,IAAI;AAAA,UACH,iBAAiBO;AAAA,UACjB,UAAUA;AAAA,UACV,WAAW,KAAK,IAAA;AAAA,QAAI,CACrB,EACA,MAAMN,EAAGD,EAAsB,IAAII,EAAI,EAAG,CAAC;AAAA,MAElD;AAEA,YAAMK,IAAS,MAAMC,EAAuBR,GAAYG,CAAU,GAC5DM,IAAYF,IAAS,KAAK,UAAUA,CAAM,IAAI;AAEpD,UAAIA,KAAUG,EAA6BH,CAAM,GAAG;AAClD,cAAMI,IACJP,KACAG,EAAO,YACPA,EAAO,OAAO,YACdL,EAAI,mBACJ;AAEF,QAAIS,KACF,MAAMC,EAAiC;AAAA,UACrC,aAAaV,EAAI;AAAA,UACjB,gBAAgBA,EAAI;AAAA,UACpB,YAAAC;AAAA,UACA,iBAAiBQ;AAAA,QAAA,CAClB,GAGH,MAAMhB,EACH,OAAOG,CAAqB,EAC5B,IAAI;AAAA,UACH,OAAO;AAAA,UACP,YAAYW;AAAA,UACZ,iBAAiBE,KAAcT,EAAI;AAAA,UACnC,UAAUK,EAAO,YAAYL,EAAI;AAAA,UACjC,WAAW,KAAK,IAAA;AAAA,QAAI,CACrB,EACA,MAAMH,EAAGD,EAAsB,IAAII,EAAI,EAAG,CAAC;AAC9C;AAAA,MACF;AAEA,YAAMP,EACH,OAAOG,CAAqB,EAC5B,IAAI;AAAA,QACH,YAAYW;AAAA,QACZ,WAAW,KAAK,IAAA;AAAA,MAAI,CACrB,EACA,MAAMV,EAAGD,EAAsB,IAAII,EAAI,EAAG,CAAC;AAAA,IAChD,SAASW,GAAK;AACZ,MAAA3B,EAAO,sBAAsBgB,EAAI,IAAIW,CAAG,GACxC,MAAMlB,EACH,OAAOG,CAAqB,EAC5B,IAAI;AAAA,QACH,cAAce,aAAe,QAAQA,EAAI,UAAU,OAAOA,CAAG;AAAA,QAC7D,WAAW,KAAK,IAAA;AAAA,MAAI,CACrB,EACA,MAAMd,EAAGD,EAAsB,IAAII,EAAI,EAAG,CAAC;AAAA,IAChD;AAAA,EACF;AACF;"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { BaseDb as g, arweaveL1FinalizeJobs as t, queryArweaveGatewayTransaction as v, getArweaveUploadStatus as b, isArweaveL1AnchoringComplete as m, applyArweaveL1TransactionIdLocal as h } from "@seedprotocol/sdk";
|
|
2
|
+
import { eq as o } from "drizzle-orm";
|
|
3
|
+
import { g as A } from "./index-DhVUuOO3.js";
|
|
4
|
+
import L from "debug";
|
|
5
|
+
const T = L("seedProtocol:arweaveL1Finalize:worker"), y = 45e3;
|
|
6
|
+
let i = null;
|
|
7
|
+
function F() {
|
|
8
|
+
i == null && (i = setInterval(() => {
|
|
9
|
+
p();
|
|
10
|
+
}, y), p());
|
|
11
|
+
}
|
|
12
|
+
function S() {
|
|
13
|
+
i != null && (clearInterval(i), i = null);
|
|
14
|
+
}
|
|
15
|
+
async function p() {
|
|
16
|
+
let d;
|
|
17
|
+
try {
|
|
18
|
+
d = A();
|
|
19
|
+
} catch {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (!d.useArweaveBundler) return;
|
|
23
|
+
const r = g.getAppDb();
|
|
24
|
+
if (!r) return;
|
|
25
|
+
const u = await r.select().from(t).where(o(t.phase, "pending_l1")).limit(25);
|
|
26
|
+
if (u.length === 0) return;
|
|
27
|
+
const I = d.arweaveUploadVerificationBaseUrl, f = d.arweaveGraphqlUrl;
|
|
28
|
+
for (const e of u) {
|
|
29
|
+
const c = e.dataItemId;
|
|
30
|
+
try {
|
|
31
|
+
let a = e.l1TransactionId;
|
|
32
|
+
if (!a) {
|
|
33
|
+
const s = (await v(f, c))?.bundledInId ?? null;
|
|
34
|
+
s && (a = s, await r.update(t).set({
|
|
35
|
+
l1TransactionId: s,
|
|
36
|
+
bundleId: s,
|
|
37
|
+
updatedAt: Date.now()
|
|
38
|
+
}).where(o(t.id, e.id)));
|
|
39
|
+
}
|
|
40
|
+
const n = await b(I, c), w = n ? JSON.stringify(n) : null;
|
|
41
|
+
if (n && m(n)) {
|
|
42
|
+
const l = a ?? n.bundleId ?? n.turbo?.bundleId ?? e.l1TransactionId ?? null;
|
|
43
|
+
l && await h({
|
|
44
|
+
seedLocalId: e.seedLocalId,
|
|
45
|
+
versionLocalId: e.versionLocalId,
|
|
46
|
+
dataItemId: c,
|
|
47
|
+
l1TransactionId: l
|
|
48
|
+
}), await r.update(t).set({
|
|
49
|
+
phase: "confirmed",
|
|
50
|
+
statusJson: w,
|
|
51
|
+
l1TransactionId: l ?? e.l1TransactionId,
|
|
52
|
+
bundleId: n.bundleId ?? e.bundleId,
|
|
53
|
+
updatedAt: Date.now()
|
|
54
|
+
}).where(o(t.id, e.id));
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
await r.update(t).set({
|
|
58
|
+
statusJson: w,
|
|
59
|
+
updatedAt: Date.now()
|
|
60
|
+
}).where(o(t.id, e.id));
|
|
61
|
+
} catch (a) {
|
|
62
|
+
T("tick error for job", e.id, a), await r.update(t).set({
|
|
63
|
+
errorMessage: a instanceof Error ? a.message : String(a),
|
|
64
|
+
updatedAt: Date.now()
|
|
65
|
+
}).where(o(t.id, e.id));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export {
|
|
70
|
+
F as startArweaveL1FinalizeWorker,
|
|
71
|
+
S as stopArweaveL1FinalizeWorker
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=worker-Ce8qDQKc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-Ce8qDQKc.js","sources":["../src/services/arweaveL1Finalize/worker.ts"],"sourcesContent":["import {\n applyArweaveL1TransactionIdLocal,\n arweaveL1FinalizeJobs,\n BaseDb,\n getArweaveUploadStatus,\n isArweaveL1AnchoringComplete,\n queryArweaveGatewayTransaction,\n} from '@seedprotocol/sdk'\nimport { eq } from 'drizzle-orm'\nimport { getPublishConfig } from '~/config'\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 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\n for (const job of pending) {\n const dataItemId = job.dataItemId\n try {\n let l1TxId = job.l1TransactionId\n\n if (!l1TxId) {\n const gql = await queryArweaveGatewayTransaction(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"],"names":["logger","debug","TICK_MS","intervalId","startArweaveL1FinalizeWorker","runArweaveL1FinalizeTick","stopArweaveL1FinalizeWorker","config","getPublishConfig","db","BaseDb","pending","arweaveL1FinalizeJobs","eq","uploadBase","graphqlUrl","job","dataItemId","l1TxId","bundled","queryArweaveGatewayTransaction","status","getArweaveUploadStatus","statusStr","isArweaveL1AnchoringComplete","resolvedL1","applyArweaveL1TransactionIdLocal","err"],"mappings":";;;;AAYA,MAAMA,IAASC,EAAM,uCAAuC,GAEtDC,IAAU;AAEhB,IAAIC,IAAoD;AAEjD,SAASC,IAAqC;AACnD,EAAID,KAAc,SAClBA,IAAa,YAAY,MAAM;AAC7B,IAAKE,EAAA;AAAA,EACP,GAAGH,CAAO,GACLG,EAAA;AACP;AAEO,SAASC,IAAoC;AAClD,EAAIH,KAAc,SAChB,cAAcA,CAAU,GACxBA,IAAa;AAEjB;AAEA,eAAeE,IAA0C;AACvD,MAAIE;AACJ,MAAI;AACF,IAAAA,IAASC,EAAA;AAAA,EACX,QAAQ;AACN;AAAA,EACF;AACA,MAAI,CAACD,EAAO,kBAAmB;AAE/B,QAAME,IAAKC,EAAO,SAAA;AAClB,MAAI,CAACD,EAAI;AAET,QAAME,IAAU,MAAMF,EACnB,OAAA,EACA,KAAKG,CAAqB,EAC1B,MAAMC,EAAGD,EAAsB,OAAO,YAAY,CAAC,EACnD,MAAM,EAAE;AAEX,MAAID,EAAQ,WAAW,EAAG;AAE1B,QAAMG,IAAaP,EAAO,kCACpBQ,IAAaR,EAAO;AAE1B,aAAWS,KAAOL,GAAS;AACzB,UAAMM,IAAaD,EAAI;AACvB,QAAI;AACF,UAAIE,IAASF,EAAI;AAEjB,UAAI,CAACE,GAAQ;AAEX,cAAMC,KADM,MAAMC,EAA+BL,GAAYE,CAAU,IAClD,eAAe;AACpC,QAAIE,MACFD,IAASC,GACT,MAAMV,EACH,OAAOG,CAAqB,EAC5B,IAAI;AAAA,UACH,iBAAiBO;AAAA,UACjB,UAAUA;AAAA,UACV,WAAW,KAAK,IAAA;AAAA,QAAI,CACrB,EACA,MAAMN,EAAGD,EAAsB,IAAII,EAAI,EAAG,CAAC;AAAA,MAElD;AAEA,YAAMK,IAAS,MAAMC,EAAuBR,GAAYG,CAAU,GAC5DM,IAAYF,IAAS,KAAK,UAAUA,CAAM,IAAI;AAEpD,UAAIA,KAAUG,EAA6BH,CAAM,GAAG;AAClD,cAAMI,IACJP,KACAG,EAAO,YACPA,EAAO,OAAO,YACdL,EAAI,mBACJ;AAEF,QAAIS,KACF,MAAMC,EAAiC;AAAA,UACrC,aAAaV,EAAI;AAAA,UACjB,gBAAgBA,EAAI;AAAA,UACpB,YAAAC;AAAA,UACA,iBAAiBQ;AAAA,QAAA,CAClB,GAGH,MAAMhB,EACH,OAAOG,CAAqB,EAC5B,IAAI;AAAA,UACH,OAAO;AAAA,UACP,YAAYW;AAAA,UACZ,iBAAiBE,KAAcT,EAAI;AAAA,UACnC,UAAUK,EAAO,YAAYL,EAAI;AAAA,UACjC,WAAW,KAAK,IAAA;AAAA,QAAI,CACrB,EACA,MAAMH,EAAGD,EAAsB,IAAII,EAAI,EAAG,CAAC;AAC9C;AAAA,MACF;AAEA,YAAMP,EACH,OAAOG,CAAqB,EAC5B,IAAI;AAAA,QACH,YAAYW;AAAA,QACZ,WAAW,KAAK,IAAA;AAAA,MAAI,CACrB,EACA,MAAMV,EAAGD,EAAsB,IAAII,EAAI,EAAG,CAAC;AAAA,IAChD,SAASW,GAAK;AACZ,MAAA3B,EAAO,sBAAsBgB,EAAI,IAAIW,CAAG,GACxC,MAAMlB,EACH,OAAOG,CAAqB,EAC5B,IAAI;AAAA,QACH,cAAce,aAAe,QAAQA,EAAI,UAAU,OAAOA,CAAG;AAAA,QAC7D,WAAW,KAAK,IAAA;AAAA,MAAI,CACrB,EACA,MAAMd,EAAGD,EAAsB,IAAII,EAAI,EAAG,CAAC;AAAA,IAChD;AAAA,EACF;AACF;"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { BaseDb as g, arweaveL1FinalizeJobs as t, queryArweaveGatewayTransaction as v, getArweaveUploadStatus as b, isArweaveL1AnchoringComplete as m, applyArweaveL1TransactionIdLocal as h } from "@seedprotocol/sdk";
|
|
2
|
+
import { eq as o } from "drizzle-orm";
|
|
3
|
+
import { g as A } from "./index-BfABV7U1.js";
|
|
4
|
+
import L from "debug";
|
|
5
|
+
const T = L("seedProtocol:arweaveL1Finalize:worker"), y = 45e3;
|
|
6
|
+
let i = null;
|
|
7
|
+
function F() {
|
|
8
|
+
i == null && (i = setInterval(() => {
|
|
9
|
+
p();
|
|
10
|
+
}, y), p());
|
|
11
|
+
}
|
|
12
|
+
function S() {
|
|
13
|
+
i != null && (clearInterval(i), i = null);
|
|
14
|
+
}
|
|
15
|
+
async function p() {
|
|
16
|
+
let d;
|
|
17
|
+
try {
|
|
18
|
+
d = A();
|
|
19
|
+
} catch {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (!d.useArweaveBundler) return;
|
|
23
|
+
const r = g.getAppDb();
|
|
24
|
+
if (!r) return;
|
|
25
|
+
const u = await r.select().from(t).where(o(t.phase, "pending_l1")).limit(25);
|
|
26
|
+
if (u.length === 0) return;
|
|
27
|
+
const I = d.arweaveUploadVerificationBaseUrl, f = d.arweaveGraphqlUrl;
|
|
28
|
+
for (const e of u) {
|
|
29
|
+
const c = e.dataItemId;
|
|
30
|
+
try {
|
|
31
|
+
let a = e.l1TransactionId;
|
|
32
|
+
if (!a) {
|
|
33
|
+
const s = (await v(f, c))?.bundledInId ?? null;
|
|
34
|
+
s && (a = s, await r.update(t).set({
|
|
35
|
+
l1TransactionId: s,
|
|
36
|
+
bundleId: s,
|
|
37
|
+
updatedAt: Date.now()
|
|
38
|
+
}).where(o(t.id, e.id)));
|
|
39
|
+
}
|
|
40
|
+
const n = await b(I, c), w = n ? JSON.stringify(n) : null;
|
|
41
|
+
if (n && m(n)) {
|
|
42
|
+
const l = a ?? n.bundleId ?? n.turbo?.bundleId ?? e.l1TransactionId ?? null;
|
|
43
|
+
l && await h({
|
|
44
|
+
seedLocalId: e.seedLocalId,
|
|
45
|
+
versionLocalId: e.versionLocalId,
|
|
46
|
+
dataItemId: c,
|
|
47
|
+
l1TransactionId: l
|
|
48
|
+
}), await r.update(t).set({
|
|
49
|
+
phase: "confirmed",
|
|
50
|
+
statusJson: w,
|
|
51
|
+
l1TransactionId: l ?? e.l1TransactionId,
|
|
52
|
+
bundleId: n.bundleId ?? e.bundleId,
|
|
53
|
+
updatedAt: Date.now()
|
|
54
|
+
}).where(o(t.id, e.id));
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
await r.update(t).set({
|
|
58
|
+
statusJson: w,
|
|
59
|
+
updatedAt: Date.now()
|
|
60
|
+
}).where(o(t.id, e.id));
|
|
61
|
+
} catch (a) {
|
|
62
|
+
T("tick error for job", e.id, a), await r.update(t).set({
|
|
63
|
+
errorMessage: a instanceof Error ? a.message : String(a),
|
|
64
|
+
updatedAt: Date.now()
|
|
65
|
+
}).where(o(t.id, e.id));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export {
|
|
70
|
+
F as startArweaveL1FinalizeWorker,
|
|
71
|
+
S as stopArweaveL1FinalizeWorker
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=worker-F-UKvyIU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-F-UKvyIU.js","sources":["../src/services/arweaveL1Finalize/worker.ts"],"sourcesContent":["import {\n applyArweaveL1TransactionIdLocal,\n arweaveL1FinalizeJobs,\n BaseDb,\n getArweaveUploadStatus,\n isArweaveL1AnchoringComplete,\n queryArweaveGatewayTransaction,\n} from '@seedprotocol/sdk'\nimport { eq } from 'drizzle-orm'\nimport { getPublishConfig } from '~/config'\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 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\n for (const job of pending) {\n const dataItemId = job.dataItemId\n try {\n let l1TxId = job.l1TransactionId\n\n if (!l1TxId) {\n const gql = await queryArweaveGatewayTransaction(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"],"names":["logger","debug","TICK_MS","intervalId","startArweaveL1FinalizeWorker","runArweaveL1FinalizeTick","stopArweaveL1FinalizeWorker","config","getPublishConfig","db","BaseDb","pending","arweaveL1FinalizeJobs","eq","uploadBase","graphqlUrl","job","dataItemId","l1TxId","bundled","queryArweaveGatewayTransaction","status","getArweaveUploadStatus","statusStr","isArweaveL1AnchoringComplete","resolvedL1","applyArweaveL1TransactionIdLocal","err"],"mappings":";;;;AAYA,MAAMA,IAASC,EAAM,uCAAuC,GAEtDC,IAAU;AAEhB,IAAIC,IAAoD;AAEjD,SAASC,IAAqC;AACnD,EAAID,KAAc,SAClBA,IAAa,YAAY,MAAM;AAC7B,IAAKE,EAAA;AAAA,EACP,GAAGH,CAAO,GACLG,EAAA;AACP;AAEO,SAASC,IAAoC;AAClD,EAAIH,KAAc,SAChB,cAAcA,CAAU,GACxBA,IAAa;AAEjB;AAEA,eAAeE,IAA0C;AACvD,MAAIE;AACJ,MAAI;AACF,IAAAA,IAASC,EAAA;AAAA,EACX,QAAQ;AACN;AAAA,EACF;AACA,MAAI,CAACD,EAAO,kBAAmB;AAE/B,QAAME,IAAKC,EAAO,SAAA;AAClB,MAAI,CAACD,EAAI;AAET,QAAME,IAAU,MAAMF,EACnB,OAAA,EACA,KAAKG,CAAqB,EAC1B,MAAMC,EAAGD,EAAsB,OAAO,YAAY,CAAC,EACnD,MAAM,EAAE;AAEX,MAAID,EAAQ,WAAW,EAAG;AAE1B,QAAMG,IAAaP,EAAO,kCACpBQ,IAAaR,EAAO;AAE1B,aAAWS,KAAOL,GAAS;AACzB,UAAMM,IAAaD,EAAI;AACvB,QAAI;AACF,UAAIE,IAASF,EAAI;AAEjB,UAAI,CAACE,GAAQ;AAEX,cAAMC,KADM,MAAMC,EAA+BL,GAAYE,CAAU,IAClD,eAAe;AACpC,QAAIE,MACFD,IAASC,GACT,MAAMV,EACH,OAAOG,CAAqB,EAC5B,IAAI;AAAA,UACH,iBAAiBO;AAAA,UACjB,UAAUA;AAAA,UACV,WAAW,KAAK,IAAA;AAAA,QAAI,CACrB,EACA,MAAMN,EAAGD,EAAsB,IAAII,EAAI,EAAG,CAAC;AAAA,MAElD;AAEA,YAAMK,IAAS,MAAMC,EAAuBR,GAAYG,CAAU,GAC5DM,IAAYF,IAAS,KAAK,UAAUA,CAAM,IAAI;AAEpD,UAAIA,KAAUG,EAA6BH,CAAM,GAAG;AAClD,cAAMI,IACJP,KACAG,EAAO,YACPA,EAAO,OAAO,YACdL,EAAI,mBACJ;AAEF,QAAIS,KACF,MAAMC,EAAiC;AAAA,UACrC,aAAaV,EAAI;AAAA,UACjB,gBAAgBA,EAAI;AAAA,UACpB,YAAAC;AAAA,UACA,iBAAiBQ;AAAA,QAAA,CAClB,GAGH,MAAMhB,EACH,OAAOG,CAAqB,EAC5B,IAAI;AAAA,UACH,OAAO;AAAA,UACP,YAAYW;AAAA,UACZ,iBAAiBE,KAAcT,EAAI;AAAA,UACnC,UAAUK,EAAO,YAAYL,EAAI;AAAA,UACjC,WAAW,KAAK,IAAA;AAAA,QAAI,CACrB,EACA,MAAMH,EAAGD,EAAsB,IAAII,EAAI,EAAG,CAAC;AAC9C;AAAA,MACF;AAEA,YAAMP,EACH,OAAOG,CAAqB,EAC5B,IAAI;AAAA,QACH,YAAYW;AAAA,QACZ,WAAW,KAAK,IAAA;AAAA,MAAI,CACrB,EACA,MAAMV,EAAGD,EAAsB,IAAII,EAAI,EAAG,CAAC;AAAA,IAChD,SAASW,GAAK;AACZ,MAAA3B,EAAO,sBAAsBgB,EAAI,IAAIW,CAAG,GACxC,MAAMlB,EACH,OAAOG,CAAqB,EAC5B,IAAI;AAAA,QACH,cAAce,aAAe,QAAQA,EAAI,UAAU,OAAOA,CAAG;AAAA,QAC7D,WAAW,KAAK,IAAA;AAAA,MAAI,CACrB,EACA,MAAMd,EAAGD,EAAsB,IAAII,EAAI,EAAG,CAAC;AAAA,IAChD;AAAA,EACF;AACF;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seedprotocol/publish",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.20",
|
|
4
4
|
"description": "Publish UI components and helpers for Seed Protocol",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
"scripts": {
|
|
24
24
|
"build": "tsc -p tsconfig.build.json && vite build",
|
|
25
25
|
"prepublishOnly": "npm run build && node ../../scripts/sync-versions.js",
|
|
26
|
-
"test": "bun test src/helpers
|
|
26
|
+
"test": "bun test src/helpers/*.test.ts"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@ethereum-attestation-service/eas-sdk": "^2.9.0",
|
|
30
|
-
"@seedprotocol/react": "0.4.
|
|
31
|
-
"@seedprotocol/sdk": "0.4.
|
|
30
|
+
"@seedprotocol/react": "0.4.20",
|
|
31
|
+
"@seedprotocol/sdk": "0.4.20",
|
|
32
32
|
"@xstate/react": "^6.1.0",
|
|
33
33
|
"arweave": "^1.15.7",
|
|
34
34
|
"debug": "^4.4.1",
|