@bananapus/nana-sdk-react 53.0.0 → 55.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.
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/index.js +123 -358
- package/dist/index.js.map +1 -1
- package/package.json +2 -5
- package/dist/hooks/heldWrite/HeldWritesNotice.d.ts +0 -11
- package/dist/hooks/heldWrite/HeldWritesNotice.d.ts.map +0 -1
- package/dist/hooks/heldWrite/index.d.ts +0 -5
- package/dist/hooks/heldWrite/index.d.ts.map +0 -1
- package/dist/hooks/heldWrite/useHeldWrite.d.ts +0 -63
- package/dist/hooks/heldWrite/useHeldWrite.d.ts.map +0 -1
- package/dist/hooks/heldWrite/useHeldWrites.d.ts +0 -40
- package/dist/hooks/heldWrite/useHeldWrites.d.ts.map +0 -1
- package/dist/hooks/heldWrite/useSavedAttempt.d.ts +0 -54
- package/dist/hooks/heldWrite/useSavedAttempt.d.ts.map +0 -1
package/dist/hooks/index.d.ts
CHANGED
|
@@ -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 "
|
|
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,
|
|
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
|
|
147
|
+
useCallback,
|
|
72
148
|
useContext as useContext8,
|
|
73
|
-
useMemo as
|
|
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/
|
|
4106
|
-
|
|
4107
|
-
import
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
4551
|
-
const hasController =
|
|
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 =
|
|
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 =
|
|
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__ */
|
|
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
|
|
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] =
|
|
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 =
|
|
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 =
|
|
4581
|
+
const isComplete = useMemo6(
|
|
4812
4582
|
() => areTransactionsComplete(getRelayrTxBundle.data),
|
|
4813
4583
|
[getRelayrTxBundle.data]
|
|
4814
4584
|
);
|
|
4815
|
-
const hasFailed =
|
|
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
|
|
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 =
|
|
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,
|