@p2pdotme/sdk 1.2.17 → 1.2.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/country.cjs +116 -49
- package/dist/country.cjs.map +1 -1
- package/dist/country.d.cts +15 -1
- package/dist/country.d.ts +15 -1
- package/dist/country.mjs +114 -49
- package/dist/country.mjs.map +1 -1
- package/dist/fraud-engine.cjs +1 -0
- package/dist/fraud-engine.cjs.map +1 -1
- package/dist/fraud-engine.mjs +1 -0
- package/dist/fraud-engine.mjs.map +1 -1
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +2 -1
- package/dist/index.mjs.map +1 -1
- package/dist/orders.cjs +114 -0
- package/dist/orders.cjs.map +1 -1
- package/dist/orders.d.cts +53 -2
- package/dist/orders.d.ts +53 -2
- package/dist/orders.mjs +114 -0
- package/dist/orders.mjs.map +1 -1
- package/dist/prices.cjs +7 -0
- package/dist/prices.cjs.map +1 -1
- package/dist/prices.d.cts +1 -0
- package/dist/prices.d.ts +1 -0
- package/dist/prices.mjs +7 -0
- package/dist/prices.mjs.map +1 -1
- package/dist/profile.cjs +7 -0
- package/dist/profile.cjs.map +1 -1
- package/dist/profile.d.cts +2 -0
- package/dist/profile.d.ts +2 -0
- package/dist/profile.mjs +7 -0
- package/dist/profile.mjs.map +1 -1
- package/dist/qr-parsers.cjs +133 -52
- package/dist/qr-parsers.cjs.map +1 -1
- package/dist/qr-parsers.d.cts +1 -0
- package/dist/qr-parsers.d.ts +1 -0
- package/dist/qr-parsers.mjs +133 -52
- package/dist/qr-parsers.mjs.map +1 -1
- package/dist/react.cjs +194 -22
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +78 -2
- package/dist/react.d.ts +78 -2
- package/dist/react.mjs +180 -9
- package/dist/react.mjs.map +1 -1
- package/dist/stake.cjs +1 -0
- package/dist/stake.cjs.map +1 -1
- package/dist/stake.d.cts +1 -0
- package/dist/stake.d.ts +1 -0
- package/dist/stake.mjs +1 -0
- package/dist/stake.mjs.map +1 -1
- package/dist/zkkyc.cjs +1 -0
- package/dist/zkkyc.cjs.map +1 -1
- package/dist/zkkyc.mjs +1 -0
- package/dist/zkkyc.mjs.map +1 -1
- package/package.json +1 -1
package/dist/react.cjs
CHANGED
|
@@ -34,6 +34,7 @@ __export(react_exports, {
|
|
|
34
34
|
useFingerprint: () => useFingerprint,
|
|
35
35
|
useFraudEngine: () => useFraudEngine,
|
|
36
36
|
useOrders: () => useOrders,
|
|
37
|
+
usePlacementLimits: () => usePlacementLimits,
|
|
37
38
|
usePrices: () => usePrices,
|
|
38
39
|
useProfile: () => useProfile,
|
|
39
40
|
useSdk: () => useSdk,
|
|
@@ -110,6 +111,7 @@ var CURRENCY = {
|
|
|
110
111
|
ARS: "ARS",
|
|
111
112
|
MEX: "MEX",
|
|
112
113
|
VEN: "VEN",
|
|
114
|
+
BOB: "BOB",
|
|
113
115
|
EUR: "EUR",
|
|
114
116
|
NGN: "NGN",
|
|
115
117
|
USD: "USD",
|
|
@@ -1723,6 +1725,9 @@ var ZodGetOrderParamsSchema = import_zod3.z.object({
|
|
|
1723
1725
|
var ZodGetFeeConfigParamsSchema = import_zod3.z.object({
|
|
1724
1726
|
currency: ZodCurrencySchema
|
|
1725
1727
|
});
|
|
1728
|
+
var ZodGetPlacementLimitsParamsSchema = import_zod3.z.object({
|
|
1729
|
+
userAddress: ZodAddressSchema
|
|
1730
|
+
});
|
|
1726
1731
|
var ZodGetOrdersParamsSchema = import_zod3.z.object({
|
|
1727
1732
|
userAddress: ZodAddressSchema,
|
|
1728
1733
|
skip: import_zod3.z.number().int().min(0).default(0),
|
|
@@ -1783,6 +1788,19 @@ var ZodSubgraphOrderSchema = import_zod3.z.object({
|
|
|
1783
1788
|
var ZodSubgraphOrdersResponseSchema = import_zod3.z.object({
|
|
1784
1789
|
orders_collection: import_zod3.z.array(ZodSubgraphOrderSchema)
|
|
1785
1790
|
});
|
|
1791
|
+
var ZodSubgraphPlacementLimitsResponseSchema = import_zod3.z.object({
|
|
1792
|
+
userDailyPlacements: import_zod3.z.object({
|
|
1793
|
+
dayIndex: import_zod3.z.string(),
|
|
1794
|
+
buyPlacements: import_zod3.z.string(),
|
|
1795
|
+
sellPlacements: import_zod3.z.string()
|
|
1796
|
+
}).nullish(),
|
|
1797
|
+
orderPlacementLimitConfig: import_zod3.z.object({
|
|
1798
|
+
dailyBuyOrderPlacementLimit: import_zod3.z.string(),
|
|
1799
|
+
buyLimitConfigured: import_zod3.z.boolean(),
|
|
1800
|
+
dailySellOrderPlacementLimit: import_zod3.z.string(),
|
|
1801
|
+
sellLimitConfigured: import_zod3.z.boolean()
|
|
1802
|
+
}).nullish()
|
|
1803
|
+
});
|
|
1786
1804
|
|
|
1787
1805
|
// src/orders/actions/approve-usdc.ts
|
|
1788
1806
|
function createApproveUsdcAction(input) {
|
|
@@ -5156,6 +5174,10 @@ var contractErrors = {
|
|
|
5156
5174
|
// Order limits
|
|
5157
5175
|
DailyBuyOrderLimitExceeded: "DAILY_BUY_ORDER_LIMIT_EXCEEDED",
|
|
5158
5176
|
MonthlyBuyOrderLimitExceeded: "MONTHLY_BUY_ORDER_LIMIT_EXCEEDED",
|
|
5177
|
+
// Gross placement caps: counted when the order is placed and never given
|
|
5178
|
+
// back when it is cancelled, unlike the volume limits above.
|
|
5179
|
+
DailyBuyOrderPlacementLimitExceeded: "DAILY_BUY_ORDER_PLACEMENT_LIMIT_EXCEEDED",
|
|
5180
|
+
DailySellOrderPlacementLimitExceeded: "DAILY_SELL_ORDER_PLACEMENT_LIMIT_EXCEEDED",
|
|
5159
5181
|
SellOrderAmountLimitExceeded: "SELL_ORDER_AMOUNT_LIMIT_EXCEEDED",
|
|
5160
5182
|
BuyOrderAmountExceedsLimit: "BUY_ORDER_AMOUNT_EXCEEDS_LIMIT",
|
|
5161
5183
|
SellOrderAmountExceedsLimit: "SELL_ORDER_AMOUNT_EXCEEDS_LIMIT",
|
|
@@ -5367,6 +5389,8 @@ var hexContractErrors = {
|
|
|
5367
5389
|
// Order limits
|
|
5368
5390
|
"0xe595a7bf": contractErrors.DailyBuyOrderLimitExceeded,
|
|
5369
5391
|
"0x675dbc86": contractErrors.MonthlyBuyOrderLimitExceeded,
|
|
5392
|
+
"0x917c7aef": contractErrors.DailyBuyOrderPlacementLimitExceeded,
|
|
5393
|
+
"0x4688ce73": contractErrors.DailySellOrderPlacementLimitExceeded,
|
|
5370
5394
|
"0x64301cb8": contractErrors.SellOrderAmountLimitExceeded,
|
|
5371
5395
|
"0x91da284f": contractErrors.BuyOrderAmountExceedsLimit,
|
|
5372
5396
|
"0xb407b9ec": contractErrors.SellOrderAmountExceedsLimit,
|
|
@@ -6568,6 +6592,7 @@ function normalizeSubgraphOrder(raw) {
|
|
|
6568
6592
|
|
|
6569
6593
|
// src/orders/subgraph/index.ts
|
|
6570
6594
|
var import_neverthrow17 = require("neverthrow");
|
|
6595
|
+
var import_viem19 = require("viem");
|
|
6571
6596
|
|
|
6572
6597
|
// src/orders/subgraph/queries.ts
|
|
6573
6598
|
var ORDERS_BY_USER_QUERY = (
|
|
@@ -6604,8 +6629,35 @@ var ORDERS_BY_USER_QUERY = (
|
|
|
6604
6629
|
}
|
|
6605
6630
|
`
|
|
6606
6631
|
);
|
|
6632
|
+
var PLACEMENT_LIMITS_QUERY = (
|
|
6633
|
+
/* GraphQL */
|
|
6634
|
+
`
|
|
6635
|
+
query PlacementLimits($placementsId: ID!, $configId: ID!) {
|
|
6636
|
+
userDailyPlacements(id: $placementsId) {
|
|
6637
|
+
dayIndex
|
|
6638
|
+
buyPlacements
|
|
6639
|
+
sellPlacements
|
|
6640
|
+
}
|
|
6641
|
+
orderPlacementLimitConfig(id: $configId) {
|
|
6642
|
+
dailyBuyOrderPlacementLimit
|
|
6643
|
+
buyLimitConfigured
|
|
6644
|
+
dailySellOrderPlacementLimit
|
|
6645
|
+
sellLimitConfigured
|
|
6646
|
+
}
|
|
6647
|
+
}
|
|
6648
|
+
`
|
|
6649
|
+
);
|
|
6607
6650
|
|
|
6608
6651
|
// src/orders/subgraph/index.ts
|
|
6652
|
+
var SECONDS_PER_DAY = 86400;
|
|
6653
|
+
var PLACEMENT_LIMIT_CONFIG_ID = (0, import_viem19.stringToHex)("placement-limits");
|
|
6654
|
+
function bucket(used, limit, configured, zeroMeansUnlimited) {
|
|
6655
|
+
if (!configured) return { used, limit: null, remaining: null, state: "unknown" };
|
|
6656
|
+
if (limit === 0 && zeroMeansUnlimited) {
|
|
6657
|
+
return { used, limit: null, remaining: null, state: "unlimited" };
|
|
6658
|
+
}
|
|
6659
|
+
return { used, limit, remaining: Math.max(0, limit - used), state: "enforced" };
|
|
6660
|
+
}
|
|
6609
6661
|
function getOrdersForUser(subgraphUrl, userAddress, skip, limit, logger = noopLogger) {
|
|
6610
6662
|
const user = userAddress.toLowerCase();
|
|
6611
6663
|
logger.debug("fetching orders from subgraph", { subgraphUrl, user, skip, limit });
|
|
@@ -6632,6 +6684,54 @@ function getOrdersForUser(subgraphUrl, userAddress, skip, limit, logger = noopLo
|
|
|
6632
6684
|
)
|
|
6633
6685
|
);
|
|
6634
6686
|
}
|
|
6687
|
+
function getPlacementLimitsForUser(subgraphUrl, userAddress, nowSeconds, logger = noopLogger) {
|
|
6688
|
+
const user = userAddress.toLowerCase();
|
|
6689
|
+
const dayIndex = Math.floor(nowSeconds / SECONDS_PER_DAY);
|
|
6690
|
+
const placementsId = (0, import_viem19.stringToHex)(`${user}-${dayIndex}`);
|
|
6691
|
+
logger.debug("fetching placement limits from subgraph", { subgraphUrl, user, dayIndex });
|
|
6692
|
+
return querySubgraph(subgraphUrl, {
|
|
6693
|
+
query: PLACEMENT_LIMITS_QUERY,
|
|
6694
|
+
variables: { placementsId, configId: PLACEMENT_LIMIT_CONFIG_ID }
|
|
6695
|
+
}).mapErr(
|
|
6696
|
+
(e) => new OrdersError(e.message, {
|
|
6697
|
+
code: "SUBGRAPH_REQUEST_FAILED",
|
|
6698
|
+
cause: e.cause ?? e,
|
|
6699
|
+
context: { user, dayIndex, ...e.context ?? {} }
|
|
6700
|
+
})
|
|
6701
|
+
).andThen(
|
|
6702
|
+
(data) => validate(
|
|
6703
|
+
ZodSubgraphPlacementLimitsResponseSchema,
|
|
6704
|
+
data,
|
|
6705
|
+
(message, cause, d) => new OrdersError(message, {
|
|
6706
|
+
code: "SUBGRAPH_VALIDATION_FAILED",
|
|
6707
|
+
cause,
|
|
6708
|
+
context: { data: d }
|
|
6709
|
+
})
|
|
6710
|
+
)
|
|
6711
|
+
).map((validated) => {
|
|
6712
|
+
const placements = validated.userDailyPlacements;
|
|
6713
|
+
const config = validated.orderPlacementLimitConfig;
|
|
6714
|
+
const buyUsed = placements ? Number(placements.buyPlacements) : 0;
|
|
6715
|
+
const sellUsed = placements ? Number(placements.sellPlacements) : 0;
|
|
6716
|
+
return {
|
|
6717
|
+
dayIndex,
|
|
6718
|
+
resetsAt: (dayIndex + 1) * SECONDS_PER_DAY,
|
|
6719
|
+
// A zero BUY cap is a hard block on-chain, not "unlimited".
|
|
6720
|
+
buy: bucket(
|
|
6721
|
+
buyUsed,
|
|
6722
|
+
config ? Number(config.dailyBuyOrderPlacementLimit) : 0,
|
|
6723
|
+
config?.buyLimitConfigured ?? false,
|
|
6724
|
+
false
|
|
6725
|
+
),
|
|
6726
|
+
sellPay: bucket(
|
|
6727
|
+
sellUsed,
|
|
6728
|
+
config ? Number(config.dailySellOrderPlacementLimit) : 0,
|
|
6729
|
+
config?.sellLimitConfigured ?? false,
|
|
6730
|
+
true
|
|
6731
|
+
)
|
|
6732
|
+
};
|
|
6733
|
+
});
|
|
6734
|
+
}
|
|
6635
6735
|
|
|
6636
6736
|
// src/orders/watch-events.ts
|
|
6637
6737
|
var PLACED_CONFIG = {
|
|
@@ -6807,6 +6907,19 @@ function createOrders(config) {
|
|
|
6807
6907
|
({ userAddress, skip, limit }) => getOrdersForUser(subgraphUrl, userAddress, skip, limit, logger)
|
|
6808
6908
|
);
|
|
6809
6909
|
},
|
|
6910
|
+
getPlacementLimits(params) {
|
|
6911
|
+
return validate(
|
|
6912
|
+
ZodGetPlacementLimitsParamsSchema,
|
|
6913
|
+
params,
|
|
6914
|
+
(message, cause, d) => new OrdersError(message, {
|
|
6915
|
+
code: "INVALID_PLACEMENT_LIMITS_PARAMS",
|
|
6916
|
+
cause,
|
|
6917
|
+
context: { params: d }
|
|
6918
|
+
})
|
|
6919
|
+
).asyncAndThen(
|
|
6920
|
+
({ userAddress }) => getPlacementLimitsForUser(subgraphUrl, userAddress, Math.floor(Date.now() / 1e3), logger)
|
|
6921
|
+
);
|
|
6922
|
+
},
|
|
6810
6923
|
getFeeConfig(params) {
|
|
6811
6924
|
return validate(
|
|
6812
6925
|
ZodGetFeeConfigParamsSchema,
|
|
@@ -6877,7 +6990,7 @@ function createPrices(config) {
|
|
|
6877
6990
|
|
|
6878
6991
|
// src/profile/contracts/actions.ts
|
|
6879
6992
|
var import_neverthrow19 = require("neverthrow");
|
|
6880
|
-
var
|
|
6993
|
+
var import_viem20 = require("viem");
|
|
6881
6994
|
function getBalances(publicClient, usdcAddress, diamondAddress, params) {
|
|
6882
6995
|
return validate(
|
|
6883
6996
|
ZodGetBalancesParamsSchema,
|
|
@@ -6902,8 +7015,8 @@ function getBalances(publicClient, usdcAddress, diamondAddress, params) {
|
|
|
6902
7015
|
})
|
|
6903
7016
|
)
|
|
6904
7017
|
]).map(([usdc, priceConfig]) => {
|
|
6905
|
-
const usdcFormatted = Number((0,
|
|
6906
|
-
const sellPriceFormatted = Number((0,
|
|
7018
|
+
const usdcFormatted = Number((0, import_viem20.formatUnits)(usdc, 6));
|
|
7019
|
+
const sellPriceFormatted = Number((0, import_viem20.formatUnits)(priceConfig.sellPrice, 6));
|
|
6907
7020
|
return {
|
|
6908
7021
|
usdc: usdcFormatted,
|
|
6909
7022
|
fiat: usdcFormatted * sellPriceFormatted,
|
|
@@ -6926,7 +7039,7 @@ function createProfile(config) {
|
|
|
6926
7039
|
|
|
6927
7040
|
// src/stake/actions/cancel-unstake.ts
|
|
6928
7041
|
var import_neverthrow21 = require("neverthrow");
|
|
6929
|
-
var
|
|
7042
|
+
var import_viem21 = require("viem");
|
|
6930
7043
|
|
|
6931
7044
|
// src/stake/tx.ts
|
|
6932
7045
|
var import_neverthrow20 = require("neverthrow");
|
|
@@ -6982,7 +7095,7 @@ function createCancelUnstakeAction(input) {
|
|
|
6982
7095
|
const { publicClient, diamondAddress } = input;
|
|
6983
7096
|
const prepareFn = () => (0, import_neverthrow21.okAsync)({
|
|
6984
7097
|
to: diamondAddress,
|
|
6985
|
-
data: (0,
|
|
7098
|
+
data: (0, import_viem21.encodeFunctionData)({
|
|
6986
7099
|
abi: ABIS.FACETS.STAKE,
|
|
6987
7100
|
functionName: "p2pBoostCancelUnstake",
|
|
6988
7101
|
args: []
|
|
@@ -7003,12 +7116,12 @@ function createCancelUnstakeAction(input) {
|
|
|
7003
7116
|
|
|
7004
7117
|
// src/stake/actions/claim-unstake.ts
|
|
7005
7118
|
var import_neverthrow22 = require("neverthrow");
|
|
7006
|
-
var
|
|
7119
|
+
var import_viem22 = require("viem");
|
|
7007
7120
|
function createClaimUnstakeAction(input) {
|
|
7008
7121
|
const { publicClient, diamondAddress } = input;
|
|
7009
7122
|
const prepareFn = () => (0, import_neverthrow22.okAsync)({
|
|
7010
7123
|
to: diamondAddress,
|
|
7011
|
-
data: (0,
|
|
7124
|
+
data: (0, import_viem22.encodeFunctionData)({
|
|
7012
7125
|
abi: ABIS.FACETS.STAKE,
|
|
7013
7126
|
functionName: "p2pBoostClaimUnstake",
|
|
7014
7127
|
args: []
|
|
@@ -7029,12 +7142,12 @@ function createClaimUnstakeAction(input) {
|
|
|
7029
7142
|
|
|
7030
7143
|
// src/stake/actions/request-unstake.ts
|
|
7031
7144
|
var import_neverthrow23 = require("neverthrow");
|
|
7032
|
-
var
|
|
7145
|
+
var import_viem23 = require("viem");
|
|
7033
7146
|
function createRequestUnstakeAction(input) {
|
|
7034
7147
|
const { publicClient, diamondAddress } = input;
|
|
7035
7148
|
const prepareFn = () => (0, import_neverthrow23.okAsync)({
|
|
7036
7149
|
to: diamondAddress,
|
|
7037
|
-
data: (0,
|
|
7150
|
+
data: (0, import_viem23.encodeFunctionData)({
|
|
7038
7151
|
abi: ABIS.FACETS.STAKE,
|
|
7039
7152
|
functionName: "p2pBoostRequestUnstake",
|
|
7040
7153
|
args: []
|
|
@@ -7054,7 +7167,7 @@ function createRequestUnstakeAction(input) {
|
|
|
7054
7167
|
}
|
|
7055
7168
|
|
|
7056
7169
|
// src/stake/actions/stake.ts
|
|
7057
|
-
var
|
|
7170
|
+
var import_viem24 = require("viem");
|
|
7058
7171
|
function createStakeAction(input) {
|
|
7059
7172
|
const { publicClient, diamondAddress } = input;
|
|
7060
7173
|
const prepareFn = (params) => validate(
|
|
@@ -7067,7 +7180,7 @@ function createStakeAction(input) {
|
|
|
7067
7180
|
})
|
|
7068
7181
|
).map(({ tokens }) => ({
|
|
7069
7182
|
to: diamondAddress,
|
|
7070
|
-
data: (0,
|
|
7183
|
+
data: (0, import_viem24.encodeFunctionData)({
|
|
7071
7184
|
abi: ABIS.FACETS.STAKE,
|
|
7072
7185
|
functionName: "p2pBoostStake",
|
|
7073
7186
|
args: [tokens]
|
|
@@ -7087,7 +7200,7 @@ function createStakeAction(input) {
|
|
|
7087
7200
|
}
|
|
7088
7201
|
|
|
7089
7202
|
// src/stake/actions/top-up.ts
|
|
7090
|
-
var
|
|
7203
|
+
var import_viem25 = require("viem");
|
|
7091
7204
|
function createTopUpAction(input) {
|
|
7092
7205
|
const { publicClient, diamondAddress } = input;
|
|
7093
7206
|
const prepareFn = (params) => validate(
|
|
@@ -7100,7 +7213,7 @@ function createTopUpAction(input) {
|
|
|
7100
7213
|
})
|
|
7101
7214
|
).map(({ tokens }) => ({
|
|
7102
7215
|
to: diamondAddress,
|
|
7103
|
-
data: (0,
|
|
7216
|
+
data: (0, import_viem25.encodeFunctionData)({
|
|
7104
7217
|
abi: ABIS.FACETS.STAKE,
|
|
7105
7218
|
functionName: "p2pBoostTopUp",
|
|
7106
7219
|
args: [tokens]
|
|
@@ -7290,16 +7403,74 @@ function useFraudEngine() {
|
|
|
7290
7403
|
return fraudEngine;
|
|
7291
7404
|
}
|
|
7292
7405
|
|
|
7293
|
-
// src/react/use-
|
|
7406
|
+
// src/react/use-placement-limits.ts
|
|
7294
7407
|
var import_react2 = require("react");
|
|
7408
|
+
function usePlacementLimits(params) {
|
|
7409
|
+
const orders = useOrders();
|
|
7410
|
+
const { userAddress, pollMs } = params;
|
|
7411
|
+
const [limits, setLimits] = (0, import_react2.useState)(null);
|
|
7412
|
+
const [isLoading, setIsLoading] = (0, import_react2.useState)(false);
|
|
7413
|
+
const [error, setError] = (0, import_react2.useState)(null);
|
|
7414
|
+
const requestIdRef = (0, import_react2.useRef)(0);
|
|
7415
|
+
const mountedRef = (0, import_react2.useRef)(true);
|
|
7416
|
+
(0, import_react2.useEffect)(() => {
|
|
7417
|
+
mountedRef.current = true;
|
|
7418
|
+
return () => {
|
|
7419
|
+
mountedRef.current = false;
|
|
7420
|
+
};
|
|
7421
|
+
}, []);
|
|
7422
|
+
const refresh = (0, import_react2.useCallback)(() => {
|
|
7423
|
+
if (!userAddress) {
|
|
7424
|
+
requestIdRef.current++;
|
|
7425
|
+
setLimits(null);
|
|
7426
|
+
setError(null);
|
|
7427
|
+
setIsLoading(false);
|
|
7428
|
+
return;
|
|
7429
|
+
}
|
|
7430
|
+
const requestId = ++requestIdRef.current;
|
|
7431
|
+
setIsLoading(true);
|
|
7432
|
+
orders.getPlacementLimits({ userAddress }).match(
|
|
7433
|
+
(next) => {
|
|
7434
|
+
if (!mountedRef.current || requestId !== requestIdRef.current) return;
|
|
7435
|
+
setLimits(next);
|
|
7436
|
+
setError(null);
|
|
7437
|
+
setIsLoading(false);
|
|
7438
|
+
},
|
|
7439
|
+
(cause) => {
|
|
7440
|
+
if (!mountedRef.current || requestId !== requestIdRef.current) return;
|
|
7441
|
+
setError(cause);
|
|
7442
|
+
setIsLoading(false);
|
|
7443
|
+
}
|
|
7444
|
+
);
|
|
7445
|
+
}, [orders, userAddress]);
|
|
7446
|
+
(0, import_react2.useEffect)(() => {
|
|
7447
|
+
refresh();
|
|
7448
|
+
}, [refresh]);
|
|
7449
|
+
(0, import_react2.useEffect)(() => {
|
|
7450
|
+
if (!pollMs || !userAddress) return;
|
|
7451
|
+
const timer = setInterval(refresh, pollMs);
|
|
7452
|
+
return () => clearInterval(timer);
|
|
7453
|
+
}, [pollMs, userAddress, refresh]);
|
|
7454
|
+
(0, import_react2.useEffect)(() => {
|
|
7455
|
+
if (!limits || !userAddress) return;
|
|
7456
|
+
const msUntilReset = limits.resetsAt * 1e3 - Date.now();
|
|
7457
|
+
if (msUntilReset <= 0) return;
|
|
7458
|
+
const timer = setTimeout(refresh, msUntilReset + 1e3);
|
|
7459
|
+
return () => clearTimeout(timer);
|
|
7460
|
+
}, [limits, userAddress, refresh]);
|
|
7461
|
+
return { limits, isLoading, error, refresh };
|
|
7462
|
+
}
|
|
7463
|
+
|
|
7464
|
+
// src/react/use-watch-orders.ts
|
|
7465
|
+
var import_react3 = require("react");
|
|
7295
7466
|
function useWatchOrders(params) {
|
|
7296
7467
|
const orders = useOrders();
|
|
7297
7468
|
const { user, onEvent, onError } = params;
|
|
7298
|
-
const onEventRef = (0,
|
|
7299
|
-
const onErrorRef = (0,
|
|
7469
|
+
const onEventRef = (0, import_react3.useRef)(onEvent);
|
|
7470
|
+
const onErrorRef = (0, import_react3.useRef)(onError);
|
|
7300
7471
|
onEventRef.current = onEvent;
|
|
7301
7472
|
onErrorRef.current = onError;
|
|
7302
|
-
(0,
|
|
7473
|
+
(0, import_react3.useEffect)(() => {
|
|
7303
7474
|
const unsubscribe = orders.watchEvents({
|
|
7304
7475
|
user,
|
|
7305
7476
|
onEvent: (event) => onEventRef.current(event),
|
|
@@ -7310,12 +7481,12 @@ function useWatchOrders(params) {
|
|
|
7310
7481
|
}
|
|
7311
7482
|
|
|
7312
7483
|
// src/fraud-engine/react/use-fingerprint.ts
|
|
7313
|
-
var
|
|
7484
|
+
var import_react4 = require("react");
|
|
7314
7485
|
function useFingerprint(enabled) {
|
|
7315
|
-
const [data, setData] = (0,
|
|
7316
|
-
const [error, setError] = (0,
|
|
7317
|
-
const [isLoading, setIsLoading] = (0,
|
|
7318
|
-
(0,
|
|
7486
|
+
const [data, setData] = (0, import_react4.useState)(null);
|
|
7487
|
+
const [error, setError] = (0, import_react4.useState)(null);
|
|
7488
|
+
const [isLoading, setIsLoading] = (0, import_react4.useState)(false);
|
|
7489
|
+
(0, import_react4.useEffect)(() => {
|
|
7319
7490
|
if (!enabled) return;
|
|
7320
7491
|
let cancelled = false;
|
|
7321
7492
|
setIsLoading(true);
|
|
@@ -7348,6 +7519,7 @@ function useFingerprint(enabled) {
|
|
|
7348
7519
|
useFingerprint,
|
|
7349
7520
|
useFraudEngine,
|
|
7350
7521
|
useOrders,
|
|
7522
|
+
usePlacementLimits,
|
|
7351
7523
|
usePrices,
|
|
7352
7524
|
useProfile,
|
|
7353
7525
|
useSdk,
|