@seedprotocol/publish 0.7.3 → 0.7.4-next.784.g879c6a3

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.
Files changed (88) hide show
  1. package/README.md +75 -0
  2. package/dist/authorization.d.ts +41 -0
  3. package/dist/authorization.d.ts.map +1 -0
  4. package/dist/{chainConfig-RhKIuGtN.js → chainConfig-BHTH_BGB.js} +2012 -1488
  5. package/dist/chainConfig-BHTH_BGB.js.map +1 -0
  6. package/dist/config.d.ts +25 -4
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/{ensureAutomationSessionKey-CvUntLne.js → ensureAutomationSessionKey-DITIsceC.js} +31 -31
  9. package/dist/{ensureAutomationSessionKey-CvUntLne.js.map → ensureAutomationSessionKey-DITIsceC.js.map} +1 -1
  10. package/dist/ensureModularPublishBootstrap-sAAJn75c.js +21 -0
  11. package/dist/{ensureModularPublishBootstrap-D9q246TT.js.map → ensureModularPublishBootstrap-sAAJn75c.js.map} +1 -1
  12. package/dist/{ensureSmartWalletThenPublish-C_iS5Wb-.js → ensureSmartWalletThenPublish-hRJ9T0f8.js} +15 -15
  13. package/dist/{ensureSmartWalletThenPublish-C_iS5Wb-.js.map → ensureSmartWalletThenPublish-hRJ9T0f8.js.map} +1 -1
  14. package/dist/helpers/abi/eas.d.ts +42 -0
  15. package/dist/helpers/abi/eas.d.ts.map +1 -1
  16. package/dist/helpers/adapters/permissionlessTxSender.d.ts +5 -1
  17. package/dist/helpers/adapters/permissionlessTxSender.d.ts.map +1 -1
  18. package/dist/helpers/ensureWalletThenPublish.d.ts.map +1 -1
  19. package/dist/helpers/publishWalletRegistry.d.ts +5 -0
  20. package/dist/helpers/publishWalletRegistry.d.ts.map +1 -1
  21. package/dist/helpers/resolveRevokeAccount.d.ts.map +1 -1
  22. package/dist/helpers/turbo.d.ts +55 -0
  23. package/dist/helpers/turbo.d.ts.map +1 -0
  24. package/dist/helpers/uploadApi.d.ts +3 -1
  25. package/dist/helpers/uploadApi.d.ts.map +1 -1
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +338 -479
  29. package/dist/index.js.map +1 -1
  30. package/dist/{managedAccountAdmin-CLVRJEKI.js → managedAccountAdmin-CSBb6NaZ.js} +10 -10
  31. package/dist/{managedAccountAdmin-CLVRJEKI.js.map → managedAccountAdmin-CSBb6NaZ.js.map} +1 -1
  32. package/dist/payment.d.ts +106 -0
  33. package/dist/payment.d.ts.map +1 -0
  34. package/dist/{publishAuthorization-DAarz1JK.js → publishAuthorization-CZyvsNGG.js} +25 -25
  35. package/dist/{publishAuthorization-DAarz1JK.js.map → publishAuthorization-CZyvsNGG.js.map} +1 -1
  36. package/dist/react/ConnectButton.d.ts.map +1 -1
  37. package/dist/react/useSeedWallet.d.ts.map +1 -1
  38. package/dist/resolveRevokeAccount-CbQiAEZp.js +37 -0
  39. package/dist/resolveRevokeAccount-CbQiAEZp.js.map +1 -0
  40. package/dist/services/arweaveL1Finalize/worker.d.ts.map +1 -1
  41. package/dist/services/domainOwnership/challenge.d.ts +4 -1
  42. package/dist/services/domainOwnership/challenge.d.ts.map +1 -1
  43. package/dist/services/domainOwnership/index.d.ts +1 -1
  44. package/dist/services/domainOwnership/index.d.ts.map +1 -1
  45. package/dist/services/domainOwnership/public.d.ts +1 -1
  46. package/dist/services/domainOwnership/public.d.ts.map +1 -1
  47. package/dist/services/domainOwnership/registry.d.ts +2 -0
  48. package/dist/services/domainOwnership/registry.d.ts.map +1 -1
  49. package/dist/services/publish/actors/authorizing.d.ts +10 -0
  50. package/dist/services/publish/actors/authorizing.d.ts.map +1 -0
  51. package/dist/services/publish/actors/checking.d.ts.map +1 -1
  52. package/dist/services/publish/actors/createAttestationsDirectToEas.d.ts.map +1 -1
  53. package/dist/services/publish/actors/index.d.ts +1 -0
  54. package/dist/services/publish/actors/index.d.ts.map +1 -1
  55. package/dist/services/publish/actors/sendReimbursementRequest.d.ts.map +1 -1
  56. package/dist/services/publish/actors/uploadViaBundler.d.ts.map +1 -1
  57. package/dist/services/publish/helpers/undeployedSmartAccount.d.ts +15 -0
  58. package/dist/services/publish/helpers/undeployedSmartAccount.d.ts.map +1 -0
  59. package/dist/services/publish/helpers/uploadToTurbo.d.ts +8 -0
  60. package/dist/services/publish/helpers/uploadToTurbo.d.ts.map +1 -0
  61. package/dist/services/publish/helpers/verifyArweaveTransactionsExist.d.ts +2 -1
  62. package/dist/services/publish/helpers/verifyArweaveTransactionsExist.d.ts.map +1 -1
  63. package/dist/services/publish/index.d.ts +13 -1
  64. package/dist/services/publish/index.d.ts.map +1 -1
  65. package/dist/services/publishCost/estimatePublishCost.d.ts +1 -0
  66. package/dist/services/publishCost/estimatePublishCost.d.ts.map +1 -1
  67. package/dist/services/publishCost/types.d.ts +7 -0
  68. package/dist/services/publishCost/types.d.ts.map +1 -1
  69. package/dist/services/publishManager/actions/createPublish.d.ts.map +1 -1
  70. package/dist/services/publishManager/actions/requestSavePublish.d.ts +10 -0
  71. package/dist/services/publishManager/actions/requestSavePublish.d.ts.map +1 -1
  72. package/dist/services/revoke/revokeAttestations.d.ts +2 -1
  73. package/dist/services/revoke/revokeAttestations.d.ts.map +1 -1
  74. package/dist/thirdweb.js +106 -105
  75. package/dist/thirdweb.js.map +1 -1
  76. package/dist/types.d.ts +4 -0
  77. package/dist/types.d.ts.map +1 -1
  78. package/dist/undeployedSmartAccount-DwGsM3K1.js +24 -0
  79. package/dist/undeployedSmartAccount-DwGsM3K1.js.map +1 -0
  80. package/dist/worker--EZUESZk.js +88 -0
  81. package/dist/worker--EZUESZk.js.map +1 -0
  82. package/package.json +6 -6
  83. package/dist/chainConfig-RhKIuGtN.js.map +0 -1
  84. package/dist/ensureModularPublishBootstrap-D9q246TT.js +0 -21
  85. package/dist/resolveRevokeAccount-TRcqJtIO.js +0 -36
  86. package/dist/resolveRevokeAccount-TRcqJtIO.js.map +0 -1
  87. package/dist/worker-CyuMiBB-.js +0 -72
  88. package/dist/worker-CyuMiBB-.js.map +0 -1
package/dist/config.d.ts CHANGED
@@ -34,7 +34,7 @@ export interface ThirdwebWalletOptions {
34
34
  bundlerUrl?: string;
35
35
  /**
36
36
  * Sponsor gas through Thirdweb: the managed smart account's UserOps and, in `'EIP7702'` mode,
37
- * the in-app EOA's transactions. Default `true`. Set `false` where Thirdweb's paymaster is
37
+ * the in-app EOA's transactions. Default `true` (`false` with `payment: { gas: 'user' }`). Set `false` where Thirdweb's paymaster is
38
38
  * unavailable (local chains); the accounts then pay their own gas and must hold ETH.
39
39
  */
40
40
  sponsorGas?: boolean;
@@ -91,6 +91,13 @@ export interface PublishConfig {
91
91
  * `modularWalletMode: 'EOA'`.
92
92
  */
93
93
  thirdweb?: ThirdwebWalletOptions;
94
+ /**
95
+ * Who pays for publishes: `gas` (`'sponsored'` | `'user'`) and `storage` (`'operator'` |
96
+ * `'user'`). Optional; the settings below decide when it's left out. When set, it supplies
97
+ * their defaults (e.g. `gas: 'user'` makes Thirdweb wallets unsponsored) and `initPublish`
98
+ * throws on a contradiction. See `resolvePublishPayment`.
99
+ */
100
+ payment?: import('./payment').PublishPaymentConfig;
94
101
  /**
95
102
  * EntryPoint v0.8 bundler for the permissionless EIP-7702 `SeedTxSender` used by non-Thirdweb
96
103
  * wallets. Setting it switches `accountMode` to `eip7702`. Not used by Thirdweb wallets: a local
@@ -99,7 +106,8 @@ export interface PublishConfig {
99
106
  */
100
107
  bundlerUrl?: string;
101
108
  /**
102
- * Paymaster / sponsorship endpoint for permissionless EIP-7702 sends.
109
+ * Paymaster / sponsorship endpoint for permissionless EIP-7702 sends. Defaults to `bundlerUrl`,
110
+ * so the bundler is asked to sponsor; set `payment: { gas: 'user' }` to send without a paymaster.
103
111
  */
104
112
  paymasterUrl?: string;
105
113
  /**
@@ -192,6 +200,8 @@ export interface PublishConfig {
192
200
  signArweaveTransactions?: (uploads: SerializedPublishUpload[]) => Promise<ArweaveTransactionInfoResult[]>;
193
201
  /**
194
202
  * Optional fallback: Arweave JWK for in-process signing (non-bundler path). Prefer passing at createPublish time.
203
+ * A publish restored after a reload never has the per-publish JWK (it is not saved to the
204
+ * database), so it signs with this one, or fails at creatingArweaveTransactions without it.
195
205
  */
196
206
  arweaveJwk?: {
197
207
  kty: string;
@@ -223,6 +233,11 @@ export interface PublishConfig {
223
233
  * Per-publish {@link CreatePublishOptions.onPublished} overrides this when set.
224
234
  */
225
235
  onPublished?: import('./services/publishedBy').OnPublishedCallback;
236
+ /**
237
+ * Approves each publish before it spends anything; return `false` to refuse, or `{ token }` to
238
+ * send a token to the upload API with the publish's requests. See {@link AuthorizePublish}.
239
+ */
240
+ authorizePublish?: import('./authorization').AuthorizePublish;
226
241
  }
227
242
  /** Options passed at createPublish time. Signers here override config fallbacks. */
228
243
  export interface CreatePublishOptions {
@@ -237,7 +252,11 @@ export interface CreatePublishOptions {
237
252
  dataItemSigner?: ethers.Wallet | import('./helpers/seedSigner').SeedSigner;
238
253
  /** Required when NOT useArweaveBundler: sign Arweave transactions */
239
254
  signArweaveTransactions?: (uploads: SerializedPublishUpload[]) => Promise<ArweaveTransactionInfoResult[]>;
240
- /** Required when NOT useArweaveBundler: JWK for in-process signing */
255
+ /**
256
+ * Required when NOT useArweaveBundler: JWK for in-process signing. Kept in memory only; it is
257
+ * stripped from the saved publish snapshot, so a publish resumed after a reload falls back to
258
+ * {@link PublishConfig.arweaveJwk}.
259
+ */
241
260
  arweaveJwk?: {
242
261
  kty: string;
243
262
  n: string;
@@ -260,6 +279,8 @@ export interface CreatePublishOptions {
260
279
  * Overrides {@link PublishConfig.onPublished} when both are set.
261
280
  */
262
281
  onPublished?: import('./services/publishedBy').OnPublishedCallback;
282
+ /** Overrides {@link PublishConfig.authorizePublish} for this publish. */
283
+ authorizePublish?: import('./authorization').AuthorizePublish;
263
284
  }
264
285
  /**
265
286
  * Internal: Set config ref. Called by PublishProvider on mount or initPublish.
@@ -317,7 +338,7 @@ export type ResolvedThirdwebWalletOptions = {
317
338
  modularWalletMode: 'EIP7702' | 'EOA';
318
339
  };
319
340
  /** Applies defaults to {@link PublishConfig.thirdweb}. */
320
- export declare function resolveThirdwebWalletOptions(config: Pick<PublishConfig, 'thirdweb'> | null | undefined): ResolvedThirdwebWalletOptions;
341
+ export declare function resolveThirdwebWalletOptions(config: Pick<PublishConfig, 'thirdweb' | 'payment'> | null | undefined): ResolvedThirdwebWalletOptions;
321
342
  /**
322
343
  * Returns the resolved publish config: defaults, env-driven fields, and
323
344
  * {@link ResolvedPublishConfig.autoDeployEip7702ModularAccount}.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
- import { At as t, Dt as n, It as r, J as i, Mt as a, Nt as o, P as s, rt as c, t as l } from "./chainConfig-RhKIuGtN.js";
3
- import { d as u, p as d } from "./publishAuthorization-DAarz1JK.js";
2
+ import { H as t, Kt as n, Vt as r, Wt as i, Xt as a, gt as o, nt as s, qt as c, t as l } from "./chainConfig-BHTH_BGB.js";
3
+ import { d as u, p as d } from "./publishAuthorization-CZyvsNGG.js";
4
4
  import { getContract as f, sendTransaction as p } from "thirdweb";
5
5
  import { addSessionKey as m, removeSessionKey as h, shouldUpdateSessionKey as g } from "thirdweb/extensions/erc4337";
6
6
  //#region src/helpers/ensureAutomationSessionKey.ts
@@ -10,74 +10,74 @@ var _ = /* @__PURE__ */ e({
10
10
  removeAutomationSessionKey: () => C
11
11
  }), v = () => `Could not connect the managed publishing account to authorize an automation session key on ${l()}. Reconnect and try again.`, y = () => `Could not authorize the automation session key on your publishing account on ${l()}.`, b = () => `Could not remove the automation session key from your publishing account on ${l()}.`;
12
12
  async function x(e) {
13
- let t = s();
14
- await t.autoConnect({
15
- client: i(),
16
- chain: c()
13
+ let n = t();
14
+ await n.autoConnect({
15
+ client: s(),
16
+ chain: o()
17
17
  });
18
- let n = t.getAccount();
19
- if (!n) throw new r(v(), "MODULAR_SIGNER_ACTIVATION_FAILED", e);
20
- return n;
18
+ let r = n.getAccount();
19
+ if (!r) throw new a(v(), "MODULAR_SIGNER_ACTIVATION_FAILED", e);
20
+ return r;
21
21
  }
22
22
  async function S(e) {
23
- let { managedAddress: t, sessionKeyAddress: n, expiresAt: s } = e, l = await x(t), h = f({
24
- client: i(),
25
- chain: c(),
23
+ let { managedAddress: t, sessionKeyAddress: r, expiresAt: i } = e, l = await x(t), h = f({
24
+ client: s(),
25
+ chain: o(),
26
26
  address: t
27
- }), _ = d(u({ expiresAt: s })), v = !1;
27
+ }), _ = d(u({ expiresAt: i })), v = !1;
28
28
  try {
29
29
  v = await g({
30
30
  accountContract: h,
31
- sessionKeyAddress: n,
31
+ sessionKeyAddress: r,
32
32
  newPermissions: _
33
33
  });
34
34
  } catch (e) {
35
- throw new r(y(), "MODULAR_SIGNER_ACTIVATION_FAILED", t, e);
35
+ throw new a(y(), "MODULAR_SIGNER_ACTIVATION_FAILED", t, e);
36
36
  }
37
37
  if (v) try {
38
38
  let e = m({
39
39
  contract: h,
40
40
  account: l,
41
- sessionKeyAddress: n,
41
+ sessionKeyAddress: r,
42
42
  permissions: _
43
43
  }), t = await p({
44
44
  account: l,
45
45
  transaction: e
46
46
  });
47
- await o(t.transactionHash);
47
+ await c(t.transactionHash);
48
48
  } catch (e) {
49
- throw new r(y(), "MODULAR_SIGNER_ACTIVATION_FAILED", t, e);
49
+ throw new a(y(), "MODULAR_SIGNER_ACTIVATION_FAILED", t, e);
50
50
  }
51
- if (!await a(() => w(t, n), Boolean, { attempts: v ? 5 : 1 })) throw new r(y(), "MODULAR_SIGNER_ACTIVATION_FAILED", t);
51
+ if (!await n(() => w(t, r), Boolean, { attempts: v ? 5 : 1 })) throw new a(y(), "MODULAR_SIGNER_ACTIVATION_FAILED", t);
52
52
  }
53
53
  async function C(e) {
54
- let { managedAddress: t, sessionKeyAddress: n } = e, a = await x(t), s = f({
55
- client: i(),
56
- chain: c(),
54
+ let { managedAddress: t, sessionKeyAddress: n } = e, r = await x(t), i = f({
55
+ client: s(),
56
+ chain: o(),
57
57
  address: t
58
58
  });
59
59
  try {
60
60
  let e = h({
61
- contract: s,
62
- account: a,
61
+ contract: i,
62
+ account: r,
63
63
  sessionKeyAddress: n
64
64
  }), t = await p({
65
- account: a,
65
+ account: r,
66
66
  transaction: e
67
67
  });
68
- await o(t.transactionHash);
68
+ await c(t.transactionHash);
69
69
  } catch (e) {
70
- throw new r(b(), "MODULAR_SIGNER_ACTIVATION_FAILED", t, e);
70
+ throw new a(b(), "MODULAR_SIGNER_ACTIVATION_FAILED", t, e);
71
71
  }
72
72
  }
73
- async function w(e, i) {
73
+ async function w(e, t) {
74
74
  try {
75
- return await t(e) ? await n(e, i) : !1;
75
+ return await i(e) ? await r(e, t) : !1;
76
76
  } catch (t) {
77
- throw new r(y(), "MODULAR_SIGNER_ACTIVATION_FAILED", e, t);
77
+ throw new a(y(), "MODULAR_SIGNER_ACTIVATION_FAILED", e, t);
78
78
  }
79
79
  }
80
80
  //#endregion
81
81
  export { C as i, _ as n, w as r, S as t };
82
82
 
83
- //# sourceMappingURL=ensureAutomationSessionKey-CvUntLne.js.map
83
+ //# sourceMappingURL=ensureAutomationSessionKey-DITIsceC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ensureAutomationSessionKey-CvUntLne.js","names":["__exportAll","isContractDeployed","readIsActiveSigner","ManagedAccountPublishError","getClient","readUntil","waitForPublishReceipt","getManagedAccountWallet","getPublishThirdwebChain","getPublishChainName","buildAutomationSessionKeyPermissions","toThirdwebSessionKeyPermissions","ensureAutomationSessionKey_exports","ensureAutomationSessionKey","isAutomationSessionActive","removeAutomationSessionKey","MSG_UNAVAILABLE","MSG_ACTIVATION_FAILED","MSG_REMOVAL_FAILED","getManagedAccountForSessionKeyAdmin","managedWallet","managedAccount","managedAddress","params","accountContract","getContract","permissions","shouldUpdate","shouldUpdateSessionKey","cause","tx","addSessionKey","result","sendTransaction","sessionKeyAddress","removeSessionKey"],"sources":["../src/helpers/ensureAutomationSessionKey.ts"],"sourcesContent":["import { getContract, sendTransaction } from 'thirdweb'\nimport {\n addSessionKey,\n removeSessionKey,\n shouldUpdateSessionKey,\n} from 'thirdweb/extensions/erc4337'\nimport type { Address } from 'viem'\nimport { ManagedAccountPublishError } from '../errors'\nimport { isContractDeployed, readUntil, waitForPublishReceipt } from './chainClient'\nimport { readIsActiveSigner } from './contracts'\nimport {\n buildAutomationSessionKeyPermissions,\n toThirdwebSessionKeyPermissions,\n} from './automationSessionKeyPermissions'\nimport { getClient, getManagedAccountWallet } from './thirdweb'\nimport { getPublishThirdwebChain } from './thirdwebChain'\nimport { getPublishChainName } from './chainConfig'\n\nconst MSG_UNAVAILABLE = () =>\n `Could not connect the managed publishing account to authorize an automation session key on ${getPublishChainName()}. Reconnect and try again.`\nconst MSG_ACTIVATION_FAILED = () =>\n `Could not authorize the automation session key on your publishing account on ${getPublishChainName()}.`\nconst MSG_REMOVAL_FAILED = () =>\n `Could not remove the automation session key from your publishing account on ${getPublishChainName()}.`\n\nasync function getManagedAccountForSessionKeyAdmin(managedAddress: string) {\n const managedWallet = getManagedAccountWallet()\n await managedWallet.autoConnect({ client: getClient(), chain: getPublishThirdwebChain() })\n const managedAccount = managedWallet.getAccount()\n if (!managedAccount) {\n throw new ManagedAccountPublishError(\n MSG_UNAVAILABLE(),\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n )\n }\n return managedAccount\n}\n\n/**\n * Ensures `sessionKeyAddress` is an active automation session signer on the ManagedAccount\n * with **executor-module-only** approved targets. Signed by the managed EIP-4337 wallet (user).\n */\nexport async function ensureAutomationSessionKey(params: {\n managedAddress: string\n sessionKeyAddress: string\n /** Unix seconds end time for the session key (optional). */\n expiresAt?: number\n}): Promise<void> {\n const { managedAddress, sessionKeyAddress, expiresAt } = params\n const managedAccount = await getManagedAccountForSessionKeyAdmin(managedAddress)\n\n const accountContract = getContract({\n client: getClient(),\n chain: getPublishThirdwebChain(),\n address: managedAddress,\n })\n const permissions = toThirdwebSessionKeyPermissions(\n buildAutomationSessionKeyPermissions({ expiresAt }),\n )\n\n let shouldUpdate = false\n try {\n shouldUpdate = await shouldUpdateSessionKey({\n accountContract,\n sessionKeyAddress,\n newPermissions: permissions,\n })\n } catch (cause) {\n throw new ManagedAccountPublishError(\n MSG_ACTIVATION_FAILED(),\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n\n if (shouldUpdate) {\n try {\n const tx = addSessionKey({\n contract: accountContract,\n account: managedAccount,\n sessionKeyAddress,\n permissions,\n })\n const result = await sendTransaction({ account: managedAccount, transaction: tx })\n await waitForPublishReceipt(result.transactionHash as `0x${string}`)\n } catch (cause) {\n throw new ManagedAccountPublishError(\n MSG_ACTIVATION_FAILED(),\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n }\n\n // Right after addSessionKey, a lagging RPC node can still report the key inactive.\n const active = await readUntil(\n () => isAutomationSessionActive(managedAddress, sessionKeyAddress),\n Boolean,\n { attempts: shouldUpdate ? 5 : 1 },\n )\n if (!active) {\n throw new ManagedAccountPublishError(\n MSG_ACTIVATION_FAILED(),\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n )\n }\n}\n\n/**\n * Removes an automation session key from the ManagedAccount (user-signed via managed wallet).\n */\nexport async function removeAutomationSessionKey(params: {\n managedAddress: string\n sessionKeyAddress: string\n}): Promise<void> {\n const { managedAddress, sessionKeyAddress } = params\n const managedAccount = await getManagedAccountForSessionKeyAdmin(managedAddress)\n\n const accountContract = getContract({\n client: getClient(),\n chain: getPublishThirdwebChain(),\n address: managedAddress,\n })\n\n try {\n const tx = removeSessionKey({\n contract: accountContract,\n account: managedAccount,\n sessionKeyAddress,\n })\n const result = await sendTransaction({ account: managedAccount, transaction: tx })\n await waitForPublishReceipt(result.transactionHash as `0x${string}`)\n } catch (cause) {\n throw new ManagedAccountPublishError(\n MSG_REMOVAL_FAILED(),\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n}\n\n/**\n * True when `sessionKeyAddress` is an active signer on the ManagedAccount.\n * Returns `false` when the ManagedAccount has no bytecode (undeployed ≠ unauthorized).\n * Throws when bytecode or `isActiveSigner` cannot be read on a live account (RPC / decode),\n * so unattended automation does not silently fall through to in-app bootstrap.\n */\nexport async function isAutomationSessionActive(\n managedAddress: string,\n sessionKeyAddress: string,\n): Promise<boolean> {\n try {\n if (!(await isContractDeployed(managedAddress))) {\n return false\n }\n return await readIsActiveSigner(\n managedAddress as Address,\n sessionKeyAddress as Address,\n )\n } catch (cause) {\n throw new ManagedAccountPublishError(\n MSG_ACTIVATION_FAILED(),\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n}\n"],"mappings":";;;;;;;;;;IAkBMgB,UACJ,8FAA8FP,EAAoB,EAAE,6BAChHQ,UACJ,gFAAgFR,EAAoB,EAAE,IAClGS,UACJ,+EAA+ET,EAAoB,EAAE;AAEvG,eAAeU,EAAoC,GAAwB;CACzE,IAAMC,IAAgBb,EAAwB;CAC9C,MAAMa,EAAc,YAAY;EAAE,QAAQhB,EAAU;EAAG,OAAOI,EAAwB;CAAE,CAAC;CACzF,IAAMa,IAAiBD,EAAc,WAAW;CAChD,IAAI,CAACC,GACH,MAAM,IAAIlB,EACRa,EAAgB,GAChB,oCACAM,CACF;CAEF,OAAOD;AACT;AAMA,eAAsBR,EAA2B,GAK/B;CAChB,IAAM,EAAE,mBAAgB,sBAAmB,iBAAcU,GACnDF,IAAiB,MAAMF,EAAoCG,CAAc,GAEzEE,IAAkBC,EAAY;EAClC,QAAQrB,EAAU;EAClB,OAAOI,EAAwB;EAC/B,SAASc;CACX,CAAC,GACKI,IAAcf,EAClBD,EAAqC,EAAE,aAAU,CAAC,CACpD,GAEIiB,IAAe;CACnB,IAAI;EACF,IAAe,MAAMC,EAAuB;GAC1C;GACA;GACA,gBAAgBF;EAClB,CAAC;CACH,SAASG,GAAO;EACd,MAAM,IAAI1B,EACRc,EAAsB,GACtB,oCACAK,GACAO,CACF;CACF;CAEA,IAAIF,GACF,IAAI;EACF,IAAMG,IAAKC,EAAc;GACvB,UAAUP;GACV,SAASH;GACT;GACA;EACF,CAAC,GACKW,IAAS,MAAMC,EAAgB;GAAE,SAASZ;GAAgB,aAAaS;EAAG,CAAC;EACjF,MAAMxB,EAAsB0B,EAAO,eAAgC;CACrE,SAASH,GAAO;EACd,MAAM,IAAI1B,EACRc,EAAsB,GACtB,oCACAK,GACAO,CACF;CACF;CASF,IAAI,CAAC,MALgBxB,QACbS,EAA0BQ,GAAgBY,CAAiB,GACjE,SACA,EAAE,UAAUP,IAAe,IAAI,EAAE,CACnC,GAEE,MAAM,IAAIxB,EACRc,EAAsB,GACtB,oCACAK,CACF;AAEJ;AAKA,eAAsBP,EAA2B,GAG/B;CAChB,IAAM,EAAE,mBAAgB,yBAAsBQ,GACxCF,IAAiB,MAAMF,EAAoCG,CAAc,GAEzEE,IAAkBC,EAAY;EAClC,QAAQrB,EAAU;EAClB,OAAOI,EAAwB;EAC/B,SAASc;CACX,CAAC;CAED,IAAI;EACF,IAAMQ,IAAKK,EAAiB;GAC1B,UAAUX;GACV,SAASH;GACT;EACF,CAAC,GACKW,IAAS,MAAMC,EAAgB;GAAE,SAASZ;GAAgB,aAAaS;EAAG,CAAC;EACjF,MAAMxB,EAAsB0B,EAAO,eAAgC;CACrE,SAASH,GAAO;EACd,MAAM,IAAI1B,EACRe,EAAmB,GACnB,oCACAI,GACAO,CACF;CACF;AACF;AAQA,eAAsBf,EACpB,GACA,GACkB;CAClB,IAAI;EAIF,OAHM,MAAMb,EAAmBqB,CAAc,IAGtC,MAAMpB,EACXoB,GACAY,CACF,IALS;CAMX,SAASL,GAAO;EACd,MAAM,IAAI1B,EACRc,EAAsB,GACtB,oCACAK,GACAO,CACF;CACF;AACF"}
1
+ {"version":3,"file":"ensureAutomationSessionKey-DITIsceC.js","names":["__exportAll","getManagedAccountWallet","readUntil","readIsActiveSigner","isContractDeployed","ManagedAccountPublishError","getPublishThirdwebChain","getClient","waitForPublishReceipt","getPublishChainName","buildAutomationSessionKeyPermissions","toThirdwebSessionKeyPermissions","ensureAutomationSessionKey_exports","ensureAutomationSessionKey","isAutomationSessionActive","removeAutomationSessionKey","MSG_UNAVAILABLE","MSG_ACTIVATION_FAILED","MSG_REMOVAL_FAILED","getManagedAccountForSessionKeyAdmin","managedWallet","managedAccount","managedAddress","params","accountContract","getContract","permissions","shouldUpdate","shouldUpdateSessionKey","cause","tx","addSessionKey","result","sendTransaction","sessionKeyAddress","removeSessionKey"],"sources":["../src/helpers/ensureAutomationSessionKey.ts"],"sourcesContent":["import { getContract, sendTransaction } from 'thirdweb'\nimport {\n addSessionKey,\n removeSessionKey,\n shouldUpdateSessionKey,\n} from 'thirdweb/extensions/erc4337'\nimport type { Address } from 'viem'\nimport { ManagedAccountPublishError } from '../errors'\nimport { isContractDeployed, readUntil, waitForPublishReceipt } from './chainClient'\nimport { readIsActiveSigner } from './contracts'\nimport {\n buildAutomationSessionKeyPermissions,\n toThirdwebSessionKeyPermissions,\n} from './automationSessionKeyPermissions'\nimport { getClient, getManagedAccountWallet } from './thirdweb'\nimport { getPublishThirdwebChain } from './thirdwebChain'\nimport { getPublishChainName } from './chainConfig'\n\nconst MSG_UNAVAILABLE = () =>\n `Could not connect the managed publishing account to authorize an automation session key on ${getPublishChainName()}. Reconnect and try again.`\nconst MSG_ACTIVATION_FAILED = () =>\n `Could not authorize the automation session key on your publishing account on ${getPublishChainName()}.`\nconst MSG_REMOVAL_FAILED = () =>\n `Could not remove the automation session key from your publishing account on ${getPublishChainName()}.`\n\nasync function getManagedAccountForSessionKeyAdmin(managedAddress: string) {\n const managedWallet = getManagedAccountWallet()\n await managedWallet.autoConnect({ client: getClient(), chain: getPublishThirdwebChain() })\n const managedAccount = managedWallet.getAccount()\n if (!managedAccount) {\n throw new ManagedAccountPublishError(\n MSG_UNAVAILABLE(),\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n )\n }\n return managedAccount\n}\n\n/**\n * Ensures `sessionKeyAddress` is an active automation session signer on the ManagedAccount\n * with **executor-module-only** approved targets. Signed by the managed EIP-4337 wallet (user).\n */\nexport async function ensureAutomationSessionKey(params: {\n managedAddress: string\n sessionKeyAddress: string\n /** Unix seconds end time for the session key (optional). */\n expiresAt?: number\n}): Promise<void> {\n const { managedAddress, sessionKeyAddress, expiresAt } = params\n const managedAccount = await getManagedAccountForSessionKeyAdmin(managedAddress)\n\n const accountContract = getContract({\n client: getClient(),\n chain: getPublishThirdwebChain(),\n address: managedAddress,\n })\n const permissions = toThirdwebSessionKeyPermissions(\n buildAutomationSessionKeyPermissions({ expiresAt }),\n )\n\n let shouldUpdate = false\n try {\n shouldUpdate = await shouldUpdateSessionKey({\n accountContract,\n sessionKeyAddress,\n newPermissions: permissions,\n })\n } catch (cause) {\n throw new ManagedAccountPublishError(\n MSG_ACTIVATION_FAILED(),\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n\n if (shouldUpdate) {\n try {\n const tx = addSessionKey({\n contract: accountContract,\n account: managedAccount,\n sessionKeyAddress,\n permissions,\n })\n const result = await sendTransaction({ account: managedAccount, transaction: tx })\n await waitForPublishReceipt(result.transactionHash as `0x${string}`)\n } catch (cause) {\n throw new ManagedAccountPublishError(\n MSG_ACTIVATION_FAILED(),\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n }\n\n // Right after addSessionKey, a lagging RPC node can still report the key inactive.\n const active = await readUntil(\n () => isAutomationSessionActive(managedAddress, sessionKeyAddress),\n Boolean,\n { attempts: shouldUpdate ? 5 : 1 },\n )\n if (!active) {\n throw new ManagedAccountPublishError(\n MSG_ACTIVATION_FAILED(),\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n )\n }\n}\n\n/**\n * Removes an automation session key from the ManagedAccount (user-signed via managed wallet).\n */\nexport async function removeAutomationSessionKey(params: {\n managedAddress: string\n sessionKeyAddress: string\n}): Promise<void> {\n const { managedAddress, sessionKeyAddress } = params\n const managedAccount = await getManagedAccountForSessionKeyAdmin(managedAddress)\n\n const accountContract = getContract({\n client: getClient(),\n chain: getPublishThirdwebChain(),\n address: managedAddress,\n })\n\n try {\n const tx = removeSessionKey({\n contract: accountContract,\n account: managedAccount,\n sessionKeyAddress,\n })\n const result = await sendTransaction({ account: managedAccount, transaction: tx })\n await waitForPublishReceipt(result.transactionHash as `0x${string}`)\n } catch (cause) {\n throw new ManagedAccountPublishError(\n MSG_REMOVAL_FAILED(),\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n}\n\n/**\n * True when `sessionKeyAddress` is an active signer on the ManagedAccount.\n * Returns `false` when the ManagedAccount has no bytecode (undeployed ≠ unauthorized).\n * Throws when bytecode or `isActiveSigner` cannot be read on a live account (RPC / decode),\n * so unattended automation does not silently fall through to in-app bootstrap.\n */\nexport async function isAutomationSessionActive(\n managedAddress: string,\n sessionKeyAddress: string,\n): Promise<boolean> {\n try {\n if (!(await isContractDeployed(managedAddress))) {\n return false\n }\n return await readIsActiveSigner(\n managedAddress as Address,\n sessionKeyAddress as Address,\n )\n } catch (cause) {\n throw new ManagedAccountPublishError(\n MSG_ACTIVATION_FAILED(),\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n}\n"],"mappings":";;;;;;;;;;IAkBMgB,UACJ,8FAA8FP,EAAoB,EAAE,6BAChHQ,UACJ,gFAAgFR,EAAoB,EAAE,IAClGS,UACJ,+EAA+ET,EAAoB,EAAE;AAEvG,eAAeU,EAAoC,GAAwB;CACzE,IAAMC,IAAgBnB,EAAwB;CAC9C,MAAMmB,EAAc,YAAY;EAAE,QAAQb,EAAU;EAAG,OAAOD,EAAwB;CAAE,CAAC;CACzF,IAAMe,IAAiBD,EAAc,WAAW;CAChD,IAAI,CAACC,GACH,MAAM,IAAIhB,EACRW,EAAgB,GAChB,oCACAM,CACF;CAEF,OAAOD;AACT;AAMA,eAAsBR,EAA2B,GAK/B;CAChB,IAAM,EAAE,mBAAgB,sBAAmB,iBAAcU,GACnDF,IAAiB,MAAMF,EAAoCG,CAAc,GAEzEE,IAAkBC,EAAY;EAClC,QAAQlB,EAAU;EAClB,OAAOD,EAAwB;EAC/B,SAASgB;CACX,CAAC,GACKI,IAAcf,EAClBD,EAAqC,EAAE,aAAU,CAAC,CACpD,GAEIiB,IAAe;CACnB,IAAI;EACF,IAAe,MAAMC,EAAuB;GAC1C;GACA;GACA,gBAAgBF;EAClB,CAAC;CACH,SAASG,GAAO;EACd,MAAM,IAAIxB,EACRY,EAAsB,GACtB,oCACAK,GACAO,CACF;CACF;CAEA,IAAIF,GACF,IAAI;EACF,IAAMG,IAAKC,EAAc;GACvB,UAAUP;GACV,SAASH;GACT;GACA;EACF,CAAC,GACKW,IAAS,MAAMC,EAAgB;GAAE,SAASZ;GAAgB,aAAaS;EAAG,CAAC;EACjF,MAAMtB,EAAsBwB,EAAO,eAAgC;CACrE,SAASH,GAAO;EACd,MAAM,IAAIxB,EACRY,EAAsB,GACtB,oCACAK,GACAO,CACF;CACF;CASF,IAAI,CAAC,MALgB3B,QACbY,EAA0BQ,GAAgBY,CAAiB,GACjE,SACA,EAAE,UAAUP,IAAe,IAAI,EAAE,CACnC,GAEE,MAAM,IAAItB,EACRY,EAAsB,GACtB,oCACAK,CACF;AAEJ;AAKA,eAAsBP,EAA2B,GAG/B;CAChB,IAAM,EAAE,mBAAgB,yBAAsBQ,GACxCF,IAAiB,MAAMF,EAAoCG,CAAc,GAEzEE,IAAkBC,EAAY;EAClC,QAAQlB,EAAU;EAClB,OAAOD,EAAwB;EAC/B,SAASgB;CACX,CAAC;CAED,IAAI;EACF,IAAMQ,IAAKK,EAAiB;GAC1B,UAAUX;GACV,SAASH;GACT;EACF,CAAC,GACKW,IAAS,MAAMC,EAAgB;GAAE,SAASZ;GAAgB,aAAaS;EAAG,CAAC;EACjF,MAAMtB,EAAsBwB,EAAO,eAAgC;CACrE,SAASH,GAAO;EACd,MAAM,IAAIxB,EACRa,EAAmB,GACnB,oCACAI,GACAO,CACF;CACF;AACF;AAQA,eAAsBf,EACpB,GACA,GACkB;CAClB,IAAI;EAIF,OAHM,MAAMV,EAAmBkB,CAAc,IAGtC,MAAMnB,EACXmB,GACAY,CACF,IALS;CAMX,SAASL,GAAO;EACd,MAAM,IAAIxB,EACRY,EAAsB,GACtB,oCACAK,GACAO,CACF;CACF;AACF"}
@@ -0,0 +1,21 @@
1
+ import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
+ import { H as t, X as n, Xt as r, gt as i, ht as a, nt as o, t as s, w as c } from "./chainConfig-BHTH_BGB.js";
3
+ import { t as l } from "./managedAccountAdmin-CSBb6NaZ.js";
4
+ //#region src/helpers/ensureModularPublishBootstrap.ts
5
+ var u = /* @__PURE__ */ e({ ensureModularPublishBootstrap: () => d });
6
+ async function d(e) {
7
+ n();
8
+ let u = t();
9
+ await u.autoConnect({
10
+ client: o(),
11
+ chain: i()
12
+ });
13
+ let d = u.getAccount();
14
+ if (!d) throw new r(`Could not connect the managed publishing account on ${s()}. Reconnect with the same sign-in method and try again.`, "MANAGED_ACCOUNT_UNAVAILABLE", e);
15
+ if (d.address.toLowerCase() !== e.toLowerCase()) throw new r(`The connected managed account (${d.address}) is not the publishing account ${e}. Reconnect with the sign-in method that owns it.`, "MANAGED_ACCOUNT_UNAVAILABLE", e);
16
+ return await c(e, async () => a(await l(e))), d;
17
+ }
18
+ //#endregion
19
+ export { u as n, d as t };
20
+
21
+ //# sourceMappingURL=ensureModularPublishBootstrap-sAAJn75c.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ensureModularPublishBootstrap-D9q246TT.js","names":["__exportAll","syncPublishInAppAuthToken","ManagedAccountPublishError","getClient","getManagedAccountWallet","ensureManagedAccountEasConfigured","fromThirdwebAccount","getPublishThirdwebChain","getPublishChainName","getManagedAccountAdmin","ensureModularPublishBootstrap_exports","ensureModularPublishBootstrap","managedWallet","managedAccount","managedAddress"],"sources":["../src/helpers/ensureModularPublishBootstrap.ts"],"sourcesContent":["import type { Account } from 'thirdweb/wallets'\nimport { ManagedAccountPublishError } from '../errors'\nimport { fromThirdwebAccount } from './adapters/thirdwebAccount'\nimport { getPublishChainName } from './chainConfig'\nimport { ensureManagedAccountEasConfigured } from './ensureManagedAccountEasConfigured'\nimport { getManagedAccountAdmin } from './managedAccountAdmin'\nimport { getClient, getManagedAccountWallet, syncPublishInAppAuthToken } from './thirdweb'\nimport { getPublishThirdwebChain } from './thirdwebChain'\n\n/**\n * Returns the account that sends interactive `multiPublish`: the user's managed (EIP-4337) smart\n * account. Its UserOps execute `multiPublish` on the account itself, a self-call the Seed\n * extension accepts; session keys and other non-admin callers are rejected with `Unauthorized`.\n *\n * Also checks the account's EAS pointer. Only pre-rollout accounts that report no EAS get\n * `setEas`, sent by the admin EOA.\n */\nexport async function ensureModularPublishBootstrap(managedAddress: string): Promise<Account> {\n syncPublishInAppAuthToken()\n const managedWallet = getManagedAccountWallet()\n await managedWallet.autoConnect({ client: getClient(), chain: getPublishThirdwebChain() })\n const managedAccount = managedWallet.getAccount()\n if (!managedAccount) {\n throw new ManagedAccountPublishError(\n `Could not connect the managed publishing account on ${getPublishChainName()}. Reconnect with the same sign-in method and try again.`,\n 'MANAGED_ACCOUNT_UNAVAILABLE',\n managedAddress,\n )\n }\n if (managedAccount.address.toLowerCase() !== managedAddress.toLowerCase()) {\n throw new ManagedAccountPublishError(\n `The connected managed account (${managedAccount.address}) is not the publishing account ${managedAddress}. Reconnect with the sign-in method that owns it.`,\n 'MANAGED_ACCOUNT_UNAVAILABLE',\n managedAddress,\n )\n }\n\n await ensureManagedAccountEasConfigured(managedAddress, async () =>\n fromThirdwebAccount(await getManagedAccountAdmin(managedAddress)),\n )\n return managedAccount\n}\n"],"mappings":";;;;;AAiBA,eAAsBW,EAA8B,GAA0C;CAC5F,EAA0B;CAC1B,IAAMC,IAAgBR,EAAwB;CAC9C,MAAMQ,EAAc,YAAY;EAAE,QAAQT,EAAU;EAAG,OAAOI,EAAwB;CAAE,CAAC;CACzF,IAAMM,IAAiBD,EAAc,WAAW;CAChD,IAAI,CAACC,GACH,MAAM,IAAIX,EACR,uDAAuDM,EAAoB,EAAE,0DAC7E,+BACAM,CACF;CAEF,IAAID,EAAe,QAAQ,YAAY,MAAMC,EAAe,YAAY,GACtE,MAAM,IAAIZ,EACR,kCAAkCW,EAAe,QAAQ,kCAAkCC,EAAe,oDAC1G,+BACAA,CACF;CAMF,OAHA,MAAMT,EAAkCS,GAAgB,YACtDR,EAAoB,MAAMG,EAAuBK,CAAc,CAAC,CAClE,GACOD;AACT"}
1
+ {"version":3,"file":"ensureModularPublishBootstrap-sAAJn75c.js","names":["__exportAll","getManagedAccountWallet","syncPublishInAppAuthToken","ManagedAccountPublishError","getPublishThirdwebChain","fromThirdwebAccount","getClient","getPublishChainName","ensureManagedAccountEasConfigured","getManagedAccountAdmin","ensureModularPublishBootstrap_exports","ensureModularPublishBootstrap","managedWallet","managedAccount","managedAddress"],"sources":["../src/helpers/ensureModularPublishBootstrap.ts"],"sourcesContent":["import type { Account } from 'thirdweb/wallets'\nimport { ManagedAccountPublishError } from '../errors'\nimport { fromThirdwebAccount } from './adapters/thirdwebAccount'\nimport { getPublishChainName } from './chainConfig'\nimport { ensureManagedAccountEasConfigured } from './ensureManagedAccountEasConfigured'\nimport { getManagedAccountAdmin } from './managedAccountAdmin'\nimport { getClient, getManagedAccountWallet, syncPublishInAppAuthToken } from './thirdweb'\nimport { getPublishThirdwebChain } from './thirdwebChain'\n\n/**\n * Returns the account that sends interactive `multiPublish`: the user's managed (EIP-4337) smart\n * account. Its UserOps execute `multiPublish` on the account itself, a self-call the Seed\n * extension accepts; session keys and other non-admin callers are rejected with `Unauthorized`.\n *\n * Also checks the account's EAS pointer. Only pre-rollout accounts that report no EAS get\n * `setEas`, sent by the admin EOA.\n */\nexport async function ensureModularPublishBootstrap(managedAddress: string): Promise<Account> {\n syncPublishInAppAuthToken()\n const managedWallet = getManagedAccountWallet()\n await managedWallet.autoConnect({ client: getClient(), chain: getPublishThirdwebChain() })\n const managedAccount = managedWallet.getAccount()\n if (!managedAccount) {\n throw new ManagedAccountPublishError(\n `Could not connect the managed publishing account on ${getPublishChainName()}. Reconnect with the same sign-in method and try again.`,\n 'MANAGED_ACCOUNT_UNAVAILABLE',\n managedAddress,\n )\n }\n if (managedAccount.address.toLowerCase() !== managedAddress.toLowerCase()) {\n throw new ManagedAccountPublishError(\n `The connected managed account (${managedAccount.address}) is not the publishing account ${managedAddress}. Reconnect with the sign-in method that owns it.`,\n 'MANAGED_ACCOUNT_UNAVAILABLE',\n managedAddress,\n )\n }\n\n await ensureManagedAccountEasConfigured(managedAddress, async () =>\n fromThirdwebAccount(await getManagedAccountAdmin(managedAddress)),\n )\n return managedAccount\n}\n"],"mappings":";;;;;AAiBA,eAAsBW,EAA8B,GAA0C;CAC5F,EAA0B;CAC1B,IAAMC,IAAgBX,EAAwB;CAC9C,MAAMW,EAAc,YAAY;EAAE,QAAQN,EAAU;EAAG,OAAOF,EAAwB;CAAE,CAAC;CACzF,IAAMS,IAAiBD,EAAc,WAAW;CAChD,IAAI,CAACC,GACH,MAAM,IAAIV,EACR,uDAAuDI,EAAoB,EAAE,0DAC7E,+BACAO,CACF;CAEF,IAAID,EAAe,QAAQ,YAAY,MAAMC,EAAe,YAAY,GACtE,MAAM,IAAIX,EACR,kCAAkCU,EAAe,QAAQ,kCAAkCC,EAAe,oDAC1G,+BACAA,CACF;CAMF,OAHA,MAAMN,EAAkCM,GAAgB,YACtDT,EAAoB,MAAMI,EAAuBK,CAAc,CAAC,CAClE,GACOD;AACT"}
@@ -1,44 +1,44 @@
1
1
  import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
- import { It as t, M as n, N as r, V as i, a, dt as o, nt as s, p as c, rt as l, t as u, ut as d } from "./chainConfig-RhKIuGtN.js";
2
+ import { B as t, Ct as n, V as r, Xt as i, Y as a, a as o, gt as s, ht as c, p as l, t as u, wt as d } from "./chainConfig-BHTH_BGB.js";
3
3
  import { ethers as f } from "ethers";
4
4
  //#region src/helpers/ensureSmartWalletThenPublish.ts
5
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
6
  function g(e) {
7
- if (e) return e instanceof f.Wallet ? e : d(e) ? e.signer : o(e) ? e : s(e).signer;
7
+ if (e) return e instanceof f.Wallet ? e : n(e) ? e.signer : d(e) ? e : c(e).signer;
8
8
  }
9
- async function _(e, o, u, d) {
10
- let f = a(), p = await u();
9
+ async function _(e, n, u, d) {
10
+ let f = o(), p = await u();
11
11
  if (!p || !p.trim()) return { outcome: "no_address" };
12
12
  if (f.useModularExecutor) {
13
- let i = await r();
14
- if (!i) return {
13
+ let n = await r();
14
+ if (!n) return {
15
15
  outcome: "managed_not_ready",
16
- error: new t(m, "MANAGED_ACCOUNT_UNAVAILABLE")
16
+ error: new i(m, "MANAGED_ACCOUNT_UNAVAILABLE")
17
17
  };
18
18
  let a;
19
19
  try {
20
- a = await n(l());
20
+ a = await t(s());
21
21
  } catch (e) {
22
22
  return {
23
23
  outcome: "managed_not_ready",
24
- error: new t(h(), "MANAGED_ACCOUNT_UNAVAILABLE", void 0, e)
24
+ error: new i(h(), "MANAGED_ACCOUNT_UNAVAILABLE", void 0, e)
25
25
  };
26
26
  }
27
- let o = s(i);
27
+ let o = c(n);
28
28
  return {
29
29
  outcome: "started",
30
- started: c.createPublish(e, a, o, {
30
+ started: l.createPublish(e, a, o, {
31
31
  ...d,
32
32
  dataItemSigner: g(d?.dataItemSigner) ?? o.signer
33
33
  })
34
34
  };
35
35
  }
36
- let _ = await i(o ?? null);
36
+ let _ = await a(n ?? null);
37
37
  if ("address" in _) {
38
- let t = s(_.account);
38
+ let t = c(_.account);
39
39
  return {
40
40
  outcome: "started",
41
- started: c.createPublish(e, _.address, t, {
41
+ started: l.createPublish(e, _.address, t, {
42
42
  ...d,
43
43
  dataItemSigner: g(d?.dataItemSigner) ?? t.signer
44
44
  })
@@ -49,4 +49,4 @@ async function _(e, o, u, d) {
49
49
  //#endregion
50
50
  export { p as n, _ as t };
51
51
 
52
- //# sourceMappingURL=ensureSmartWalletThenPublish-C_iS5Wb-.js.map
52
+ //# sourceMappingURL=ensureSmartWalletThenPublish-hRJ9T0f8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ensureSmartWalletThenPublish-C_iS5Wb-.js","names":["__exportAll","ManagedAccountPublishError","getConnectedManagedAccountAddress","getConnectedModularAccount","resolveSmartWalletForPublish","isSeedSigner","fromThirdwebAccount","PublishManager","getPublishThirdwebChain","getPublishChainName","isPublishWallet","ensureSmartWalletThenPublish_exports","ensureSmartWalletThenPublish","MSG_NO_ACCOUNT_MODULAR","MSG_MANAGED_UNAVAILABLE","coerceDataItemSigner","signer","ethers","config","getPublishConfig","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 { PublishManager } from '../services/publishManager'\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 | { outcome: 'started'; started: import('./ensureWalletThenPublish').PublishStarted }\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)\n const started = PublishManager.createPublish(item, managedAddress, wallet, {\n ...options,\n dataItemSigner: coerceDataItemSigner(options?.dataItemSigner) ?? wallet.signer,\n })\n return { outcome: 'started', started }\n }\n\n const resolved = await resolveSmartWalletForPublish(activeAccount ?? null)\n if ('address' in resolved) {\n const wallet = fromThirdwebAccount(resolved.account)\n const started = PublishManager.createPublish(item, resolved.address, wallet, {\n ...options,\n dataItemSigner: coerceDataItemSigner(options?.dataItemSigner) ?? wallet.signer,\n })\n return { outcome: 'started', started }\n }\n return { outcome: 'needs_deploy' }\n}\n"],"mappings":";;;;sEAuBMa,IACJ,+GAEIC,UACJ,uDAAuDL,EAAoB,EAAE;AAE/E,SAASM,EACP,GACwC;CACxC,IAAKC,GAIL,OAHIA,aAAkBC,EAAO,SAAeD,IACxCN,EAAgBM,CAAM,IAAUA,EAAO,SACvCX,EAAaW,CAAM,IAAUA,IAC1BV,EAAoBU,CAAiB,CAAC,CAAC;AAChD;AAMA,eAAsBJ,EACpB,GACA,GACA,GACA,GACkC;CAClC,IAAMM,IAASC,EAAiB,GAC1BC,IAAU,MAAMC,EAAW;CACjC,IAAI,CAACD,KAAW,CAACA,EAAQ,KAAK,GAC5B,OAAO,EAAE,SAAS,aAAa;CAGjC,IAAIF,EAAO,oBAAoB;EAC7B,IAAMI,IAAiB,MAAMnB,EAA2B;EACxD,IAAI,CAACmB,GACH,OAAO;GACL,SAAS;GACT,OAAO,IAAIrB,EAA2BY,GAAwB,6BAA6B;EAC7F;EAGF,IAAIU;EACJ,IAAI;GACF,IAAiB,MAAMrB,EAAkCM,EAAwB,CAAC;EACpF,SAASgB,GAAO;GACd,OAAO;IACL,SAAS;IACT,OAAO,IAAIvB,EACTa,EAAwB,GACxB,+BACA,KAAA,GACAU,CACF;GACF;EACF;EAEA,IAAMC,IAASnB,EAAoBgB,CAAc;EAKjD,OAAO;GAAE,SAAS;GAAW,SAJbf,EAAe,cAAcmB,GAAMH,GAAgBE,GAAQ;IACzE,GAAGE;IACH,gBAAgBZ,EAAqBY,GAAS,cAAc,KAAKF,EAAO;GAC1E,CAC6B;EAAQ;CACvC;CAEA,IAAMG,IAAW,MAAMxB,EAA6ByB,KAAiB,IAAI;CACzE,IAAI,aAAaD,GAAU;EACzB,IAAMH,IAASnB,EAAoBsB,EAAS,OAAO;EAKnD,OAAO;GAAE,SAAS;GAAW,SAJbrB,EAAe,cAAcmB,GAAME,EAAS,SAASH,GAAQ;IAC3E,GAAGE;IACH,gBAAgBZ,EAAqBY,GAAS,cAAc,KAAKF,EAAO;GAC1E,CAC6B;EAAQ;CACvC;CACA,OAAO,EAAE,SAAS,eAAe;AACnC"}
1
+ {"version":3,"file":"ensureSmartWalletThenPublish-hRJ9T0f8.js","names":["__exportAll","getConnectedManagedAccountAddress","isPublishWallet","getConnectedModularAccount","ManagedAccountPublishError","resolveSmartWalletForPublish","getPublishConfig","getPublishThirdwebChain","fromThirdwebAccount","PublishManager","getPublishChainName","isSeedSigner","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 { PublishManager } from '../services/publishManager'\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 | { outcome: 'started'; started: import('./ensureWalletThenPublish').PublishStarted }\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)\n const started = PublishManager.createPublish(item, managedAddress, wallet, {\n ...options,\n dataItemSigner: coerceDataItemSigner(options?.dataItemSigner) ?? wallet.signer,\n })\n return { outcome: 'started', started }\n }\n\n const resolved = await resolveSmartWalletForPublish(activeAccount ?? null)\n if ('address' in resolved) {\n const wallet = fromThirdwebAccount(resolved.account)\n const started = PublishManager.createPublish(item, resolved.address, wallet, {\n ...options,\n dataItemSigner: coerceDataItemSigner(options?.dataItemSigner) ?? wallet.signer,\n })\n return { outcome: 'started', started }\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,IACxCf,EAAgBe,CAAM,IAAUA,EAAO,SACvCN,EAAaM,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,MAAMnB,EAA2B;EACxD,IAAI,CAACmB,GACH,OAAO;GACL,SAAS;GACT,OAAO,IAAIlB,EAA2BU,GAAwB,6BAA6B;EAC7F;EAGF,IAAIS;EACJ,IAAI;GACF,IAAiB,MAAMtB,EAAkCM,EAAwB,CAAC;EACpF,SAASiB,GAAO;GACd,OAAO;IACL,SAAS;IACT,OAAO,IAAIpB,EACTW,EAAwB,GACxB,+BACA,KAAA,GACAS,CACF;GACF;EACF;EAEA,IAAMC,IAASjB,EAAoBc,CAAc;EAKjD,OAAO;GAAE,SAAS;GAAW,SAJbb,EAAe,cAAciB,GAAMH,GAAgBE,GAAQ;IACzE,GAAGE;IACH,gBAAgBX,EAAqBW,GAAS,cAAc,KAAKF,EAAO;GAC1E,CAC6B;EAAQ;CACvC;CAEA,IAAMG,IAAW,MAAMvB,EAA6BwB,KAAiB,IAAI;CACzE,IAAI,aAAaD,GAAU;EACzB,IAAMH,IAASjB,EAAoBoB,EAAS,OAAO;EAKnD,OAAO;GAAE,SAAS;GAAW,SAJbnB,EAAe,cAAciB,GAAME,EAAS,SAASH,GAAQ;IAC3E,GAAGE;IACH,gBAAgBX,EAAqBW,GAAS,cAAc,KAAKF,EAAO;GAC1E,CAC6B;EAAQ;CACvC;CACA,OAAO,EAAE,SAAS,eAAe;AACnC"}
@@ -139,6 +139,48 @@ export declare const easAbi: readonly [{
139
139
  }];
140
140
  }];
141
141
  readonly outputs: readonly [];
142
+ }, {
143
+ readonly type: "function";
144
+ readonly name: "getAttestation";
145
+ readonly stateMutability: "view";
146
+ readonly inputs: readonly [{
147
+ readonly name: "uid";
148
+ readonly type: "bytes32";
149
+ }];
150
+ readonly outputs: readonly [{
151
+ readonly type: "tuple";
152
+ readonly components: readonly [{
153
+ readonly name: "uid";
154
+ readonly type: "bytes32";
155
+ }, {
156
+ readonly name: "schema";
157
+ readonly type: "bytes32";
158
+ }, {
159
+ readonly name: "time";
160
+ readonly type: "uint64";
161
+ }, {
162
+ readonly name: "expirationTime";
163
+ readonly type: "uint64";
164
+ }, {
165
+ readonly name: "revocationTime";
166
+ readonly type: "uint64";
167
+ }, {
168
+ readonly name: "refUID";
169
+ readonly type: "bytes32";
170
+ }, {
171
+ readonly name: "recipient";
172
+ readonly type: "address";
173
+ }, {
174
+ readonly name: "attester";
175
+ readonly type: "address";
176
+ }, {
177
+ readonly name: "revocable";
178
+ readonly type: "bool";
179
+ }, {
180
+ readonly name: "data";
181
+ readonly type: "bytes";
182
+ }];
183
+ }];
142
184
  }, {
143
185
  readonly type: "event";
144
186
  readonly name: "Attested";
@@ -1 +1 @@
1
- {"version":3,"file":"eas.d.ts","sourceRoot":"","sources":["../../../src/helpers/abi/eas.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWjB,CAAA;AAWV,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2ET,CAAA"}
1
+ {"version":3,"file":"eas.d.ts","sourceRoot":"","sources":["../../../src/helpers/abi/eas.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWjB,CAAA;AAWV,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkGT,CAAA"}
@@ -4,7 +4,10 @@ import { type SeedSigner, type SeedTxSender } from '../seedSigner';
4
4
  export type CreatePermissionlessTxSenderOptions = {
5
5
  signer: SeedSigner;
6
6
  bundlerUrl: string;
7
+ /** Sponsoring paymaster. Defaults to `bundlerUrl`. */
7
8
  paymasterUrl?: string;
9
+ /** `false` sends without a paymaster: the account pays its own gas. Default `true`. */
10
+ sponsored?: boolean;
8
11
  };
9
12
  /**
10
13
  * Throws when the bundler lists its EntryPoints and v0.8 is not among them (e.g. a local twin's
@@ -14,7 +17,8 @@ export type CreatePermissionlessTxSenderOptions = {
14
17
  */
15
18
  export declare function assertBundlerSupportsEntryPoint08(bundlerUrl: string): Promise<void>;
16
19
  /**
17
- * Sponsored EIP-7702 `SeedTxSender` via permissionless `to7702SimpleSmartAccount`.
20
+ * EIP-7702 `SeedTxSender` via permissionless `to7702SimpleSmartAccount`, sponsored by a paymaster
21
+ * unless `sponsored` is false.
18
22
  * @throws when `bundlerUrl` reports no EntryPoint v0.8 support
19
23
  */
20
24
  export declare function createPermissionlessTxSender(options: CreatePermissionlessTxSenderOptions): Promise<SeedTxSender>;
@@ -1 +1 @@
1
- {"version":3,"file":"permissionlessTxSender.d.ts","sourceRoot":"","sources":["../../../src/helpers/adapters/permissionlessTxSender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,GAAG,EAAiC,MAAM,MAAM,CAAA;AACvE,OAAO,EAA4B,KAAK,IAAI,EAAE,MAAM,MAAM,CAAA;AAK1D,OAAO,EAEL,KAAK,UAAU,EAEf,KAAK,YAAY,EAClB,MAAM,eAAe,CAAA;AAKtB,MAAM,MAAM,mCAAmC,GAAG;IAChD,MAAM,EAAE,UAAU,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAuBD;;;;;GAKG;AACH,wBAAsB,iCAAiC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBzF;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,mCAAmC,GAC3C,OAAO,CAAC,YAAY,CAAC,CA6DvB;AAED,KAAK,iBAAiB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE;QAAE,eAAe,EAAE,IAAI,CAAA;KAAE,CAAA;CAAE,CAAA;AAElG;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,CAYtF"}
1
+ {"version":3,"file":"permissionlessTxSender.d.ts","sourceRoot":"","sources":["../../../src/helpers/adapters/permissionlessTxSender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,GAAG,EAAiC,MAAM,MAAM,CAAA;AACvE,OAAO,EAA4B,KAAK,IAAI,EAAE,MAAM,MAAM,CAAA;AAK1D,OAAO,EAEL,KAAK,UAAU,EAEf,KAAK,YAAY,EAClB,MAAM,eAAe,CAAA;AAKtB,MAAM,MAAM,mCAAmC,GAAG;IAChD,MAAM,EAAE,UAAU,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uFAAuF;IACvF,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAuBD;;;;;GAKG;AACH,wBAAsB,iCAAiC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBzF;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,mCAAmC,GAC3C,OAAO,CAAC,YAAY,CAAC,CA6DvB;AAED,KAAK,iBAAiB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE;QAAE,eAAe,EAAE,IAAI,CAAA;KAAE,CAAA;CAAE,CAAA;AAElG;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,CAYtF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ensureWalletThenPublish.d.ts","sourceRoot":"","sources":["../../src/helpers/ensureWalletThenPublish.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAMrD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AAE3D;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,CAAA;AAErF,MAAM,MAAM,6BAA6B,GACrC;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GAC/C;IAAE,OAAO,EAAE,YAAY,CAAA;CAAE,GACzB;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,GACxB;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,GAC3B;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,0BAA0B,CAAA;CAAE,CAAA;AAYvE;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EACf,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,6BAA6B,CAAC,CAyCxC"}
1
+ {"version":3,"file":"ensureWalletThenPublish.d.ts","sourceRoot":"","sources":["../../src/helpers/ensureWalletThenPublish.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAOrD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AAE3D;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,CAAA;AAErF,MAAM,MAAM,6BAA6B,GACrC;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GAC/C;IAAE,OAAO,EAAE,YAAY,CAAA;CAAE,GACzB;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,GACxB;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,GAC3B;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,0BAA0B,CAAA;CAAE,CAAA;AAYvE;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EACf,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,6BAA6B,CAAC,CA2CxC"}
@@ -4,6 +4,11 @@ export type PublishWalletSession = PublishWallet & {
4
4
  ownedAddresses?: string[];
5
5
  /** Preferred publisher address for new seeds (defaults to signer.address). */
6
6
  publisherAddress?: string;
7
+ /**
8
+ * Admin (EOA) of the smart account this session publishes from, when there is one. Lets publish
9
+ * tell an undeployed smart account from an EOA, which both have no bytecode.
10
+ */
11
+ adminAddress?: string;
7
12
  };
8
13
  /**
9
14
  * Register the active publish wallet (EIP-1193, ethers, Thirdweb adapter, etc.).
@@ -1 +1 @@
1
- {"version":3,"file":"publishWalletRegistry.d.ts","sourceRoot":"","sources":["../../src/helpers/publishWalletRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3E,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAWD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAChC,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,wBAAgB,gBAAgB,IAAI,oBAAoB,GAAG,IAAI,CAE9D;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,sDAAsD;AACtD,wBAAgB,mBAAmB,IAAI,UAAU,GAAG,IAAI,CAEvD;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,YAAY,GAAG,IAAI,CAE3D"}
1
+ {"version":3,"file":"publishWalletRegistry.d.ts","sourceRoot":"","sources":["../../src/helpers/publishWalletRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3E,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAWD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAChC,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,wBAAgB,gBAAgB,IAAI,oBAAoB,GAAG,IAAI,CAE9D;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,sDAAsD;AACtD,wBAAgB,mBAAmB,IAAI,UAAU,GAAG,IAAI,CAEvD;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,YAAY,GAAG,IAAI,CAE3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolveRevokeAccount.d.ts","sourceRoot":"","sources":["../../src/helpers/resolveRevokeAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAY/C;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB,GAAG,OAAO,CAAC,OAAO,CAAC,CAyDnB"}
1
+ {"version":3,"file":"resolveRevokeAccount.d.ts","sourceRoot":"","sources":["../../src/helpers/resolveRevokeAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAa/C;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB,GAAG,OAAO,CAAC,OAAO,CAAC,CA2DnB"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Minimal Turbo (ArDrive) client for user-paid storage: balances, prices, and uploads of data
3
+ * items the user's EVM key already signed. Raw HTTP rather than @ardrive/turbo-sdk, which would
4
+ * bring its own signers and a large dependency tree for four calls.
5
+ */
6
+ export type TurboEndpoints = {
7
+ uploadUrl: string;
8
+ paymentUrl: string;
9
+ };
10
+ /** Turbo credits are denominated in winc (winston credits), like AR winston. */
11
+ export declare class InsufficientStorageCreditsError extends Error {
12
+ readonly address: string;
13
+ readonly requiredWinc: bigint | undefined;
14
+ readonly balanceWinc: bigint | undefined;
15
+ constructor(params: {
16
+ address: string;
17
+ requiredWinc?: bigint;
18
+ balanceWinc?: bigint;
19
+ detail?: string;
20
+ });
21
+ }
22
+ /** Spendable winc for an EVM address. An address Turbo has never seen has 0. */
23
+ export declare function getTurboBalanceWinc(endpoints: TurboEndpoints, address: string): Promise<bigint>;
24
+ /** winc Turbo charges to store `bytes`. */
25
+ export declare function getTurboPriceWinc(endpoints: TurboEndpoints, bytes: number): Promise<bigint>;
26
+ /** Largest data item Turbo stores for free, from `GET /v1/info` (0 when it doesn't say). */
27
+ export declare function getTurboFreeUploadLimitBytes(endpoints: TurboEndpoints): Promise<number>;
28
+ export type TurboUploadReceipt = {
29
+ id: string;
30
+ owner?: string;
31
+ winc?: string;
32
+ };
33
+ /**
34
+ * POSTs one signed (signature type 3, Ethereum) data item. Turbo charges the signer, or first the
35
+ * `paidBy` addresses' shared credits.
36
+ * @throws InsufficientStorageCreditsError on HTTP 402
37
+ */
38
+ export declare function uploadDataItemToTurbo(endpoints: TurboEndpoints, raw: Uint8Array, options: {
39
+ signerAddress: string;
40
+ paidBy?: string[];
41
+ }): Promise<TurboUploadReceipt>;
42
+ /** HTTP status of `GET /v1/tx/:id/status`: 200 when Turbo has the item, 404 when it doesn't. */
43
+ export declare function getTurboDataItemStatus(endpoints: TurboEndpoints, id: string): Promise<number>;
44
+ /**
45
+ * Throws {@link InsufficientStorageCreditsError} when `address` can't pay for `itemSizes`, before
46
+ * anything is uploaded. Items at or under Turbo's free size cost nothing. Shared credits
47
+ * (`paidBy`) aren't counted, so callers skip this check when `paidBy` is set.
48
+ */
49
+ export declare function assertTurboCanPay(endpoints: TurboEndpoints, address: string, itemSizes: number[]): Promise<void>;
50
+ /**
51
+ * EVM address that signed an ANS-104 data item with signature type 3 (Ethereum): the owner
52
+ * field is the uncompressed secp256k1 public key. Returns undefined for other signature types.
53
+ */
54
+ export declare function ethereumSignerOfDataItem(raw: Uint8Array): string | undefined;
55
+ //# sourceMappingURL=turbo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turbo.d.ts","sourceRoot":"","sources":["../../src/helpers/turbo.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,MAAM,cAAc,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtE,gFAAgF;AAChF,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;gBAE5B,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;CAetG;AAcD,gFAAgF;AAChF,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOrG;AAED,2CAA2C;AAC3C,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIjG;AAED,4FAA4F;AAC5F,wBAAsB,4BAA4B,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ7F;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9E;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACpD,OAAO,CAAC,kBAAkB,CAAC,CAY7B;AAED,gGAAgG;AAChG,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInG;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAM5E"}
@@ -26,7 +26,9 @@ export declare function uploadNetworkErrorMessage(technicalMessage?: string | nu
26
26
  * POST to the upload API. Uses main-process proxy in Electron to avoid CORS;
27
27
  * falls back to fetch when not in Electron (e.g. browser tests).
28
28
  */
29
- export declare function postUploadArweaveStart(url: string, formData: FormData, uploadApiBaseUrl: string): Promise<PostUploadResult>;
29
+ export declare function postUploadArweaveStart(url: string, formData: FormData, uploadApiBaseUrl: string,
30
+ /** Extra request headers, e.g. the publish authorization token. */
31
+ headers?: Record<string, string>): Promise<PostUploadResult>;
30
32
  /**
31
33
  * POST to Arweave bundler for instant uploads. Same FormData format as upload API.
32
34
  * Uses main-process proxy in Electron to avoid CORS.
@@ -1 +1 @@
1
- {"version":3,"file":"uploadApi.d.ts","sourceRoot":"","sources":["../../src/helpers/uploadApi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAeD;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,cAAc,EAAE,CAAC,CAmB3B;AAED,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,MAAM,CAWR;AAED,4EAA4E;AAC5E,wBAAgB,yBAAyB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAelF;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAY3B;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAY3B"}
1
+ {"version":3,"file":"uploadApi.d.ts","sourceRoot":"","sources":["../../src/helpers/uploadApi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAeD;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,cAAc,EAAE,CAAC,CAmB3B;AAED,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,MAAM,CAWR;AAED,4EAA4E;AAC5E,wBAAgB,yBAAyB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAelF;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,MAAM;AACxB,mEAAmE;AACnE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACnC,OAAO,CAAC,gBAAgB,CAAC,CAc3B;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAY3B"}