@bananapus/nana-sdk-react 53.0.0 → 54.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,5 +16,5 @@ export * from "./useEtherPrice";
16
16
  export * from "./ruleset/useJBRuleset";
17
17
  export * from "./ruleset/useResolveDataHook";
18
18
  export * from "./ruleset/useJBUpcomingRuleset";
19
- export * from "./heldWrite";
19
+ export * from "@bananapus/nana-sdk-core/review/react";
20
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,81 @@
1
1
  "use client";
2
2
  "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
20
+
21
+ // src/index.ts
22
+ var index_exports = {};
23
+ __export(index_exports, {
24
+ API: () => API,
25
+ DASHBOARD: () => DASHBOARD,
26
+ DEFAULT_ETHER_PRICE_ENDPOINT: () => DEFAULT_ETHER_PRICE_ENDPOINT,
27
+ DynamicContract: () => DynamicContract,
28
+ JBChainContext: () => JBChainContext,
29
+ JBChainProvider: () => JBChainProvider,
30
+ JBContractContext: () => JBContractContext,
31
+ JBContractProvider: () => JBContractProvider,
32
+ JBDataHookContext: () => JBDataHookContext,
33
+ JBDataHookProvider: () => JBDataHookProvider,
34
+ JBProjectMetadataContext: () => JBProjectMetadataContext,
35
+ JBProjectMetadataProvider: () => JBProjectMetadataProvider,
36
+ JBProjectProvider: () => JBProjectProvider,
37
+ JBRulesetContext: () => JBRulesetContext,
38
+ JBRulesetProvider: () => JBRulesetProvider,
39
+ JBTerminalContext: () => JBTerminalContext,
40
+ JBTerminalProvider: () => JBTerminalProvider,
41
+ JBTokenContext: () => JBTokenContext,
42
+ JBTokenProvider: () => JBTokenProvider,
43
+ NativeTokenValue: () => NativeTokenValue,
44
+ getBendystrawUrl: () => getBendystrawUrl,
45
+ useBendystrawQuery: () => useBendystrawQuery,
46
+ useChain: () => useChain,
47
+ useEtherPrice: () => useEtherPrice,
48
+ useFind721DataHook: () => useFind721DataHook,
49
+ useGetRelayrTxBundle: () => useGetRelayrTxBundle,
50
+ useGetRelayrTxQuote: () => useGetRelayrTxQuote,
51
+ useJBChainId: () => useJBChainId,
52
+ useJBContractContext: () => useJBContractContext,
53
+ useJBDataHookContext: () => useJBDataHookContext,
54
+ useJBProject: () => useJBProject,
55
+ useJBProjectId: () => useJBProjectId,
56
+ useJBProjectMetadataContext: () => useJBProjectMetadataContext,
57
+ useJBRuleset: () => useJBRuleset,
58
+ useJBRulesetContext: () => useJBRulesetContext,
59
+ useJBRulesetMetadata: () => useJBRulesetMetadata,
60
+ useJBTerminalContext: () => useJBTerminalContext,
61
+ useJBTokenContext: () => useJBTokenContext,
62
+ useJBUpcomingRuleset: () => useJBUpcomingRuleset,
63
+ useNativeTokenSurplus: () => useNativeTokenSurplus,
64
+ useNativeTokenSymbol: () => useNativeTokenSymbol,
65
+ useOwnedShopItems: () => useOwnedShopItems,
66
+ usePreparePayMetadata: () => usePreparePayMetadata,
67
+ useProjectMetadata: () => useProjectMetadata,
68
+ useResolveDataHook: () => useResolveDataHook,
69
+ useSendRelayrTx: () => useSendRelayrTx,
70
+ useShopPurchases: () => useShopPurchases,
71
+ useSuckers: () => useSuckers,
72
+ useSuckersCashOutQuote: () => useSuckersCashOutQuote,
73
+ useSuckersNativeTokenBalance: () => useSuckersNativeTokenBalance,
74
+ useSuckersNativeTokenSurplus: () => useSuckersNativeTokenSurplus,
75
+ useSuckersTokenCashOutValue: () => useSuckersTokenCashOutValue,
76
+ useSuckersUserTokenBalance: () => useSuckersUserTokenBalance,
77
+ useTokenCashOutQuoteEth: () => useTokenCashOutQuoteEth
78
+ });
3
79
 
4
80
  // src/components/NativeTokenValue.tsx
5
81
  import { NATIVE_TOKEN_DECIMALS, formatUnits } from "@bananapus/nana-sdk-core";
@@ -68,12 +144,36 @@ import {
68
144
  } from "@bananapus/nana-sdk-core";
69
145
  import {
70
146
  createContext as createContext8,
71
- useCallback as useCallback2,
147
+ useCallback,
72
148
  useContext as useContext8,
73
- useMemo as useMemo8
149
+ useMemo as useMemo5
74
150
  } from "react";
75
151
  import { isAddressEqual as isAddressEqual4, zeroAddress as zeroAddress4 } from "viem";
76
152
 
153
+ // src/hooks/index.ts
154
+ var hooks_exports = {};
155
+ __export(hooks_exports, {
156
+ DEFAULT_ETHER_PRICE_ENDPOINT: () => DEFAULT_ETHER_PRICE_ENDPOINT,
157
+ useChain: () => useChain,
158
+ useEtherPrice: () => useEtherPrice,
159
+ useFind721DataHook: () => useFind721DataHook,
160
+ useJBRuleset: () => useJBRuleset,
161
+ useJBUpcomingRuleset: () => useJBUpcomingRuleset,
162
+ useNativeTokenSurplus: () => useNativeTokenSurplus,
163
+ useNativeTokenSymbol: () => useNativeTokenSymbol,
164
+ useOwnedShopItems: () => useOwnedShopItems,
165
+ usePreparePayMetadata: () => usePreparePayMetadata,
166
+ useResolveDataHook: () => useResolveDataHook,
167
+ useShopPurchases: () => useShopPurchases,
168
+ useSuckers: () => useSuckers,
169
+ useSuckersCashOutQuote: () => useSuckersCashOutQuote,
170
+ useSuckersNativeTokenBalance: () => useSuckersNativeTokenBalance,
171
+ useSuckersNativeTokenSurplus: () => useSuckersNativeTokenSurplus,
172
+ useSuckersTokenCashOutValue: () => useSuckersTokenCashOutValue,
173
+ useSuckersUserTokenBalance: () => useSuckersUserTokenBalance,
174
+ useTokenCashOutQuoteEth: () => useTokenCashOutQuoteEth
175
+ });
176
+
77
177
  // src/hooks/usePreparePayMetadata.ts
78
178
  import {
79
179
  DEFAULT_ALLOW_OVERSPENDING,
@@ -4102,346 +4202,13 @@ function useJBUpcomingRuleset({
4102
4202
  };
4103
4203
  }
4104
4204
 
4105
- // src/hooks/heldWrite/HeldWritesNotice.tsx
4106
- import { HELD_RELEASE_LABEL } from "@bananapus/nana-sdk-core/review";
4107
- import { useState } from "react";
4108
- import { jsx as jsx10, jsxs as jsxs2 } from "react/jsx-runtime";
4109
- function HeldWritesNotice({
4110
- items,
4111
- className
4112
- }) {
4113
- const [busy, setBusy] = useState(null);
4114
- const shown = items.filter(({ view }) => view.line);
4115
- if (!shown.length) return null;
4116
- return /* @__PURE__ */ jsx10("div", { role: "status", className, children: shown.map(({ key, label, view, release }) => /* @__PURE__ */ jsxs2("div", { "data-phase": view.phase, children: [
4117
- label ? /* @__PURE__ */ jsx10("p", { children: label }) : null,
4118
- /* @__PURE__ */ jsx10("p", { children: view.line }),
4119
- view.warning ? /* @__PURE__ */ jsx10("p", { children: view.warning }) : null,
4120
- view.notice ? /* @__PURE__ */ jsx10("p", { children: view.notice }) : null,
4121
- view.exit ? /* @__PURE__ */ jsx10(
4122
- "button",
4123
- {
4124
- type: "button",
4125
- disabled: busy === key,
4126
- onClick: () => {
4127
- setBusy(key);
4128
- void release().finally(() => setBusy(null));
4129
- },
4130
- children: HELD_RELEASE_LABEL
4131
- }
4132
- ) : null
4133
- ] }, key)) });
4134
- }
4135
-
4136
- // src/hooks/heldWrite/useHeldWrite.ts
4137
- import {
4138
- createHeldWriteView,
4139
- HELD_EXIT_LABEL,
4140
- HELD_SEND_AGAIN_LABEL
4141
- } from "@bananapus/nana-sdk-core/review";
4142
- import { useEffect, useMemo as useMemo5, useRef, useSyncExternalStore } from "react";
4143
- var NO_CALL = {
4144
- to: "0x0000000000000000000000000000000000000000",
4145
- data: "0x"
4146
- };
4147
- var IDLE = {
4148
- phase: "clear",
4149
- state: null,
4150
- line: null,
4151
- exit: false,
4152
- adopting: false
4153
- };
4154
- var none = () => () => {
4155
- };
4156
- var keyOf = (value) => JSON.stringify(
4157
- value,
4158
- (_, field) => typeof field === "bigint" ? `${field}n` : field
4159
- );
4160
- var idle = () => IDLE;
4161
- function useHeldWrite(options) {
4162
- const {
4163
- hold,
4164
- chainId,
4165
- account,
4166
- safe = false,
4167
- namespace,
4168
- client,
4169
- pollMs
4170
- } = options;
4171
- const callKey = keyOf(options.call ?? null);
4172
- const legacyKey = keyOf(options.legacy ?? null);
4173
- const latest = useRef(options);
4174
- latest.current = options;
4175
- const handle = useMemo5(() => {
4176
- const call = latest.current.call;
4177
- if (!call && !namespace) return void 0;
4178
- const legacy = latest.current.legacy;
4179
- return hold.open(
4180
- {
4181
- chainId,
4182
- account,
4183
- safe,
4184
- call: call ?? NO_CALL,
4185
- ...namespace ? { namespace } : {}
4186
- },
4187
- legacy ? { legacy } : void 0
4188
- );
4189
- }, [hold, chainId, account, safe, namespace, callKey, legacyKey]);
4190
- const adopts = !!options.adopt;
4191
- const active = useRef(void 0);
4192
- const view = useMemo5(() => {
4193
- if (!handle || !client) return void 0;
4194
- const own = (callback) => (...args) => {
4195
- if (active.current === created) callback(...args);
4196
- };
4197
- const created = createHeldWriteView(handle, {
4198
- client,
4199
- pollMs,
4200
- onSettled: own(
4201
- (settled, receipt) => latest.current.onSettled?.(settled, receipt)
4202
- ),
4203
- onReleased: own((by) => latest.current.onReleased?.(by)),
4204
- onAdopted: own((state) => latest.current.onAdopted?.(state)),
4205
- // A view made with a provider: the app's current one (a removed one
4206
- // makes a new view, and this one stops).
4207
- ...adopts ? { adopt: () => latest.current.adopt() } : {}
4208
- });
4209
- return created;
4210
- }, [handle, client, pollMs, adopts]);
4211
- useEffect(() => {
4212
- if (!view) return;
4213
- active.current = view;
4214
- const stop = view.start();
4215
- return () => {
4216
- if (active.current === view) active.current = void 0;
4217
- stop();
4218
- };
4219
- }, [view]);
4220
- const shown = useSyncExternalStore(
4221
- view?.subscribe ?? none,
4222
- view?.get ?? idle,
4223
- view?.get ?? idle
4224
- );
4225
- return {
4226
- ...shown,
4227
- exitAction: shown.exit && view ? { label: HELD_EXIT_LABEL, run: view.exit } : null,
4228
- sendAgainAction: shown.phase === "succeeded" && view ? { label: HELD_SEND_AGAIN_LABEL, run: view.acknowledge } : null,
4229
- send: (run) => {
4230
- if (!view)
4231
- return Promise.reject(
4232
- new Error("Connect a wallet and build the call before sending.")
4233
- );
4234
- if (!!latest.current.adopt !== adopts)
4235
- return Promise.reject(
4236
- new Error(
4237
- "Saved transactions are still being checked. Try again in a moment."
4238
- )
4239
- );
4240
- return view.send(run);
4241
- },
4242
- check: () => view ? view.check() : Promise.resolve(IDLE),
4243
- handle
4244
- };
4245
- }
4246
-
4247
- // src/hooks/heldWrite/useHeldWrites.ts
4248
- import {
4249
- createHeldWriteView as createHeldWriteView2
4250
- } from "@bananapus/nana-sdk-core/review";
4251
- import { useEffect as useEffect2, useMemo as useMemo6, useState as useState2, useSyncExternalStore as useSyncExternalStore2 } from "react";
4252
- function useHeldViews(entries, client, pollMs) {
4253
- const views = useMemo6(
4254
- () => client ? entries.map((entry) => ({
4255
- entry,
4256
- view: createHeldWriteView2(entry.handle, { client, pollMs })
4257
- })) : [],
4258
- [entries, client, pollMs]
4259
- );
4260
- useEffect2(() => {
4261
- const stops = views.map(({ view }) => view.start());
4262
- return () => stops.forEach((stop) => stop());
4263
- }, [views]);
4264
- const store = useMemo6(() => feed(views.map(({ view }) => view)), [views]);
4265
- const shown = useSyncExternalStore2(store.subscribe, store.get, store.get);
4266
- return views.map(({ entry, view }, index) => ({
4267
- key: entry.key,
4268
- ...entry.label ? { label: entry.label } : {},
4269
- view: shown[index],
4270
- release: view.exit
4271
- })).filter(({ view }) => view.phase !== "clear");
4272
- }
4273
- function feed(views) {
4274
- let snapshot = views.map((view) => view.get());
4275
- return {
4276
- subscribe(listener) {
4277
- const stops = views.map(
4278
- (view) => view.subscribe(() => {
4279
- snapshot = views.map((each) => each.get());
4280
- listener();
4281
- })
4282
- );
4283
- return () => stops.forEach((stop) => stop());
4284
- },
4285
- get: () => snapshot
4286
- };
4287
- }
4288
- function useHeldIntents({
4289
- hold,
4290
- chainId,
4291
- account,
4292
- client,
4293
- intents,
4294
- pollMs
4295
- }) {
4296
- const intentsKey = JSON.stringify(intents);
4297
- const entries = useMemo6(
4298
- () => account ? intents.map(({ namespace, label }) => ({
4299
- key: namespace,
4300
- label,
4301
- handle: hold.open({
4302
- chainId,
4303
- account,
4304
- safe: false,
4305
- namespace,
4306
- call: { to: account, data: "0x" }
4307
- })
4308
- })) : [],
4309
- // The intents key stands for the intents.
4310
- [hold, chainId, account, intentsKey]
4311
- );
4312
- return useHeldViews(entries, client, pollMs);
4313
- }
4314
- function useHeldWrites({
4315
- hold,
4316
- chainId,
4317
- account,
4318
- client,
4319
- label,
4320
- pollMs = 3e4
4321
- }) {
4322
- const [generation, setGeneration] = useState2(0);
4323
- useEffect2(() => {
4324
- const again = () => setGeneration((value) => value + 1);
4325
- globalThis.addEventListener?.("storage", again);
4326
- const timer = setInterval(again, pollMs);
4327
- return () => {
4328
- globalThis.removeEventListener?.("storage", again);
4329
- clearInterval(timer);
4330
- };
4331
- }, [pollMs]);
4332
- const listed = useMemo6(
4333
- () => account ? hold.list({ account, chainId }) : [],
4334
- [hold, account, chainId, generation]
4335
- );
4336
- const listedKey = listed.map(({ key, record }) => `${key}:${record.id}`).join("|");
4337
- const entries = useMemo6(
4338
- () => listed.map(({ key, record, handle }) => ({
4339
- key,
4340
- label: label?.(record),
4341
- handle
4342
- })),
4343
- // The listed key stands for the list.
4344
- [listedKey]
4345
- );
4346
- return useHeldViews(entries, client, pollMs);
4347
- }
4348
-
4349
- // src/hooks/heldWrite/useSavedAttempt.ts
4350
- import {
4351
- checkedItLabel,
4352
- SAVED_ATTEMPT_CONTINUE_ANYWAY_LABEL,
4353
- SAVED_ATTEMPT_UNREADABLE_LINE
4354
- } from "@bananapus/nana-sdk-core/review";
4355
- import {
4356
- useCallback,
4357
- useEffect as useEffect3,
4358
- useLayoutEffect,
4359
- useMemo as useMemo7,
4360
- useRef as useRef2,
4361
- useState as useState3
4362
- } from "react";
4363
- var keyOf2 = (attempt) => attempt ? JSON.stringify(
4364
- { ...attempt, authenticate: void 0 },
4365
- (_, value) => typeof value === "bigint" ? value.toString() : value
4366
- ) : null;
4367
- function useSavedAttempt(options) {
4368
- const { recovery, client, checkNext } = options;
4369
- const key = keyOf2(options.attempt);
4370
- const attempt = options.attempt;
4371
- const latest = useRef2(attempt);
4372
- latest.current = attempt;
4373
- const lifecycle = useMemo7(
4374
- () => ({ attempt, recovery, client, request: 0 }),
4375
- // The key stands for the attempt.
4376
- [key, recovery, client]
4377
- );
4378
- const current = (of) => mounted.current && rendered.current === of;
4379
- const rendered = useRef2(void 0);
4380
- rendered.current = lifecycle;
4381
- const mounted = useRef2(false);
4382
- useLayoutEffect(() => {
4383
- mounted.current = true;
4384
- return () => {
4385
- mounted.current = false;
4386
- };
4387
- }, []);
4388
- const [shown, setShown] = useState3({ outcome: null, recovering: false });
4389
- const [unreadable, setUnreadable] = useState3();
4390
- const recover = useCallback(async () => {
4391
- const { recovery: recovery2, client: client2 } = lifecycle;
4392
- const attempt2 = latest.current;
4393
- if (!attempt2 || !client2 || !current(lifecycle)) return null;
4394
- const request = ++lifecycle.request;
4395
- setShown((now) => ({
4396
- of: lifecycle,
4397
- outcome: now.of === lifecycle ? now.outcome : null,
4398
- recovering: true
4399
- }));
4400
- const outcome2 = await recovery2.recover(attempt2, client2);
4401
- if (!current(lifecycle) || lifecycle.request !== request) return null;
4402
- setShown({ of: lifecycle, outcome: outcome2, recovering: false });
4403
- return outcome2;
4404
- }, [lifecycle]);
4405
- useEffect3(() => {
4406
- void recover();
4407
- }, [recover]);
4408
- const retire = useCallback(
4409
- async (reason) => {
4410
- const { recovery: recovery2 } = lifecycle;
4411
- const attempt2 = latest.current;
4412
- if (!attempt2 || !current(lifecycle)) return { retired: false };
4413
- const retired = await recovery2.retire(attempt2, reason);
4414
- if (!current(lifecycle)) return retired;
4415
- if (!retired.retired && retired.reason === "unreadable")
4416
- setUnreadable(lifecycle);
4417
- await recover();
4418
- return retired;
4419
- },
4420
- [lifecycle, recover]
4421
- );
4422
- const outcome = shown.of === lifecycle ? shown.outcome : null;
4423
- return {
4424
- outcome,
4425
- recovering: shown.of === lifecycle && shown.recovering,
4426
- recover,
4427
- checkAction: outcome?.status === "check" ? {
4428
- line: outcome.line,
4429
- warning: outcome.warning,
4430
- label: checkedItLabel(checkNext),
4431
- run: () => retire({ by: "check", outcome })
4432
- } : null,
4433
- unreadableAction: outcome?.status === "check" && unreadable === lifecycle ? {
4434
- line: SAVED_ATTEMPT_UNREADABLE_LINE,
4435
- label: SAVED_ATTEMPT_CONTINUE_ANYWAY_LABEL,
4436
- run: () => retire({ by: "check", outcome, force: "unreadable" })
4437
- } : null,
4438
- retire
4439
- };
4440
- }
4205
+ // src/hooks/index.ts
4206
+ __reExport(hooks_exports, react_star);
4207
+ import * as react_star from "@bananapus/nana-sdk-core/review/react";
4441
4208
 
4442
4209
  // src/contexts/JBContractContext/JBContractContext.tsx
4443
4210
  import { useReadContract as useReadContract11 } from "wagmi";
4444
- import { jsx as jsx11 } from "react/jsx-runtime";
4211
+ import { jsx as jsx10 } from "react/jsx-runtime";
4445
4212
  function outsideProvider() {
4446
4213
  throw new Error(
4447
4214
  "JBContractContext was read outside a JBContractProvider. Wrap the tree in JBProjectProvider or JBContractProvider."
@@ -4501,7 +4268,7 @@ var JBContractProvider = ({
4501
4268
  version
4502
4269
  }) => {
4503
4270
  const chainId = useJBChainId();
4504
- const enabled = useCallback2(
4271
+ const enabled = useCallback(
4505
4272
  (selector) => {
4506
4273
  if (typeof include === "undefined") return true;
4507
4274
  return include.some((c) => selector.includes(c));
@@ -4524,7 +4291,7 @@ var JBContractProvider = ({
4524
4291
  chainId,
4525
4292
  args: usdcAddress && enabled([1 /* PrimaryNativePaymentTerminal */]) ? [projectId, usdcAddress] : void 0
4526
4293
  });
4527
- const primaryNativeTerminal = useMemo8(() => {
4294
+ const primaryNativeTerminal = useMemo5(() => {
4528
4295
  const isTerminal = (address) => address !== void 0 && !isAddressEqual4(address, zeroAddress4);
4529
4296
  if (isTerminal(primaryNativeTerminalEth.data))
4530
4297
  return primaryNativeTerminalEth;
@@ -4547,13 +4314,13 @@ var JBContractProvider = ({
4547
4314
  staleTime: Infinity
4548
4315
  }
4549
4316
  });
4550
- const controllerAddress = useMemo8(() => controller.data, [controller.data]);
4551
- const hasController = useMemo8(() => {
4317
+ const controllerAddress = useMemo5(() => controller.data, [controller.data]);
4318
+ const hasController = useMemo5(() => {
4552
4319
  return Boolean(
4553
4320
  controllerAddress && !isAddressEqual4(controllerAddress, zeroAddress4)
4554
4321
  );
4555
4322
  }, [controllerAddress]);
4556
- const resolvedControllerAddress = useMemo8(() => {
4323
+ const resolvedControllerAddress = useMemo5(() => {
4557
4324
  return hasController ? controllerAddress : void 0;
4558
4325
  }, [controllerAddress, hasController]);
4559
4326
  const fundAccessLimits = useReadContract11({
@@ -4600,7 +4367,7 @@ var JBContractProvider = ({
4600
4367
  ...query,
4601
4368
  isLoading: Boolean(query.isLoading || controller.isLoading)
4602
4369
  });
4603
- const contractAddress = useCallback2(
4370
+ const contractAddress = useCallback(
4604
4371
  (contract, _chainId) => {
4605
4372
  return getJBContractAddress3(contract, version, _chainId || chainId);
4606
4373
  },
@@ -4615,7 +4382,7 @@ var JBContractProvider = ({
4615
4382
  splits: dependent(splits)
4616
4383
  };
4617
4384
  debug10("JBContractContext", { projectId, contracts });
4618
- return /* @__PURE__ */ jsx11(
4385
+ return /* @__PURE__ */ jsx10(
4619
4386
  JBContractContext.Provider,
4620
4387
  {
4621
4388
  value: {
@@ -4629,6 +4396,9 @@ var JBContractProvider = ({
4629
4396
  );
4630
4397
  };
4631
4398
 
4399
+ // src/index.ts
4400
+ __reExport(index_exports, hooks_exports);
4401
+
4632
4402
  // src/lib/relayr/constants.ts
4633
4403
  var API = "https://api.relayr.ba5ed.com";
4634
4404
  var DASHBOARD = "https://relayr.ba5ed.com";
@@ -4773,7 +4543,7 @@ function useGetRelayrTxQuote() {
4773
4543
  }
4774
4544
 
4775
4545
  // src/lib/relayr/hooks/useGetRelayrTxBundle.ts
4776
- import { useCallback as useCallback3, useMemo as useMemo9, useState as useState4 } from "react";
4546
+ import { useCallback as useCallback2, useMemo as useMemo6, useState } from "react";
4777
4547
  import { useQuery as useQuery9 } from "wagmi/query";
4778
4548
  var POLL_INTERVAL = 2e3;
4779
4549
  var transactionSucceeded = (state) => state === "Success" || state === "Completed";
@@ -4791,14 +4561,14 @@ var fetchTxBundle = async (uuid, signal) => {
4791
4561
  return response.json();
4792
4562
  };
4793
4563
  function useGetRelayrTxBundle() {
4794
- const [uuid, setUuid] = useState4();
4564
+ const [uuid, setUuid] = useState();
4795
4565
  const getRelayrTxBundle = useQuery9({
4796
4566
  queryKey: ["txBundle", uuid],
4797
4567
  queryFn: ({ signal }) => fetchTxBundle(uuid, signal),
4798
4568
  enabled: !!uuid,
4799
4569
  refetchInterval: (query) => areTransactionsComplete(query.state.data) || hasTransactionFailure(query.state.data) ? false : POLL_INTERVAL
4800
4570
  });
4801
- const startPolling = useCallback3(
4571
+ const startPolling = useCallback2(
4802
4572
  (bundleUuid) => {
4803
4573
  if (bundleUuid === uuid) {
4804
4574
  void getRelayrTxBundle.refetch();
@@ -4808,11 +4578,11 @@ function useGetRelayrTxBundle() {
4808
4578
  },
4809
4579
  [getRelayrTxBundle.refetch, uuid]
4810
4580
  );
4811
- const isComplete = useMemo9(
4581
+ const isComplete = useMemo6(
4812
4582
  () => areTransactionsComplete(getRelayrTxBundle.data),
4813
4583
  [getRelayrTxBundle.data]
4814
4584
  );
4815
- const hasFailed = useMemo9(
4585
+ const hasFailed = useMemo6(
4816
4586
  () => hasTransactionFailure(getRelayrTxBundle.data),
4817
4587
  [getRelayrTxBundle.data]
4818
4588
  );
@@ -4831,13 +4601,13 @@ function useGetRelayrTxBundle() {
4831
4601
  }
4832
4602
 
4833
4603
  // src/lib/relayr/hooks/useSendRelayrTx.ts
4834
- import { useCallback as useCallback4 } from "react";
4604
+ import { useCallback as useCallback3 } from "react";
4835
4605
  import { useChainId, useSwitchChain as useSwitchChain2, useSendTransaction } from "wagmi";
4836
4606
  function useSendRelayrTx() {
4837
4607
  const chainId = useChainId();
4838
4608
  const { switchChainAsync } = useSwitchChain2();
4839
4609
  const _sendTransaction = useSendTransaction();
4840
- const sendRelayrTx = useCallback4(
4610
+ const sendRelayrTx = useCallback3(
4841
4611
  async (chainPayment) => {
4842
4612
  if (chainId !== chainPayment.chain) {
4843
4613
  try {
@@ -4869,7 +4639,6 @@ export {
4869
4639
  DASHBOARD,
4870
4640
  DEFAULT_ETHER_PRICE_ENDPOINT,
4871
4641
  DynamicContract,
4872
- HeldWritesNotice,
4873
4642
  JBChainContext,
4874
4643
  JBChainProvider,
4875
4644
  JBContractContext,
@@ -4893,9 +4662,6 @@ export {
4893
4662
  useFind721DataHook,
4894
4663
  useGetRelayrTxBundle,
4895
4664
  useGetRelayrTxQuote,
4896
- useHeldIntents,
4897
- useHeldWrite,
4898
- useHeldWrites,
4899
4665
  useJBChainId,
4900
4666
  useJBContractContext,
4901
4667
  useJBDataHookContext,
@@ -4914,7 +4680,6 @@ export {
4914
4680
  usePreparePayMetadata,
4915
4681
  useProjectMetadata,
4916
4682
  useResolveDataHook,
4917
- useSavedAttempt,
4918
4683
  useSendRelayrTx,
4919
4684
  useShopPurchases,
4920
4685
  useSuckers,