@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/orders.cjs
CHANGED
|
@@ -1056,6 +1056,7 @@ var CURRENCY = {
|
|
|
1056
1056
|
ARS: "ARS",
|
|
1057
1057
|
MEX: "MEX",
|
|
1058
1058
|
VEN: "VEN",
|
|
1059
|
+
BOB: "BOB",
|
|
1059
1060
|
EUR: "EUR",
|
|
1060
1061
|
NGN: "NGN",
|
|
1061
1062
|
USD: "USD",
|
|
@@ -1230,6 +1231,9 @@ var ZodGetOrderParamsSchema = import_zod2.z.object({
|
|
|
1230
1231
|
var ZodGetFeeConfigParamsSchema = import_zod2.z.object({
|
|
1231
1232
|
currency: ZodCurrencySchema
|
|
1232
1233
|
});
|
|
1234
|
+
var ZodGetPlacementLimitsParamsSchema = import_zod2.z.object({
|
|
1235
|
+
userAddress: ZodAddressSchema
|
|
1236
|
+
});
|
|
1233
1237
|
var ZodGetOrdersParamsSchema = import_zod2.z.object({
|
|
1234
1238
|
userAddress: ZodAddressSchema,
|
|
1235
1239
|
skip: import_zod2.z.number().int().min(0).default(0),
|
|
@@ -1290,6 +1294,19 @@ var ZodSubgraphOrderSchema = import_zod2.z.object({
|
|
|
1290
1294
|
var ZodSubgraphOrdersResponseSchema = import_zod2.z.object({
|
|
1291
1295
|
orders_collection: import_zod2.z.array(ZodSubgraphOrderSchema)
|
|
1292
1296
|
});
|
|
1297
|
+
var ZodSubgraphPlacementLimitsResponseSchema = import_zod2.z.object({
|
|
1298
|
+
userDailyPlacements: import_zod2.z.object({
|
|
1299
|
+
dayIndex: import_zod2.z.string(),
|
|
1300
|
+
buyPlacements: import_zod2.z.string(),
|
|
1301
|
+
sellPlacements: import_zod2.z.string()
|
|
1302
|
+
}).nullish(),
|
|
1303
|
+
orderPlacementLimitConfig: import_zod2.z.object({
|
|
1304
|
+
dailyBuyOrderPlacementLimit: import_zod2.z.string(),
|
|
1305
|
+
buyLimitConfigured: import_zod2.z.boolean(),
|
|
1306
|
+
dailySellOrderPlacementLimit: import_zod2.z.string(),
|
|
1307
|
+
sellLimitConfigured: import_zod2.z.boolean()
|
|
1308
|
+
}).nullish()
|
|
1309
|
+
});
|
|
1293
1310
|
|
|
1294
1311
|
// src/orders/actions/approve-usdc.ts
|
|
1295
1312
|
function createApproveUsdcAction(input) {
|
|
@@ -4680,6 +4697,8 @@ var contractErrorMessages = {
|
|
|
4680
4697
|
CASHBACK_TRANSFER_FAILED: "Cashback transfer failed",
|
|
4681
4698
|
// Order limits
|
|
4682
4699
|
DAILY_BUY_ORDER_LIMIT_EXCEEDED: "Daily buy order count limit exceeded",
|
|
4700
|
+
DAILY_BUY_ORDER_PLACEMENT_LIMIT_EXCEEDED: "You've reached today's buy order limit. Cancelled orders still count towards it \u2014 try again tomorrow.",
|
|
4701
|
+
DAILY_SELL_ORDER_PLACEMENT_LIMIT_EXCEEDED: "You've reached today's sell and pay order limit. Cancelled orders still count towards it \u2014 try again tomorrow.",
|
|
4683
4702
|
MONTHLY_BUY_ORDER_LIMIT_EXCEEDED: "Monthly buy order count limit exceeded",
|
|
4684
4703
|
SELL_ORDER_AMOUNT_LIMIT_EXCEEDED: "Sell order amount limit exceeded",
|
|
4685
4704
|
BUY_ORDER_AMOUNT_EXCEEDS_LIMIT: "Buy order amount exceeds limit",
|
|
@@ -4898,6 +4917,10 @@ var contractErrors = {
|
|
|
4898
4917
|
// Order limits
|
|
4899
4918
|
DailyBuyOrderLimitExceeded: "DAILY_BUY_ORDER_LIMIT_EXCEEDED",
|
|
4900
4919
|
MonthlyBuyOrderLimitExceeded: "MONTHLY_BUY_ORDER_LIMIT_EXCEEDED",
|
|
4920
|
+
// Gross placement caps: counted when the order is placed and never given
|
|
4921
|
+
// back when it is cancelled, unlike the volume limits above.
|
|
4922
|
+
DailyBuyOrderPlacementLimitExceeded: "DAILY_BUY_ORDER_PLACEMENT_LIMIT_EXCEEDED",
|
|
4923
|
+
DailySellOrderPlacementLimitExceeded: "DAILY_SELL_ORDER_PLACEMENT_LIMIT_EXCEEDED",
|
|
4901
4924
|
SellOrderAmountLimitExceeded: "SELL_ORDER_AMOUNT_LIMIT_EXCEEDED",
|
|
4902
4925
|
BuyOrderAmountExceedsLimit: "BUY_ORDER_AMOUNT_EXCEEDS_LIMIT",
|
|
4903
4926
|
SellOrderAmountExceedsLimit: "SELL_ORDER_AMOUNT_EXCEEDS_LIMIT",
|
|
@@ -5109,6 +5132,8 @@ var hexContractErrors = {
|
|
|
5109
5132
|
// Order limits
|
|
5110
5133
|
"0xe595a7bf": contractErrors.DailyBuyOrderLimitExceeded,
|
|
5111
5134
|
"0x675dbc86": contractErrors.MonthlyBuyOrderLimitExceeded,
|
|
5135
|
+
"0x917c7aef": contractErrors.DailyBuyOrderPlacementLimitExceeded,
|
|
5136
|
+
"0x4688ce73": contractErrors.DailySellOrderPlacementLimitExceeded,
|
|
5112
5137
|
"0x64301cb8": contractErrors.SellOrderAmountLimitExceeded,
|
|
5113
5138
|
"0x91da284f": contractErrors.BuyOrderAmountExceedsLimit,
|
|
5114
5139
|
"0xb407b9ec": contractErrors.SellOrderAmountExceedsLimit,
|
|
@@ -5901,6 +5926,7 @@ function normalizeSubgraphOrder(raw) {
|
|
|
5901
5926
|
|
|
5902
5927
|
// src/orders/subgraph/index.ts
|
|
5903
5928
|
var import_neverthrow15 = require("neverthrow");
|
|
5929
|
+
var import_viem19 = require("viem");
|
|
5904
5930
|
|
|
5905
5931
|
// src/orders/subgraph/queries.ts
|
|
5906
5932
|
var ORDERS_BY_USER_QUERY = (
|
|
@@ -5937,8 +5963,35 @@ var ORDERS_BY_USER_QUERY = (
|
|
|
5937
5963
|
}
|
|
5938
5964
|
`
|
|
5939
5965
|
);
|
|
5966
|
+
var PLACEMENT_LIMITS_QUERY = (
|
|
5967
|
+
/* GraphQL */
|
|
5968
|
+
`
|
|
5969
|
+
query PlacementLimits($placementsId: ID!, $configId: ID!) {
|
|
5970
|
+
userDailyPlacements(id: $placementsId) {
|
|
5971
|
+
dayIndex
|
|
5972
|
+
buyPlacements
|
|
5973
|
+
sellPlacements
|
|
5974
|
+
}
|
|
5975
|
+
orderPlacementLimitConfig(id: $configId) {
|
|
5976
|
+
dailyBuyOrderPlacementLimit
|
|
5977
|
+
buyLimitConfigured
|
|
5978
|
+
dailySellOrderPlacementLimit
|
|
5979
|
+
sellLimitConfigured
|
|
5980
|
+
}
|
|
5981
|
+
}
|
|
5982
|
+
`
|
|
5983
|
+
);
|
|
5940
5984
|
|
|
5941
5985
|
// src/orders/subgraph/index.ts
|
|
5986
|
+
var SECONDS_PER_DAY = 86400;
|
|
5987
|
+
var PLACEMENT_LIMIT_CONFIG_ID = (0, import_viem19.stringToHex)("placement-limits");
|
|
5988
|
+
function bucket(used, limit, configured, zeroMeansUnlimited) {
|
|
5989
|
+
if (!configured) return { used, limit: null, remaining: null, state: "unknown" };
|
|
5990
|
+
if (limit === 0 && zeroMeansUnlimited) {
|
|
5991
|
+
return { used, limit: null, remaining: null, state: "unlimited" };
|
|
5992
|
+
}
|
|
5993
|
+
return { used, limit, remaining: Math.max(0, limit - used), state: "enforced" };
|
|
5994
|
+
}
|
|
5942
5995
|
function getOrdersForUser(subgraphUrl, userAddress, skip, limit, logger = noopLogger) {
|
|
5943
5996
|
const user = userAddress.toLowerCase();
|
|
5944
5997
|
logger.debug("fetching orders from subgraph", { subgraphUrl, user, skip, limit });
|
|
@@ -5965,6 +6018,54 @@ function getOrdersForUser(subgraphUrl, userAddress, skip, limit, logger = noopLo
|
|
|
5965
6018
|
)
|
|
5966
6019
|
);
|
|
5967
6020
|
}
|
|
6021
|
+
function getPlacementLimitsForUser(subgraphUrl, userAddress, nowSeconds, logger = noopLogger) {
|
|
6022
|
+
const user = userAddress.toLowerCase();
|
|
6023
|
+
const dayIndex = Math.floor(nowSeconds / SECONDS_PER_DAY);
|
|
6024
|
+
const placementsId = (0, import_viem19.stringToHex)(`${user}-${dayIndex}`);
|
|
6025
|
+
logger.debug("fetching placement limits from subgraph", { subgraphUrl, user, dayIndex });
|
|
6026
|
+
return querySubgraph(subgraphUrl, {
|
|
6027
|
+
query: PLACEMENT_LIMITS_QUERY,
|
|
6028
|
+
variables: { placementsId, configId: PLACEMENT_LIMIT_CONFIG_ID }
|
|
6029
|
+
}).mapErr(
|
|
6030
|
+
(e) => new OrdersError(e.message, {
|
|
6031
|
+
code: "SUBGRAPH_REQUEST_FAILED",
|
|
6032
|
+
cause: e.cause ?? e,
|
|
6033
|
+
context: { user, dayIndex, ...e.context ?? {} }
|
|
6034
|
+
})
|
|
6035
|
+
).andThen(
|
|
6036
|
+
(data) => validate(
|
|
6037
|
+
ZodSubgraphPlacementLimitsResponseSchema,
|
|
6038
|
+
data,
|
|
6039
|
+
(message, cause, d) => new OrdersError(message, {
|
|
6040
|
+
code: "SUBGRAPH_VALIDATION_FAILED",
|
|
6041
|
+
cause,
|
|
6042
|
+
context: { data: d }
|
|
6043
|
+
})
|
|
6044
|
+
)
|
|
6045
|
+
).map((validated) => {
|
|
6046
|
+
const placements = validated.userDailyPlacements;
|
|
6047
|
+
const config = validated.orderPlacementLimitConfig;
|
|
6048
|
+
const buyUsed = placements ? Number(placements.buyPlacements) : 0;
|
|
6049
|
+
const sellUsed = placements ? Number(placements.sellPlacements) : 0;
|
|
6050
|
+
return {
|
|
6051
|
+
dayIndex,
|
|
6052
|
+
resetsAt: (dayIndex + 1) * SECONDS_PER_DAY,
|
|
6053
|
+
// A zero BUY cap is a hard block on-chain, not "unlimited".
|
|
6054
|
+
buy: bucket(
|
|
6055
|
+
buyUsed,
|
|
6056
|
+
config ? Number(config.dailyBuyOrderPlacementLimit) : 0,
|
|
6057
|
+
config?.buyLimitConfigured ?? false,
|
|
6058
|
+
false
|
|
6059
|
+
),
|
|
6060
|
+
sellPay: bucket(
|
|
6061
|
+
sellUsed,
|
|
6062
|
+
config ? Number(config.dailySellOrderPlacementLimit) : 0,
|
|
6063
|
+
config?.sellLimitConfigured ?? false,
|
|
6064
|
+
true
|
|
6065
|
+
)
|
|
6066
|
+
};
|
|
6067
|
+
});
|
|
6068
|
+
}
|
|
5968
6069
|
|
|
5969
6070
|
// src/orders/watch-events.ts
|
|
5970
6071
|
var PLACED_CONFIG = {
|
|
@@ -6140,6 +6241,19 @@ function createOrders(config) {
|
|
|
6140
6241
|
({ userAddress, skip, limit }) => getOrdersForUser(subgraphUrl, userAddress, skip, limit, logger)
|
|
6141
6242
|
);
|
|
6142
6243
|
},
|
|
6244
|
+
getPlacementLimits(params) {
|
|
6245
|
+
return validate(
|
|
6246
|
+
ZodGetPlacementLimitsParamsSchema,
|
|
6247
|
+
params,
|
|
6248
|
+
(message, cause, d) => new OrdersError(message, {
|
|
6249
|
+
code: "INVALID_PLACEMENT_LIMITS_PARAMS",
|
|
6250
|
+
cause,
|
|
6251
|
+
context: { params: d }
|
|
6252
|
+
})
|
|
6253
|
+
).asyncAndThen(
|
|
6254
|
+
({ userAddress }) => getPlacementLimitsForUser(subgraphUrl, userAddress, Math.floor(Date.now() / 1e3), logger)
|
|
6255
|
+
);
|
|
6256
|
+
},
|
|
6143
6257
|
getFeeConfig(params) {
|
|
6144
6258
|
return validate(
|
|
6145
6259
|
ZodGetFeeConfigParamsSchema,
|