@pear-protocol/types 2.21.0 → 2.22.1
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/bundle.d.ts +1 -0
- package/dist/fee/entities.d.ts +1 -0
- package/dist/fee/responses.d.ts +26 -0
- package/dist/index.js +7355 -3
- package/dist/rewards/entities.d.ts +28 -0
- package/dist/rewards/payloads.d.ts +7 -0
- package/dist/rewards/responses.d.ts +73 -0
- package/dist/users/entities.d.ts +4 -0
- package/dist/users/response.d.ts +2 -0
- package/package.json +3 -2
- package/dist/auth/api-keys.js +0 -44
- package/dist/auth/entities.js +0 -25
- package/dist/auth/index.js +0 -4
- package/dist/auth/payloads.js +0 -84
- package/dist/auth/response.js +0 -82
- package/dist/baskets/recommended/entities.js +0 -22
- package/dist/baskets/recommended/index.js +0 -2
- package/dist/baskets/recommended/responses.js +0 -8
- package/dist/baskets/saved/entities.js +0 -23
- package/dist/baskets/saved/payloads.js +0 -18
- package/dist/baskets/saved/responses.js +0 -14
- package/dist/bundle.js +0 -36
- package/dist/common/address.js +0 -5
- package/dist/common/array.js +0 -17
- package/dist/common/client-id.js +0 -5
- package/dist/common/hex-string.js +0 -5
- package/dist/common/index.js +0 -4
- package/dist/common/refinement.js +0 -64
- package/dist/common/request.js +0 -24
- package/dist/common/response.js +0 -28
- package/dist/common/schema.js +0 -18
- package/dist/common/trade-legs.js +0 -50
- package/dist/connector/index.js +0 -12
- package/dist/copy/entities.js +0 -151
- package/dist/copy/index.js +0 -5
- package/dist/copy/payloads.js +0 -8
- package/dist/copy/performance.js +0 -63
- package/dist/copy/queries.js +0 -20
- package/dist/copy/responses.js +0 -89
- package/dist/execution/entities.js +0 -196
- package/dist/execution/index.js +0 -3
- package/dist/execution/queries.js +0 -18
- package/dist/execution/responses.js +0 -12
- package/dist/fee/entities.js +0 -34
- package/dist/fee/index.js +0 -3
- package/dist/fee/queries.js +0 -12
- package/dist/fee/responses.js +0 -29
- package/dist/fill/entities.js +0 -82
- package/dist/fill/index.js +0 -3
- package/dist/fill/queries.js +0 -14
- package/dist/fill/responses.js +0 -23
- package/dist/funding/entities.js +0 -16
- package/dist/funding/index.js +0 -3
- package/dist/funding/queries.js +0 -8
- package/dist/funding/responses.js +0 -11
- package/dist/instrument/entities.js +0 -102
- package/dist/instrument/index.js +0 -3
- package/dist/instrument/queries.js +0 -15
- package/dist/instrument/responses.js +0 -20
- package/dist/instrument-precision/index.js +0 -56
- package/dist/ladder/entities.js +0 -24
- package/dist/ladder/index.js +0 -4
- package/dist/ladder/payloads.js +0 -96
- package/dist/ladder/queries.js +0 -12
- package/dist/ladder/responses.js +0 -18
- package/dist/leverage/index.js +0 -2
- package/dist/leverage/payloads.js +0 -14
- package/dist/leverage/response.js +0 -5
- package/dist/margin/index.js +0 -2
- package/dist/margin/payloads.js +0 -20
- package/dist/margin/response.js +0 -11
- package/dist/market/entities.js +0 -52
- package/dist/market/index.js +0 -4
- package/dist/market/payloads.js +0 -11
- package/dist/market/queries.js +0 -19
- package/dist/market/responses.js +0 -18
- package/dist/misc/index.js +0 -2
- package/dist/misc/payloads.js +0 -99
- package/dist/misc/responses.js +0 -85
- package/dist/notification/entities.js +0 -274
- package/dist/notification/index.js +0 -4
- package/dist/notification/payloads.js +0 -15
- package/dist/notification/queries.js +0 -29
- package/dist/notification/responses.js +0 -20
- package/dist/order/entities.js +0 -81
- package/dist/order/index.js +0 -1
- package/dist/portfolio/entities.js +0 -77
- package/dist/portfolio/index.js +0 -3
- package/dist/portfolio/queries.js +0 -34
- package/dist/portfolio/responses.js +0 -33
- package/dist/position/entities.js +0 -433
- package/dist/position/index.js +0 -3
- package/dist/position/queries.js +0 -109
- package/dist/position/responses.js +0 -41
- package/dist/price/entities.js +0 -10
- package/dist/price/index.js +0 -3
- package/dist/price/queries.js +0 -8
- package/dist/price/responses.js +0 -15
- package/dist/realtime/channels.js +0 -16
- package/dist/realtime/frames.js +0 -140
- package/dist/realtime/index.js +0 -6
- package/dist/realtime/messages.js +0 -118
- package/dist/realtime/public-events.js +0 -92
- package/dist/realtime/user-events.js +0 -32
- package/dist/realtime/vault-events.js +0 -42
- package/dist/rebalance/entities.js +0 -86
- package/dist/rebalance/index.js +0 -4
- package/dist/rebalance/payloads.js +0 -56
- package/dist/rebalance/queries.js +0 -14
- package/dist/rebalance/responses.js +0 -41
- package/dist/schedule/entities.js +0 -239
- package/dist/schedule/index.js +0 -5
- package/dist/schedule/payloads.js +0 -85
- package/dist/schedule/queries.js +0 -30
- package/dist/schedule/randomization.js +0 -15
- package/dist/schedule/responses.js +0 -22
- package/dist/schedule/twap-config.js +0 -29
- package/dist/statistics/entities.js +0 -105
- package/dist/statistics/index.js +0 -3
- package/dist/statistics/queries.js +0 -111
- package/dist/statistics/responses.js +0 -67
- package/dist/sync/index.js +0 -2
- package/dist/sync/payloads.js +0 -136
- package/dist/sync/responses.js +0 -28
- package/dist/tca/entities.js +0 -9
- package/dist/tca/index.js +0 -3
- package/dist/tca/queries.js +0 -14
- package/dist/tca/responses.js +0 -126
- package/dist/trade/entities.js +0 -101
- package/dist/trade/index.js +0 -4
- package/dist/trade/payloads.js +0 -84
- package/dist/trade/queries.js +0 -9
- package/dist/trade/responses.js +0 -25
- package/dist/trade-accounts/entities.js +0 -61
- package/dist/trade-accounts/index.js +0 -4
- package/dist/trade-accounts/payloads.js +0 -132
- package/dist/trade-accounts/queries.js +0 -7
- package/dist/trade-accounts/response.js +0 -79
- package/dist/traders/index.js +0 -2
- package/dist/traders/performance.js +0 -21
- package/dist/traders/public.js +0 -192
- package/dist/trigger/common/index.js +0 -39
- package/dist/trigger/entities/conditions.js +0 -174
- package/dist/trigger/entities/index.js +0 -257
- package/dist/trigger/index.js +0 -9
- package/dist/trigger/oracle.js +0 -22
- package/dist/trigger/payloads/conditions.js +0 -213
- package/dist/trigger/payloads/config.js +0 -3
- package/dist/trigger/payloads/index.js +0 -173
- package/dist/trigger/queries.js +0 -16
- package/dist/trigger/refinement/index.js +0 -2
- package/dist/trigger/refinement/static.refinement.js +0 -50
- package/dist/trigger/refinement/trailing.refinement.js +0 -83
- package/dist/trigger/responses.js +0 -18
- package/dist/triggers/entities.js +0 -27
- package/dist/triggers/index.js +0 -3
- package/dist/triggers/queries.js +0 -10
- package/dist/triggers/responses.js +0 -9
- package/dist/users/entities.js +0 -45
- package/dist/users/index.js +0 -4
- package/dist/users/payloads.js +0 -33
- package/dist/users/queries.js +0 -8
- package/dist/users/response.js +0 -28
- package/dist/vaults/entities.js +0 -96
- package/dist/vaults/index.js +0 -4
- package/dist/vaults/payloads.js +0 -65
- package/dist/vaults/queries.js +0 -66
- package/dist/vaults/responses.js +0 -368
- /package/dist/{baskets/saved/index.js → rewards/index.d.ts} +0 -0
package/dist/users/payloads.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
|
|
3
|
-
const UpdateUserPreferences = z.object({
|
|
4
|
-
slippageToleranceBps: z.int().min(1).max(1e4).optional().describe("User slippage preference in basis points")
|
|
5
|
-
}).describe("Payload to update user preferences");
|
|
6
|
-
const DISPLAY_NAME_REGEX = /^[\p{L}\p{N} .'-]+$/u;
|
|
7
|
-
const DisplayNameSchema = z.preprocess((value) => {
|
|
8
|
-
if (typeof value !== "string") return value;
|
|
9
|
-
return value.normalize("NFKC").trim().replace(/\s+/g, " ");
|
|
10
|
-
}, z.string().min(1, "Display name must be at least 1 character").max(40, "Display name must be at most 40 characters").refine((value) => !/[\u200B-\u200D\uFEFF]/.test(value), {
|
|
11
|
-
message: "Display name contains invisible characters"
|
|
12
|
-
}).refine((value) => DISPLAY_NAME_REGEX.test(value), {
|
|
13
|
-
message: "Display name may only contain letters, numbers, spaces, apostrophes, hyphens, and periods"
|
|
14
|
-
}).refine((value) => /[\p{L}\p{N}]/u.test(value), {
|
|
15
|
-
message: "Display name must contain at least one letter or number"
|
|
16
|
-
}).refine((value) => !/^[ .'-]|[ .'-]$/.test(value), {
|
|
17
|
-
message: "Display name cannot start or end with punctuation"
|
|
18
|
-
}).refine((value) => !/[ .'-]{2,}/.test(value), {
|
|
19
|
-
message: "Display name cannot contain repeated separators"
|
|
20
|
-
}));
|
|
21
|
-
const UpdateUserDisplayName = z.object({
|
|
22
|
-
displayName: DisplayNameSchema
|
|
23
|
-
}).describe("Payload to update user display name");
|
|
24
|
-
const ReferralCodeSpelling = z.string().min(1).max(32).regex(/^[\x20-\x7E]+$/, "Referral code must contain printable ASCII characters only");
|
|
25
|
-
const IssuedReferralCodeSpelling = z.string().trim().min(1).max(32).regex(/^[A-Za-z0-9_-]+$/, "Referral code must contain only letters, digits, hyphens, or underscores");
|
|
26
|
-
const CreateReferralCode = z.object({
|
|
27
|
-
referralCode: IssuedReferralCodeSpelling
|
|
28
|
-
}).describe("Payload to issue a referral code to the authenticated user");
|
|
29
|
-
const BindReferralCode = z.object({
|
|
30
|
-
referralCode: ReferralCodeSpelling
|
|
31
|
-
}).describe("Payload to bind a referral code permanently to the authenticated user");
|
|
32
|
-
|
|
33
|
-
export { BindReferralCode, CreateReferralCode, UpdateUserDisplayName, UpdateUserPreferences };
|
package/dist/users/queries.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { CursorFindParams } from '../common/request';
|
|
3
|
-
|
|
4
|
-
const ReferralRefereeListParams = CursorFindParams.extend({
|
|
5
|
-
limit: z.coerce.number().int().positive().max(100).optional().default(20)
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
export { ReferralRefereeListParams };
|
package/dist/users/response.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { CursorResponse } from '../common/response';
|
|
3
|
-
import { UnsignedDecimalString } from '../common/schema';
|
|
4
|
-
import { UserPreferences, UserProfile, ReferralReferee } from './entities';
|
|
5
|
-
|
|
6
|
-
const ProfileResponse = z.object({
|
|
7
|
-
profile: UserProfile,
|
|
8
|
-
preferences: UserPreferences
|
|
9
|
-
});
|
|
10
|
-
const UpdateUserPreferencesResponse = z.object({
|
|
11
|
-
preferences: UserPreferences
|
|
12
|
-
});
|
|
13
|
-
const UpdateUserDisplayNameResponse = z.object({
|
|
14
|
-
displayName: z.string().describe("Updated user display name")
|
|
15
|
-
});
|
|
16
|
-
const ReferralStatusResponse = z.object({
|
|
17
|
-
ownedCodes: z.array(z.string()).describe("Exact case-sensitive referral codes owned by the authenticated user"),
|
|
18
|
-
referrerCode: z.string().optional().describe("Exact case-sensitive code owned by the permanent referrer")
|
|
19
|
-
});
|
|
20
|
-
const ReferralRefereeListResponse = CursorResponse.extend({
|
|
21
|
-
count: z.number().int().nonnegative().describe("Total referees this list yields, counting bound V3 users and pending legacy wallets together"),
|
|
22
|
-
pendingCount: z.number().int().nonnegative().describe("Subset of count whose verified legacy wallet has no V3 identity yet, so no binding exists"),
|
|
23
|
-
totalVolumeUsd: UnsignedDecimalString.describe("Post-binding V3 volume from real confirmed Pear fills on Hyperliquid and Lighter across the complete bound referee set, independent of pagination"),
|
|
24
|
-
totalEarnedUsd: UnsignedDecimalString.describe("The referrer's share of the Pear fees on the same fills totalVolumeUsd counts, independent of pagination"),
|
|
25
|
-
referees: z.array(ReferralReferee)
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
export { ProfileResponse, ReferralRefereeListResponse, ReferralStatusResponse, UpdateUserDisplayNameResponse, UpdateUserPreferencesResponse };
|
package/dist/vaults/entities.js
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { EthereumAddress } from '../common/address';
|
|
3
|
-
|
|
4
|
-
const VaultStatus = z.enum([
|
|
5
|
-
"active",
|
|
6
|
-
"inactive",
|
|
7
|
-
"pending_activation"
|
|
8
|
-
]);
|
|
9
|
-
const Vault = z.object({
|
|
10
|
-
id: z.string().uuid(),
|
|
11
|
-
vaultAddress: EthereumAddress,
|
|
12
|
-
ownerAddress: EthereumAddress,
|
|
13
|
-
traderAddress: EthereumAddress.nullable(),
|
|
14
|
-
agentAddress: EthereumAddress,
|
|
15
|
-
status: VaultStatus,
|
|
16
|
-
isApproved: z.boolean(),
|
|
17
|
-
name: z.string().nullable(),
|
|
18
|
-
about: z.string().nullable(),
|
|
19
|
-
imageUrl: z.string().nullable(),
|
|
20
|
-
transactionHash: z.string().nullable(),
|
|
21
|
-
maxWithdrawalPeriodDays: z.number().int(),
|
|
22
|
-
createdAt: z.string().datetime(),
|
|
23
|
-
updatedAt: z.string().datetime()
|
|
24
|
-
});
|
|
25
|
-
const Activity = z.object({
|
|
26
|
-
id: z.string(),
|
|
27
|
-
// Absent columns drop off the wire entirely rather than shipping as present nulls.
|
|
28
|
-
vaultAddress: z.string().optional(),
|
|
29
|
-
// Mirrors the vault_activity_type Postgres enum; duplicated literally because the SDK cannot import the database package.
|
|
30
|
-
type: z.enum([
|
|
31
|
-
"vault.create",
|
|
32
|
-
"vault.set_trader",
|
|
33
|
-
"vault.update_metadata",
|
|
34
|
-
"bridge.withdraw_to_evm"
|
|
35
|
-
]),
|
|
36
|
-
status: z.enum([
|
|
37
|
-
"pending",
|
|
38
|
-
"succeeded",
|
|
39
|
-
"failed"
|
|
40
|
-
]),
|
|
41
|
-
txHash: z.string().optional(),
|
|
42
|
-
error: z.string().optional(),
|
|
43
|
-
createdAt: z.iso.datetime(),
|
|
44
|
-
updatedAt: z.iso.datetime()
|
|
45
|
-
});
|
|
46
|
-
const VaultEvent = z.object({
|
|
47
|
-
id: z.string(),
|
|
48
|
-
vaultAddress: EthereumAddress,
|
|
49
|
-
eventType: z.enum([
|
|
50
|
-
"DEPOSIT",
|
|
51
|
-
"WITHDRAWAL"
|
|
52
|
-
]),
|
|
53
|
-
userAddress: EthereumAddress,
|
|
54
|
-
receiver: EthereumAddress,
|
|
55
|
-
assets: z.string(),
|
|
56
|
-
shares: z.string(),
|
|
57
|
-
fee: z.string(),
|
|
58
|
-
withdrawalId: z.string().nullable(),
|
|
59
|
-
txHash: z.string(),
|
|
60
|
-
blockNumber: z.string(),
|
|
61
|
-
logIndex: z.number().int(),
|
|
62
|
-
createdAt: z.string().datetime()
|
|
63
|
-
});
|
|
64
|
-
const NavSnapshot = z.object({
|
|
65
|
-
vaultAddress: EthereumAddress,
|
|
66
|
-
takenAt: z.string().datetime(),
|
|
67
|
-
totalAssets: z.string(),
|
|
68
|
-
totalSupply: z.string(),
|
|
69
|
-
sharePrice: z.string(),
|
|
70
|
-
blockNumber: z.string()
|
|
71
|
-
});
|
|
72
|
-
const NavBucketPoint = z.object({
|
|
73
|
-
bucket: z.iso.datetime(),
|
|
74
|
-
totalAssets: z.string(),
|
|
75
|
-
totalSupply: z.string(),
|
|
76
|
-
sharePrice: z.string(),
|
|
77
|
-
blockNumber: z.string()
|
|
78
|
-
});
|
|
79
|
-
const BulkSnapshotPoint = z.object({
|
|
80
|
-
timestamp: z.number(),
|
|
81
|
-
createdAt: z.string(),
|
|
82
|
-
tvl: z.string().optional(),
|
|
83
|
-
sharePrice: z.string().optional(),
|
|
84
|
-
accountValue: z.null().optional(),
|
|
85
|
-
unrealizedPnl: z.null().optional(),
|
|
86
|
-
cumulativeRealizedPnl: z.null().optional(),
|
|
87
|
-
leaderSharePct: z.null().optional()
|
|
88
|
-
});
|
|
89
|
-
const SparklinePoint = z.object({
|
|
90
|
-
timestamp: z.number(),
|
|
91
|
-
createdAt: z.string(),
|
|
92
|
-
tvl: z.string(),
|
|
93
|
-
sharePrice: z.string()
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
export { Activity, BulkSnapshotPoint, NavBucketPoint, NavSnapshot, SparklinePoint, Vault, VaultEvent, VaultStatus };
|
package/dist/vaults/index.js
DELETED
package/dist/vaults/payloads.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { EthereumAddress } from '../common/address';
|
|
3
|
-
import { NavBucket } from './queries';
|
|
4
|
-
|
|
5
|
-
const PositiveAmount = z.string().regex(/^\d+(\.\d+)?$/).refine((amount) => /[1-9]/.test(amount), "Amount must be positive");
|
|
6
|
-
const LeaderSignedAction = z.object({
|
|
7
|
-
signature: z.string().regex(/^0x[0-9a-fA-F]{130}$/),
|
|
8
|
-
nonce: z.string().min(1),
|
|
9
|
-
deadline: z.number().int().positive()
|
|
10
|
-
});
|
|
11
|
-
const CreateVault = LeaderSignedAction.extend({
|
|
12
|
-
leader: EthereumAddress,
|
|
13
|
-
name: z.string().min(1).max(255),
|
|
14
|
-
description: z.string(),
|
|
15
|
-
imageUri: z.url().optional(),
|
|
16
|
-
configId: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
|
|
17
|
-
maxWithdrawalPeriodDays: z.number().int().min(1).optional()
|
|
18
|
-
}).strict();
|
|
19
|
-
const SetTrader = LeaderSignedAction.extend({
|
|
20
|
-
traderAddress: EthereumAddress
|
|
21
|
-
}).strict();
|
|
22
|
-
const UpdateVaultMetadata = LeaderSignedAction.extend({
|
|
23
|
-
name: z.string().min(1).max(255),
|
|
24
|
-
about: z.string(),
|
|
25
|
-
imageUri: z.union([
|
|
26
|
-
z.url(),
|
|
27
|
-
z.literal("")
|
|
28
|
-
])
|
|
29
|
-
}).strict();
|
|
30
|
-
const WithdrawToEvm = LeaderSignedAction.extend({
|
|
31
|
-
amount: PositiveAmount.refine((amount) => (amount.split(".")[1]?.length ?? 0) <= 6, "USDC supports six decimal places"),
|
|
32
|
-
tokenId: z.string().optional()
|
|
33
|
-
}).strict();
|
|
34
|
-
const AgentApprove = LeaderSignedAction.strict();
|
|
35
|
-
const SetUnifiedAccount = LeaderSignedAction.strict();
|
|
36
|
-
const BuilderFeeApproval = z.object({
|
|
37
|
-
builderAddress: EthereumAddress,
|
|
38
|
-
// Typed as the percent literal Hyperliquid's SDK demands; the predicate is the same rule the regex enforced.
|
|
39
|
-
maxFeeRate: z.custom((value) => typeof value === "string" && /^\d*\.?\d+%$/.test(value))
|
|
40
|
-
});
|
|
41
|
-
const SnapshotsBulk = z.object({
|
|
42
|
-
vaultAddresses: z.array(EthereumAddress).min(1).max(50),
|
|
43
|
-
startDate: z.string().regex(/^\d+$/).refine((value) => Number(value) <= 864e10),
|
|
44
|
-
endDate: z.string().regex(/^\d+$/).refine((value) => Number(value) <= 864e10),
|
|
45
|
-
bucket: NavBucket,
|
|
46
|
-
fields: z.array(z.enum([
|
|
47
|
-
"tvl",
|
|
48
|
-
"sharePrice",
|
|
49
|
-
"accountValue",
|
|
50
|
-
"unrealizedPnl",
|
|
51
|
-
"cumulativeRealizedPnl",
|
|
52
|
-
"leaderSharePct"
|
|
53
|
-
])).min(1)
|
|
54
|
-
}).strict().refine((value) => Number(value.startDate) <= Number(value.endDate), "startDate must precede endDate");
|
|
55
|
-
const TypedDataPayload = z.object({
|
|
56
|
-
domain: z.record(z.string(), z.unknown()),
|
|
57
|
-
types: z.record(z.string(), z.array(z.object({
|
|
58
|
-
name: z.string(),
|
|
59
|
-
type: z.string()
|
|
60
|
-
}))),
|
|
61
|
-
primaryType: z.string().min(1),
|
|
62
|
-
message: z.record(z.string(), z.unknown())
|
|
63
|
-
}).strict();
|
|
64
|
-
|
|
65
|
-
export { AgentApprove, BuilderFeeApproval, CreateVault, LeaderSignedAction, PositiveAmount, SetTrader, SetUnifiedAccount, SnapshotsBulk, TypedDataPayload, UpdateVaultMetadata, WithdrawToEvm };
|
package/dist/vaults/queries.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { EthereumAddress } from '../common/address';
|
|
3
|
-
|
|
4
|
-
const VaultListParams = z.object({
|
|
5
|
-
owner: EthereumAddress.optional(),
|
|
6
|
-
trader: EthereumAddress.optional(),
|
|
7
|
-
name: z.string().max(200).optional(),
|
|
8
|
-
limit: z.coerce.number().int().min(1).max(200).optional(),
|
|
9
|
-
cursor: z.uuid().optional()
|
|
10
|
-
}).strict();
|
|
11
|
-
const NavBucket = z.enum([
|
|
12
|
-
"1m",
|
|
13
|
-
"5m",
|
|
14
|
-
"15m",
|
|
15
|
-
"1h",
|
|
16
|
-
"1d"
|
|
17
|
-
]);
|
|
18
|
-
const SparklineRange = z.enum([
|
|
19
|
-
"1h",
|
|
20
|
-
"24h",
|
|
21
|
-
"7d",
|
|
22
|
-
"30d"
|
|
23
|
-
]);
|
|
24
|
-
const VaultsOverviewQueryParams = z.object({
|
|
25
|
-
page: z.coerce.number().int().min(1).default(1),
|
|
26
|
-
pageSize: z.coerce.number().int().min(1).max(100).default(100),
|
|
27
|
-
sparklineRange: SparklineRange.default("24h"),
|
|
28
|
-
sparklineBucket: NavBucket.default("1h"),
|
|
29
|
-
name: z.string().optional()
|
|
30
|
-
}).strict();
|
|
31
|
-
const VaultStatsQueryParams = z.object({
|
|
32
|
-
address: EthereumAddress.optional()
|
|
33
|
-
}).strict();
|
|
34
|
-
const VaultInvestmentsQueryParams = z.object({
|
|
35
|
-
address: EthereumAddress
|
|
36
|
-
}).strict();
|
|
37
|
-
const NavResolution = z.enum([
|
|
38
|
-
"1m",
|
|
39
|
-
"5m",
|
|
40
|
-
"1h",
|
|
41
|
-
"1d"
|
|
42
|
-
]);
|
|
43
|
-
const NavStatsWindow = z.enum([
|
|
44
|
-
"24h",
|
|
45
|
-
"7d",
|
|
46
|
-
"30d"
|
|
47
|
-
]);
|
|
48
|
-
const NavRangeQueryParams = z.object({
|
|
49
|
-
from: z.iso.datetime({
|
|
50
|
-
offset: true
|
|
51
|
-
}),
|
|
52
|
-
to: z.iso.datetime({
|
|
53
|
-
offset: true
|
|
54
|
-
}),
|
|
55
|
-
resolution: NavResolution.default("1m")
|
|
56
|
-
}).strict().refine((query) => new Date(query.from) <= new Date(query.to), "from must precede to");
|
|
57
|
-
const NavStatsQueryParams = z.object({
|
|
58
|
-
window: NavStatsWindow
|
|
59
|
-
}).strict();
|
|
60
|
-
const VaultEventListParams = z.object({
|
|
61
|
-
userAddress: EthereumAddress.optional(),
|
|
62
|
-
limit: z.coerce.number().int().min(1).max(1e3).optional(),
|
|
63
|
-
offset: z.coerce.number().int().min(0).optional()
|
|
64
|
-
}).strict();
|
|
65
|
-
|
|
66
|
-
export { NavBucket, NavRangeQueryParams, NavResolution, NavStatsQueryParams, NavStatsWindow, SparklineRange, VaultEventListParams, VaultInvestmentsQueryParams, VaultListParams, VaultStatsQueryParams, VaultsOverviewQueryParams };
|
package/dist/vaults/responses.js
DELETED
|
@@ -1,368 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { EthereumAddress } from '../common/address';
|
|
3
|
-
import { Vault, VaultStatus, BulkSnapshotPoint, SparklinePoint, Activity, NavBucketPoint, NavSnapshot, VaultEvent } from './entities';
|
|
4
|
-
import { NavStatsWindow } from './queries';
|
|
5
|
-
|
|
6
|
-
var __defProp = Object.defineProperty;
|
|
7
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
-
const VaultResponse = z.object({
|
|
9
|
-
vault: Vault
|
|
10
|
-
});
|
|
11
|
-
const VaultListResponse = z.object({
|
|
12
|
-
vaults: z.array(Vault)
|
|
13
|
-
});
|
|
14
|
-
const CreatedVaultCompleted = z.object({
|
|
15
|
-
success: z.literal(true),
|
|
16
|
-
vaultAddress: EthereumAddress,
|
|
17
|
-
agentAddress: EthereumAddress,
|
|
18
|
-
ownerAddress: EthereumAddress,
|
|
19
|
-
status: VaultStatus,
|
|
20
|
-
maxWithdrawalPeriodDays: z.number().int(),
|
|
21
|
-
txHash: z.string()
|
|
22
|
-
});
|
|
23
|
-
const CreatedVaultInProgress = z.object({
|
|
24
|
-
success: z.literal(false),
|
|
25
|
-
status: z.literal("in_progress"),
|
|
26
|
-
activityId: z.string()
|
|
27
|
-
});
|
|
28
|
-
const CreatedVaultResult = z.discriminatedUnion("success", [
|
|
29
|
-
CreatedVaultCompleted,
|
|
30
|
-
CreatedVaultInProgress
|
|
31
|
-
]);
|
|
32
|
-
const CreatedVaultResponse = z.object({
|
|
33
|
-
result: CreatedVaultResult
|
|
34
|
-
});
|
|
35
|
-
const SetTraderCompleted = z.object({
|
|
36
|
-
success: z.literal(true),
|
|
37
|
-
vault: Vault
|
|
38
|
-
});
|
|
39
|
-
const SetTraderInProgress = z.object({
|
|
40
|
-
success: z.literal(false),
|
|
41
|
-
status: z.literal("in_progress"),
|
|
42
|
-
activityId: z.string()
|
|
43
|
-
});
|
|
44
|
-
const SetTraderResult = z.discriminatedUnion("success", [
|
|
45
|
-
SetTraderCompleted,
|
|
46
|
-
SetTraderInProgress
|
|
47
|
-
]);
|
|
48
|
-
const SetTraderResponse = z.object({
|
|
49
|
-
result: SetTraderResult
|
|
50
|
-
});
|
|
51
|
-
const UpdateVaultMetadataCompleted = z.object({
|
|
52
|
-
success: z.literal(true),
|
|
53
|
-
vault: Vault
|
|
54
|
-
});
|
|
55
|
-
const UpdateVaultMetadataInProgress = z.object({
|
|
56
|
-
success: z.literal(false),
|
|
57
|
-
status: z.literal("in_progress"),
|
|
58
|
-
activityId: z.string()
|
|
59
|
-
});
|
|
60
|
-
const UpdateVaultMetadataResult = z.discriminatedUnion("success", [
|
|
61
|
-
UpdateVaultMetadataCompleted,
|
|
62
|
-
UpdateVaultMetadataInProgress
|
|
63
|
-
]);
|
|
64
|
-
const UpdateVaultMetadataResponse = z.object({
|
|
65
|
-
result: UpdateVaultMetadataResult
|
|
66
|
-
});
|
|
67
|
-
const BulkSnapshotsResponse = z.object({
|
|
68
|
-
snapshots: z.record(z.string(), z.array(BulkSnapshotPoint))
|
|
69
|
-
});
|
|
70
|
-
const InvestorEntry = z.object({
|
|
71
|
-
address: z.string(),
|
|
72
|
-
depositAmount: z.string(),
|
|
73
|
-
shares: z.string(),
|
|
74
|
-
currentValue: z.string(),
|
|
75
|
-
unrealizedPnl: z.number()
|
|
76
|
-
});
|
|
77
|
-
const VaultStatsResponse = z.object({
|
|
78
|
-
tvl: z.string(),
|
|
79
|
-
totalSupply: z.string(),
|
|
80
|
-
sharePrice: z.string(),
|
|
81
|
-
withdrawalFeeBps: z.number(),
|
|
82
|
-
leaderInvestment: z.object({
|
|
83
|
-
depositAmount: z.string(),
|
|
84
|
-
currentValue: z.string(),
|
|
85
|
-
shares: z.string(),
|
|
86
|
-
percentageOfTVL: z.number()
|
|
87
|
-
}),
|
|
88
|
-
totalPnl: z.number(),
|
|
89
|
-
totalPnlPercentage: z.number().nullable(),
|
|
90
|
-
thirtyDayPnl: z.number(),
|
|
91
|
-
apr: z.number().nullable(),
|
|
92
|
-
maxDrawdown: z.number().nullable(),
|
|
93
|
-
// Recorded traded volume (USD) from the confirmed fills ledger; omitted when the vault has no trading account mapping.
|
|
94
|
-
tradedVolume: z.number().optional(),
|
|
95
|
-
winRate: z.number().nullable(),
|
|
96
|
-
profitFactor: z.number().nullable(),
|
|
97
|
-
unrealizedPnl: z.number(),
|
|
98
|
-
userStats: z.object({
|
|
99
|
-
allTimePnl: z.number(),
|
|
100
|
-
depositAmount: z.string(),
|
|
101
|
-
currentValue: z.string(),
|
|
102
|
-
shares: z.string(),
|
|
103
|
-
unrealizedPnl: z.number()
|
|
104
|
-
}).optional(),
|
|
105
|
-
investors: z.array(InvestorEntry)
|
|
106
|
-
});
|
|
107
|
-
const VaultOverviewResponse = z.object({
|
|
108
|
-
items: z.array(z.object({
|
|
109
|
-
vaultAddress: EthereumAddress,
|
|
110
|
-
agentAddress: EthereumAddress,
|
|
111
|
-
leaderAddress: EthereumAddress,
|
|
112
|
-
name: z.string().nullable(),
|
|
113
|
-
imageUrl: z.string().nullable(),
|
|
114
|
-
latest: z.object({
|
|
115
|
-
tvl: z.string(),
|
|
116
|
-
sharePrice: z.string(),
|
|
117
|
-
accountValue: z.string().nullable(),
|
|
118
|
-
openInterest: z.string().nullable(),
|
|
119
|
-
unrealizedPnl: z.string().nullable(),
|
|
120
|
-
cumulativeRealizedPnl: z.string().nullable(),
|
|
121
|
-
investorCount: z.number(),
|
|
122
|
-
createdAt: z.string()
|
|
123
|
-
}).nullable(),
|
|
124
|
-
sparkline: z.array(SparklinePoint)
|
|
125
|
-
})),
|
|
126
|
-
page: z.number(),
|
|
127
|
-
pageSize: z.number(),
|
|
128
|
-
total: z.number()
|
|
129
|
-
});
|
|
130
|
-
const VaultInvestmentsResponse = z.object({
|
|
131
|
-
totals: z.object({
|
|
132
|
-
totalInvested: z.number(),
|
|
133
|
-
totalCurrentValue: z.number(),
|
|
134
|
-
totalPnl: z.number(),
|
|
135
|
-
totalUnrealizedPnl: z.number()
|
|
136
|
-
}),
|
|
137
|
-
investments: z.array(z.object({
|
|
138
|
-
vaultAddress: EthereumAddress,
|
|
139
|
-
name: z.string().nullable(),
|
|
140
|
-
imageUrl: z.string().nullable(),
|
|
141
|
-
isLeader: z.boolean(),
|
|
142
|
-
depositAmount: z.string(),
|
|
143
|
-
currentValue: z.string(),
|
|
144
|
-
allTimePnl: z.number(),
|
|
145
|
-
unrealizedPnl: z.number(),
|
|
146
|
-
shares: z.string()
|
|
147
|
-
})),
|
|
148
|
-
partial: z.boolean(),
|
|
149
|
-
failedVaults: z.array(z.object({
|
|
150
|
-
vaultAddress: EthereumAddress,
|
|
151
|
-
name: z.string().nullable(),
|
|
152
|
-
reason: z.string()
|
|
153
|
-
}))
|
|
154
|
-
});
|
|
155
|
-
const ActivityResponse = z.object({
|
|
156
|
-
vaultAddress: z.string(),
|
|
157
|
-
activity: z.array(Activity)
|
|
158
|
-
});
|
|
159
|
-
const ActivityItemResponse = z.object({
|
|
160
|
-
activity: Activity
|
|
161
|
-
});
|
|
162
|
-
const AgentApproveSent = z.object({
|
|
163
|
-
success: z.literal(true),
|
|
164
|
-
transactionHash: z.string(),
|
|
165
|
-
tokenAddress: z.string(),
|
|
166
|
-
spender: z.string(),
|
|
167
|
-
amount: z.string()
|
|
168
|
-
});
|
|
169
|
-
const AgentApproveSkipped = z.object({
|
|
170
|
-
success: z.literal(false),
|
|
171
|
-
status: z.literal("already_approved"),
|
|
172
|
-
tokenAddress: z.string(),
|
|
173
|
-
spender: z.string(),
|
|
174
|
-
allowance: z.string()
|
|
175
|
-
});
|
|
176
|
-
const AgentApproveResult = z.discriminatedUnion("success", [
|
|
177
|
-
AgentApproveSent,
|
|
178
|
-
AgentApproveSkipped
|
|
179
|
-
]);
|
|
180
|
-
const AgentApproveResponse = z.object({
|
|
181
|
-
result: AgentApproveResult
|
|
182
|
-
});
|
|
183
|
-
const UnifiedAccountResponse = z.object({
|
|
184
|
-
success: z.boolean(),
|
|
185
|
-
agentAddress: z.string()
|
|
186
|
-
});
|
|
187
|
-
const NavRangeResponse = z.object({
|
|
188
|
-
points: z.array(NavBucketPoint)
|
|
189
|
-
});
|
|
190
|
-
const NavStatsResponse = z.object({
|
|
191
|
-
window: NavStatsWindow,
|
|
192
|
-
samples: z.number().int().nonnegative(),
|
|
193
|
-
returnPct: z.number().nullable(),
|
|
194
|
-
sharePriceMin: z.string().nullable(),
|
|
195
|
-
sharePriceMax: z.string().nullable(),
|
|
196
|
-
sharePriceFirst: z.string().nullable(),
|
|
197
|
-
sharePriceLast: z.string().nullable()
|
|
198
|
-
});
|
|
199
|
-
const NavSnapshotResponse = z.object({
|
|
200
|
-
snapshot: NavSnapshot
|
|
201
|
-
});
|
|
202
|
-
const WithdrawCompleted = z.object({
|
|
203
|
-
success: z.literal(true),
|
|
204
|
-
amount: z.string(),
|
|
205
|
-
token: z.string(),
|
|
206
|
-
tokenId: z.string(),
|
|
207
|
-
destination: z.string(),
|
|
208
|
-
vaultAddress: z.string(),
|
|
209
|
-
activityId: z.string(),
|
|
210
|
-
bridgeStatus: z.string(),
|
|
211
|
-
bridgeSettleMs: z.number(),
|
|
212
|
-
transferTxHash: z.string()
|
|
213
|
-
});
|
|
214
|
-
const WithdrawInProgress = z.object({
|
|
215
|
-
success: z.literal(false),
|
|
216
|
-
status: z.literal("in_progress"),
|
|
217
|
-
amount: z.string(),
|
|
218
|
-
token: z.string(),
|
|
219
|
-
tokenId: z.string(),
|
|
220
|
-
destination: z.string(),
|
|
221
|
-
vaultAddress: z.string(),
|
|
222
|
-
activityId: z.string()
|
|
223
|
-
});
|
|
224
|
-
const WithdrawToEvmResult = z.discriminatedUnion("success", [
|
|
225
|
-
WithdrawCompleted,
|
|
226
|
-
WithdrawInProgress
|
|
227
|
-
]);
|
|
228
|
-
const WithdrawToEvmResponse = z.object({
|
|
229
|
-
result: WithdrawToEvmResult
|
|
230
|
-
});
|
|
231
|
-
const VaultEventListResponse = z.object({
|
|
232
|
-
events: z.array(VaultEvent)
|
|
233
|
-
});
|
|
234
|
-
const VaultRequestIssue = z.object({
|
|
235
|
-
path: z.string(),
|
|
236
|
-
message: z.string(),
|
|
237
|
-
code: z.string()
|
|
238
|
-
});
|
|
239
|
-
const createRefusal = /* @__PURE__ */ __name((code) => z.object({
|
|
240
|
-
error: z.literal(code),
|
|
241
|
-
details: z.string().optional()
|
|
242
|
-
}), "createRefusal");
|
|
243
|
-
const VaultServiceError = z.discriminatedUnion("error", [
|
|
244
|
-
// Authentication and authorization.
|
|
245
|
-
z.object({
|
|
246
|
-
error: z.literal("UNAUTHORIZED"),
|
|
247
|
-
reason: z.string()
|
|
248
|
-
}),
|
|
249
|
-
z.object({
|
|
250
|
-
error: z.literal("NOT_OWNER"),
|
|
251
|
-
vaultAddress: z.string()
|
|
252
|
-
}),
|
|
253
|
-
// Request validation.
|
|
254
|
-
z.object({
|
|
255
|
-
error: z.literal("INVALID_REQUEST"),
|
|
256
|
-
issues: z.array(VaultRequestIssue)
|
|
257
|
-
}),
|
|
258
|
-
// Lookups.
|
|
259
|
-
z.object({
|
|
260
|
-
error: z.literal("VAULT_NOT_FOUND"),
|
|
261
|
-
vaultAddress: z.string()
|
|
262
|
-
}),
|
|
263
|
-
z.object({
|
|
264
|
-
error: z.literal("VAULT_TRADE_ACCOUNT_UNAVAILABLE"),
|
|
265
|
-
vaultAddress: z.string()
|
|
266
|
-
}),
|
|
267
|
-
z.object({
|
|
268
|
-
error: z.literal("ACTIVITY_NOT_FOUND"),
|
|
269
|
-
activityId: z.string()
|
|
270
|
-
}),
|
|
271
|
-
z.object({
|
|
272
|
-
error: z.literal("NAV_UNAVAILABLE"),
|
|
273
|
-
vaultAddress: z.string()
|
|
274
|
-
}),
|
|
275
|
-
// Admission ceilings.
|
|
276
|
-
z.object({
|
|
277
|
-
error: z.literal("RATE_LIMITED"),
|
|
278
|
-
reason: z.string(),
|
|
279
|
-
retryAfterSeconds: z.number()
|
|
280
|
-
}),
|
|
281
|
-
z.object({
|
|
282
|
-
error: z.literal("VAULT_CREATE_CEILING"),
|
|
283
|
-
retryAfterSeconds: z.number()
|
|
284
|
-
}),
|
|
285
|
-
// Provider failures; `incidentId` correlates the response with the full server-side log line.
|
|
286
|
-
z.object({
|
|
287
|
-
error: z.literal("HL_SET_ABSTRACTION_FAILED"),
|
|
288
|
-
incidentId: z.string()
|
|
289
|
-
}),
|
|
290
|
-
// On-chain reads and workflow-answered refusals.
|
|
291
|
-
z.object({
|
|
292
|
-
error: z.literal("EVM_OPERATION_FAILED"),
|
|
293
|
-
vaultAddress: z.string(),
|
|
294
|
-
reason: z.string()
|
|
295
|
-
}),
|
|
296
|
-
z.object({
|
|
297
|
-
error: z.literal("HL_APPROVE_AGENT_FAILED"),
|
|
298
|
-
vaultAddress: z.string()
|
|
299
|
-
}),
|
|
300
|
-
// Create-vault refusals translated from the workflow's terminal reasons.
|
|
301
|
-
createRefusal("DEPLOYER_NOT_WHITELISTED"),
|
|
302
|
-
createRefusal("INVALID_CONFIG"),
|
|
303
|
-
createRefusal("CONFIG_DISABLED"),
|
|
304
|
-
createRefusal("AGENT_ALREADY_ASSIGNED"),
|
|
305
|
-
createRefusal("EMPTY_NAME"),
|
|
306
|
-
createRefusal("INVALID_ADDRESS"),
|
|
307
|
-
createRefusal("DEPLOY_REVERTED"),
|
|
308
|
-
createRefusal("VAULT_EVENT_MISSING"),
|
|
309
|
-
createRefusal("DEPLOYER_INSUFFICIENT_FUNDS"),
|
|
310
|
-
// Ambiguous post-dispatch outcomes; `activityId` anchors a support lookup.
|
|
311
|
-
z.object({
|
|
312
|
-
error: z.literal("CREATE_VAULT_OPERATION_FAILED"),
|
|
313
|
-
activityId: z.string()
|
|
314
|
-
}),
|
|
315
|
-
z.object({
|
|
316
|
-
error: z.literal("SET_TRADER_OPERATION_FAILED"),
|
|
317
|
-
activityId: z.string()
|
|
318
|
-
}),
|
|
319
|
-
z.object({
|
|
320
|
-
error: z.literal("UPDATE_METADATA_OPERATION_FAILED"),
|
|
321
|
-
activityId: z.string()
|
|
322
|
-
}),
|
|
323
|
-
z.object({
|
|
324
|
-
error: z.literal("VAULT_NOT_FOUND_AFTER_SET_TRADER"),
|
|
325
|
-
activityId: z.string()
|
|
326
|
-
}),
|
|
327
|
-
// Bridge withdraw family.
|
|
328
|
-
z.object({
|
|
329
|
-
error: z.literal("UNSUPPORTED_TOKEN"),
|
|
330
|
-
reason: z.string()
|
|
331
|
-
}),
|
|
332
|
-
z.object({
|
|
333
|
-
error: z.literal("WITHDRAW_IN_PROGRESS"),
|
|
334
|
-
activityId: z.string()
|
|
335
|
-
}),
|
|
336
|
-
z.object({
|
|
337
|
-
error: z.literal("BRIDGE_OPERATION_FAILED"),
|
|
338
|
-
activityId: z.string()
|
|
339
|
-
}),
|
|
340
|
-
z.object({
|
|
341
|
-
error: z.literal("BRIDGE_SEND_REJECTED"),
|
|
342
|
-
activityId: z.string()
|
|
343
|
-
}),
|
|
344
|
-
z.object({
|
|
345
|
-
error: z.literal("BRIDGE_VAULT_NOT_FOUND"),
|
|
346
|
-
activityId: z.string()
|
|
347
|
-
}),
|
|
348
|
-
z.object({
|
|
349
|
-
error: z.literal("BRIDGE_INVALID_AMOUNT"),
|
|
350
|
-
activityId: z.string()
|
|
351
|
-
}),
|
|
352
|
-
z.object({
|
|
353
|
-
error: z.literal("BRIDGE_NONCE_EXPIRED"),
|
|
354
|
-
activityId: z.string()
|
|
355
|
-
}),
|
|
356
|
-
// Custody refusals: Privy refused to sign the action, so the venue never saw it.
|
|
357
|
-
createRefusal("CUSTODY_REFUSED"),
|
|
358
|
-
z.object({
|
|
359
|
-
error: z.literal("SET_TRADER_CUSTODY_REFUSED"),
|
|
360
|
-
vaultAddress: z.string()
|
|
361
|
-
}),
|
|
362
|
-
z.object({
|
|
363
|
-
error: z.literal("BRIDGE_CUSTODY_REFUSED"),
|
|
364
|
-
activityId: z.string()
|
|
365
|
-
})
|
|
366
|
-
]);
|
|
367
|
-
|
|
368
|
-
export { ActivityItemResponse, ActivityResponse, AgentApproveResponse, AgentApproveResult, BulkSnapshotsResponse, CreatedVaultResponse, CreatedVaultResult, NavRangeResponse, NavSnapshotResponse, NavStatsResponse, SetTraderResponse, SetTraderResult, UnifiedAccountResponse, UpdateVaultMetadataResponse, UpdateVaultMetadataResult, VaultEventListResponse, VaultInvestmentsResponse, VaultListResponse, VaultOverviewResponse, VaultRequestIssue, VaultResponse, VaultServiceError, VaultStatsResponse, WithdrawToEvmResponse, WithdrawToEvmResult };
|
|
File without changes
|