@arcaresearch/sdk 0.0.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/README.md +34 -0
- package/dist/admin.d.ts +70 -0
- package/dist/admin.d.ts.map +1 -0
- package/dist/admin.js +208 -0
- package/dist/admin.js.map +1 -0
- package/dist/arca.d.ts +307 -0
- package/dist/arca.d.ts.map +1 -0
- package/dist/arca.js +780 -0
- package/dist/arca.js.map +1 -0
- package/dist/client.d.ts +32 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +119 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +53 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +122 -0
- package/dist/errors.js.map +1 -0
- package/dist/events.d.ts +2 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +6 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +1067 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +38 -0
- package/dist/types.js.map +1 -0
- package/dist/websocket.d.ts +83 -0
- package/dist/websocket.d.ts.map +1 -0
- package/dist/websocket.js +383 -0
- package/dist/websocket.js.map +1 -0
- package/package.json +40 -0
package/README.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# @arcaresearch/sdk (TypeScript)
|
|
2
|
+
|
|
3
|
+
TypeScript SDK for the Arca platform.
|
|
4
|
+
|
|
5
|
+
## Build
|
|
6
|
+
|
|
7
|
+
From repo root:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pnpm run sdk:build
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or directly:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
cd sdk/typescript
|
|
17
|
+
pnpm run build
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Dev (watch mode)
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pnpm run sdk:dev
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Clean
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pnpm run sdk:clean
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Requirements
|
|
33
|
+
|
|
34
|
+
- Node.js 20+
|
package/dist/admin.d.ts
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { ApiKeyCreatedResponse, ApiKeyListResponse, AuthAuditFilters, AuthAuditListResponse, CredentialScopeResponse, AuthResponse, RefreshResponse, BuilderProfile, Invitation, InvitationListResponse, InvitationPreview, InviteMemberRequest, MyOrgMembership, Organization, OrgMember, OrgMemberListResponse, Realm, RealmListResponse, RealmSettings, RealmType, UpdateMemberRequest } from './types';
|
|
2
|
+
export interface ArcaAdminConfig {
|
|
3
|
+
/** Base URL of the Arca API (e.g. https://api.arcaos.io). */
|
|
4
|
+
baseUrl?: string;
|
|
5
|
+
/** JWT token for authenticated calls. Not needed for signUp/signIn. */
|
|
6
|
+
token?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Admin client for builder-scoped operations that don't require a realm context:
|
|
10
|
+
* authentication, realm management, and API key management.
|
|
11
|
+
*
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const admin = new ArcaAdmin({ baseUrl: 'http://localhost:3052' });
|
|
14
|
+
* const { token, builder } = await admin.signIn('email@example.com', 'password');
|
|
15
|
+
* admin.setToken(token);
|
|
16
|
+
* const realms = await admin.listRealms();
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class ArcaAdmin {
|
|
20
|
+
private readonly baseUrl;
|
|
21
|
+
private token;
|
|
22
|
+
private activeOrgId;
|
|
23
|
+
constructor(config?: ArcaAdminConfig);
|
|
24
|
+
/** Update the auth token (e.g. after signIn). */
|
|
25
|
+
setToken(token: string): void;
|
|
26
|
+
/** Set the active organization for multi-org users. */
|
|
27
|
+
setActiveOrgId(orgId: string | null): void;
|
|
28
|
+
signUp(email: string, password: string, orgName?: string): Promise<AuthResponse>;
|
|
29
|
+
signIn(email: string, password: string): Promise<AuthResponse>;
|
|
30
|
+
getMe(): Promise<BuilderProfile>;
|
|
31
|
+
refresh(refreshToken: string): Promise<RefreshResponse>;
|
|
32
|
+
logout(refreshToken: string): Promise<void>;
|
|
33
|
+
createRealm(name: string, type?: RealmType, description?: string): Promise<Realm>;
|
|
34
|
+
listRealms(): Promise<RealmListResponse>;
|
|
35
|
+
getRealm(id: string): Promise<Realm>;
|
|
36
|
+
deleteRealm(id: string): Promise<{
|
|
37
|
+
deleted: boolean;
|
|
38
|
+
}>;
|
|
39
|
+
updateRealmSettings(id: string, settings: Partial<RealmSettings>): Promise<Realm>;
|
|
40
|
+
createApiKey(name: string): Promise<ApiKeyCreatedResponse>;
|
|
41
|
+
listApiKeys(): Promise<ApiKeyListResponse>;
|
|
42
|
+
revokeApiKey(id: string): Promise<{
|
|
43
|
+
revoked: boolean;
|
|
44
|
+
}>;
|
|
45
|
+
listAuthAuditLog(filters?: AuthAuditFilters): Promise<AuthAuditListResponse>;
|
|
46
|
+
listMyOrgs(): Promise<MyOrgMembership[]>;
|
|
47
|
+
getOrg(): Promise<Organization>;
|
|
48
|
+
listMembers(): Promise<OrgMemberListResponse>;
|
|
49
|
+
updateMember(memberId: string, request: UpdateMemberRequest): Promise<OrgMember>;
|
|
50
|
+
removeMember(memberId: string): Promise<{
|
|
51
|
+
deleted: boolean;
|
|
52
|
+
}>;
|
|
53
|
+
inviteMember(request: InviteMemberRequest): Promise<Invitation>;
|
|
54
|
+
listInvitations(): Promise<InvitationListResponse>;
|
|
55
|
+
revokeInvitation(invitationId: string): Promise<{
|
|
56
|
+
revoked: boolean;
|
|
57
|
+
}>;
|
|
58
|
+
previewInvitation(token: string): Promise<InvitationPreview>;
|
|
59
|
+
acceptInvitation(token: string): Promise<OrgMember>;
|
|
60
|
+
listPendingInvitations(): Promise<InvitationListResponse>;
|
|
61
|
+
transferOwnership(targetUserId: string): Promise<{
|
|
62
|
+
transferred: boolean;
|
|
63
|
+
}>;
|
|
64
|
+
getCredentialScope(opts: {
|
|
65
|
+
tokenJti?: string;
|
|
66
|
+
apiKeyId?: string;
|
|
67
|
+
}): Promise<CredentialScopeResponse>;
|
|
68
|
+
private request;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=admin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
|
package/dist/admin.js
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArcaAdmin = void 0;
|
|
4
|
+
const errors_1 = require("./errors");
|
|
5
|
+
const DEFAULT_BASE_URL = 'https://api.arcaos.io';
|
|
6
|
+
/**
|
|
7
|
+
* Admin client for builder-scoped operations that don't require a realm context:
|
|
8
|
+
* authentication, realm management, and API key management.
|
|
9
|
+
*
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const admin = new ArcaAdmin({ baseUrl: 'http://localhost:3052' });
|
|
12
|
+
* const { token, builder } = await admin.signIn('email@example.com', 'password');
|
|
13
|
+
* admin.setToken(token);
|
|
14
|
+
* const realms = await admin.listRealms();
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
class ArcaAdmin {
|
|
18
|
+
baseUrl;
|
|
19
|
+
token;
|
|
20
|
+
activeOrgId = null;
|
|
21
|
+
constructor(config) {
|
|
22
|
+
this.baseUrl = ((config?.baseUrl ?? DEFAULT_BASE_URL).replace(/\/+$/, '')) + '/api/v1';
|
|
23
|
+
this.token = config?.token ?? null;
|
|
24
|
+
}
|
|
25
|
+
/** Update the auth token (e.g. after signIn). */
|
|
26
|
+
setToken(token) {
|
|
27
|
+
this.token = token;
|
|
28
|
+
}
|
|
29
|
+
/** Set the active organization for multi-org users. */
|
|
30
|
+
setActiveOrgId(orgId) {
|
|
31
|
+
this.activeOrgId = orgId;
|
|
32
|
+
}
|
|
33
|
+
// ---- Auth ----
|
|
34
|
+
async signUp(email, password, orgName) {
|
|
35
|
+
return this.request('/auth/signup', {
|
|
36
|
+
method: 'POST',
|
|
37
|
+
body: JSON.stringify({ email, password, ...(orgName ? { orgName } : {}) }),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
async signIn(email, password) {
|
|
41
|
+
return this.request('/auth/signin', {
|
|
42
|
+
method: 'POST',
|
|
43
|
+
body: JSON.stringify({ email, password }),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
async getMe() {
|
|
47
|
+
return this.request('/auth/me');
|
|
48
|
+
}
|
|
49
|
+
async refresh(refreshToken) {
|
|
50
|
+
return this.request('/auth/refresh', {
|
|
51
|
+
method: 'POST',
|
|
52
|
+
body: JSON.stringify({ refreshToken }),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
async logout(refreshToken) {
|
|
56
|
+
await this.request('/auth/logout', {
|
|
57
|
+
method: 'POST',
|
|
58
|
+
body: JSON.stringify({ refreshToken }),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
// ---- Realms ----
|
|
62
|
+
async createRealm(name, type = 'demo', description) {
|
|
63
|
+
return this.request('/realms', {
|
|
64
|
+
method: 'POST',
|
|
65
|
+
body: JSON.stringify({ name, type, description }),
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
async listRealms() {
|
|
69
|
+
return this.request('/realms');
|
|
70
|
+
}
|
|
71
|
+
async getRealm(id) {
|
|
72
|
+
return this.request(`/realms/${id}`);
|
|
73
|
+
}
|
|
74
|
+
async deleteRealm(id) {
|
|
75
|
+
return this.request(`/realms/${id}`, { method: 'DELETE' });
|
|
76
|
+
}
|
|
77
|
+
async updateRealmSettings(id, settings) {
|
|
78
|
+
return this.request(`/realms/${id}/settings`, {
|
|
79
|
+
method: 'PATCH',
|
|
80
|
+
body: JSON.stringify(settings),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
// ---- API Keys ----
|
|
84
|
+
async createApiKey(name) {
|
|
85
|
+
return this.request('/api-keys', {
|
|
86
|
+
method: 'POST',
|
|
87
|
+
body: JSON.stringify({ name }),
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
async listApiKeys() {
|
|
91
|
+
return this.request('/api-keys');
|
|
92
|
+
}
|
|
93
|
+
async revokeApiKey(id) {
|
|
94
|
+
return this.request(`/api-keys/${id}`, { method: 'DELETE' });
|
|
95
|
+
}
|
|
96
|
+
// ---- Auth Audit ----
|
|
97
|
+
async listAuthAuditLog(filters) {
|
|
98
|
+
const params = new URLSearchParams();
|
|
99
|
+
if (filters?.eventType)
|
|
100
|
+
params.set('eventType', filters.eventType);
|
|
101
|
+
if (filters?.realmId)
|
|
102
|
+
params.set('realmId', filters.realmId);
|
|
103
|
+
if (filters?.since)
|
|
104
|
+
params.set('since', filters.since);
|
|
105
|
+
if (filters?.until)
|
|
106
|
+
params.set('until', filters.until);
|
|
107
|
+
if (filters?.success !== undefined)
|
|
108
|
+
params.set('success', String(filters.success));
|
|
109
|
+
if (filters?.limit !== undefined)
|
|
110
|
+
params.set('limit', String(filters.limit));
|
|
111
|
+
if (filters?.offset !== undefined)
|
|
112
|
+
params.set('offset', String(filters.offset));
|
|
113
|
+
const qs = params.toString();
|
|
114
|
+
return this.request(`/auth/audit${qs ? `?${qs}` : ''}`);
|
|
115
|
+
}
|
|
116
|
+
// ---- Organization / Team ----
|
|
117
|
+
async listMyOrgs() {
|
|
118
|
+
return this.request('/orgs');
|
|
119
|
+
}
|
|
120
|
+
async getOrg() {
|
|
121
|
+
return this.request('/org');
|
|
122
|
+
}
|
|
123
|
+
async listMembers() {
|
|
124
|
+
return this.request('/org/members');
|
|
125
|
+
}
|
|
126
|
+
async updateMember(memberId, request) {
|
|
127
|
+
return this.request(`/org/members/${memberId}`, {
|
|
128
|
+
method: 'PATCH',
|
|
129
|
+
body: JSON.stringify(request),
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
async removeMember(memberId) {
|
|
133
|
+
return this.request(`/org/members/${memberId}`, { method: 'DELETE' });
|
|
134
|
+
}
|
|
135
|
+
async inviteMember(request) {
|
|
136
|
+
return this.request('/org/invitations', {
|
|
137
|
+
method: 'POST',
|
|
138
|
+
body: JSON.stringify(request),
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
async listInvitations() {
|
|
142
|
+
return this.request('/org/invitations');
|
|
143
|
+
}
|
|
144
|
+
async revokeInvitation(invitationId) {
|
|
145
|
+
return this.request(`/org/invitations/${invitationId}`, { method: 'DELETE' });
|
|
146
|
+
}
|
|
147
|
+
async previewInvitation(token) {
|
|
148
|
+
return this.request(`/invitations/${token}/preview`);
|
|
149
|
+
}
|
|
150
|
+
async acceptInvitation(token) {
|
|
151
|
+
return this.request(`/invitations/${token}/accept`, { method: 'POST' });
|
|
152
|
+
}
|
|
153
|
+
async listPendingInvitations() {
|
|
154
|
+
return this.request('/invitations/pending');
|
|
155
|
+
}
|
|
156
|
+
async transferOwnership(targetUserId) {
|
|
157
|
+
return this.request('/org/transfer-ownership', {
|
|
158
|
+
method: 'POST',
|
|
159
|
+
body: JSON.stringify({ targetUserId }),
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
async getCredentialScope(opts) {
|
|
163
|
+
const params = new URLSearchParams();
|
|
164
|
+
if (opts.tokenJti)
|
|
165
|
+
params.set('tokenJti', opts.tokenJti);
|
|
166
|
+
if (opts.apiKeyId)
|
|
167
|
+
params.set('apiKeyId', opts.apiKeyId);
|
|
168
|
+
const qs = params.toString();
|
|
169
|
+
return this.request(`/auth/audit/scope${qs ? `?${qs}` : ''}`);
|
|
170
|
+
}
|
|
171
|
+
// ---- Private ----
|
|
172
|
+
async request(path, init) {
|
|
173
|
+
const headers = {
|
|
174
|
+
'Content-Type': 'application/json',
|
|
175
|
+
};
|
|
176
|
+
if (this.token) {
|
|
177
|
+
headers['Authorization'] = `Bearer ${this.token}`;
|
|
178
|
+
}
|
|
179
|
+
if (this.activeOrgId) {
|
|
180
|
+
headers['X-Arca-Org-Id'] = this.activeOrgId;
|
|
181
|
+
}
|
|
182
|
+
const res = await fetch(`${this.baseUrl}${path}`, {
|
|
183
|
+
...init,
|
|
184
|
+
headers: { ...headers, ...(init?.headers ?? {}) },
|
|
185
|
+
});
|
|
186
|
+
const text = await res.text();
|
|
187
|
+
let body;
|
|
188
|
+
try {
|
|
189
|
+
body = JSON.parse(text);
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
const preview = text.length > 200 ? text.slice(0, 200) + '…' : text;
|
|
193
|
+
throw new errors_1.ArcaError('NON_JSON_RESPONSE', `Server returned non-JSON response (HTTP ${res.status}): ${preview}`);
|
|
194
|
+
}
|
|
195
|
+
if (!body.success || !body.data) {
|
|
196
|
+
if (res.status === 401) {
|
|
197
|
+
throw new errors_1.UnauthorizedError(body.error?.message);
|
|
198
|
+
}
|
|
199
|
+
if (body.error) {
|
|
200
|
+
throw (0, errors_1.mapApiError)(body.error.code, body.error.message);
|
|
201
|
+
}
|
|
202
|
+
throw new errors_1.ArcaError('UNKNOWN', `Request failed with status ${res.status}`);
|
|
203
|
+
}
|
|
204
|
+
return body.data;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
exports.ArcaAdmin = ArcaAdmin;
|
|
208
|
+
//# sourceMappingURL=admin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
|
package/dist/arca.d.ts
ADDED
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import { ArcaConfig, ArcaObject, ArcaObjectBrowseResponse, ArcaObjectDetailResponse, ArcaObjectListResponse, ArcaObjectVersionsResponse, ArcaBalance, AggregationSourceDto, BrowseObjectsOptions, CreateArcaObjectResponse, CreateArcaOptions, CreateDenominatedArcaOptions, CreateWatchResponse, DeleteArcaObjectResponse, DepositOptions, EnsureDeletedOptions, WithdrawalOptions, InitiateWithdrawalResponse, EventCallback, EventDetailResponse, EventSubscription, EventSubscriptionOptions, ExplorerSummary, InitiateDepositResponse, ListObjectsOptions, ListEventsOptions, ListOperationsOptions, EventListResponse, NonceResponse, Operation, OperationDetailResponse, OperationListResponse, OrderOperationResponse, PathAggregation, PnlResponse, EquityHistoryResponse, ReconciliationStateListResponse, SnapshotBalancesResponse, StateDeltaListResponse, TransferOptions, TransferResponse, CancelOrderOptions, CreatePerpsExchangeOptions, PlaceOrderOptions, UpdateLeverageOptions, UpdateLeverageResponse, LeverageSetting, ExchangeState, SimOrder, SimOrderWithFills, SimPosition, SimMetaResponse, SimMidsResponse, SimBookResponse, InvariantCheckResponse, ActiveAssetData, CandleInterval, CandlesResponse } from './types';
|
|
2
|
+
import { WebSocketManager } from './websocket';
|
|
3
|
+
/**
|
|
4
|
+
* The Arca SDK client.
|
|
5
|
+
*
|
|
6
|
+
* Usage with API key (backend):
|
|
7
|
+
* ```typescript
|
|
8
|
+
* const arca = new Arca({
|
|
9
|
+
* apiKey: 'arca_78ae7276_...',
|
|
10
|
+
* realm: 'development',
|
|
11
|
+
* });
|
|
12
|
+
* await arca.ready();
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* Usage with scoped token (frontend):
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const arca = Arca.fromToken(scopedJwt);
|
|
18
|
+
* await arca.ready();
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare class Arca {
|
|
22
|
+
private readonly client;
|
|
23
|
+
private readonly realmInput;
|
|
24
|
+
private resolvedRealmId;
|
|
25
|
+
private initPromise;
|
|
26
|
+
/** WebSocket manager for real-time events. */
|
|
27
|
+
readonly ws: WebSocketManager;
|
|
28
|
+
/** @deprecated Use ws.legacySubscribe() or ws.on() / ws.subscribe() instead. */
|
|
29
|
+
readonly events: {
|
|
30
|
+
subscribe: (optsOrCallback: EventSubscriptionOptions | EventCallback, maybeCallback?: EventCallback) => EventSubscription;
|
|
31
|
+
};
|
|
32
|
+
constructor(config: ArcaConfig);
|
|
33
|
+
/**
|
|
34
|
+
* Create an Arca instance from a scoped JWT token.
|
|
35
|
+
* The realm is extracted from the token claims automatically.
|
|
36
|
+
*
|
|
37
|
+
* @param token - Scoped JWT issued by POST /auth/token
|
|
38
|
+
* @param opts - Optional overrides (baseUrl, realm)
|
|
39
|
+
*/
|
|
40
|
+
static fromToken(token: string, opts?: {
|
|
41
|
+
baseUrl?: string;
|
|
42
|
+
realm?: string;
|
|
43
|
+
}): Arca;
|
|
44
|
+
/**
|
|
45
|
+
* Initialize the SDK by resolving the realm slug to an ID.
|
|
46
|
+
* This is called automatically on the first API call, but can be
|
|
47
|
+
* called explicitly for eager initialization.
|
|
48
|
+
*/
|
|
49
|
+
ready(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Create a denominated Arca object at the given path (idempotent).
|
|
52
|
+
* If one already exists with matching type/denomination, it is returned.
|
|
53
|
+
* Otherwise a new one is created.
|
|
54
|
+
*
|
|
55
|
+
* Pass `operationPath` (from the nonce API with separator ":") for
|
|
56
|
+
* explicit operation-level idempotency, especially when delete+recreate
|
|
57
|
+
* scenarios are expected.
|
|
58
|
+
*/
|
|
59
|
+
createDenominatedArca(opts: CreateDenominatedArcaOptions): Promise<CreateArcaObjectResponse>;
|
|
60
|
+
/**
|
|
61
|
+
* Create an Arca object of any type at the given path (idempotent).
|
|
62
|
+
*
|
|
63
|
+
* Pass `operationPath` (from the nonce API with separator ":") for
|
|
64
|
+
* explicit operation-level idempotency.
|
|
65
|
+
*/
|
|
66
|
+
createArca(opts: CreateArcaOptions): Promise<CreateArcaObjectResponse>;
|
|
67
|
+
/** @deprecated Use createDenominatedArca instead */
|
|
68
|
+
ensureDenominatedArca(opts: CreateDenominatedArcaOptions): Promise<CreateArcaObjectResponse>;
|
|
69
|
+
/** @deprecated Use createArca instead */
|
|
70
|
+
ensureArca(opts: CreateArcaOptions): Promise<CreateArcaObjectResponse>;
|
|
71
|
+
/**
|
|
72
|
+
* Delete an Arca object by path. If sweepTo is provided, remaining funds
|
|
73
|
+
* are transferred to that Arca before deletion.
|
|
74
|
+
*
|
|
75
|
+
* If the object is already deleted, returns the existing state.
|
|
76
|
+
*/
|
|
77
|
+
ensureDeleted(opts: EnsureDeletedOptions): Promise<DeleteArcaObjectResponse>;
|
|
78
|
+
/**
|
|
79
|
+
* Get an Arca object by path.
|
|
80
|
+
*/
|
|
81
|
+
getObject(path: string): Promise<ArcaObject>;
|
|
82
|
+
/**
|
|
83
|
+
* Get an Arca object's full detail (operations, events, deltas, balances) by ID.
|
|
84
|
+
*/
|
|
85
|
+
getObjectDetail(objectId: string): Promise<ArcaObjectDetailResponse>;
|
|
86
|
+
/**
|
|
87
|
+
* List Arca objects, optionally filtered by path prefix.
|
|
88
|
+
*/
|
|
89
|
+
listObjects(opts?: ListObjectsOptions): Promise<ArcaObjectListResponse>;
|
|
90
|
+
/**
|
|
91
|
+
* Get balances for an Arca object by ID.
|
|
92
|
+
*/
|
|
93
|
+
getBalances(objectId: string): Promise<ArcaBalance[]>;
|
|
94
|
+
/**
|
|
95
|
+
* Get balances for an Arca object by path.
|
|
96
|
+
* Resolves the path to an object ID, then fetches balances.
|
|
97
|
+
*/
|
|
98
|
+
getBalancesByPath(path: string): Promise<ArcaBalance[]>;
|
|
99
|
+
/**
|
|
100
|
+
* Browse Arca objects in a folder-like structure.
|
|
101
|
+
* Returns folders (path prefixes) and objects at the given prefix.
|
|
102
|
+
*/
|
|
103
|
+
browseObjects(opts?: BrowseObjectsOptions): Promise<ArcaObjectBrowseResponse>;
|
|
104
|
+
/**
|
|
105
|
+
* Get version history for an Arca object.
|
|
106
|
+
*/
|
|
107
|
+
getObjectVersions(objectId: string): Promise<ArcaObjectVersionsResponse>;
|
|
108
|
+
/**
|
|
109
|
+
* Get snapshot balances for an Arca object at a specific point in time.
|
|
110
|
+
*/
|
|
111
|
+
getSnapshotBalances(objectId: string, asOf: string): Promise<SnapshotBalancesResponse>;
|
|
112
|
+
/**
|
|
113
|
+
* Execute a transfer between two Arca objects.
|
|
114
|
+
* Settlement is immediate for denominated targets, or async for
|
|
115
|
+
* targets that require a receiver workflow (e.g. exchange objects).
|
|
116
|
+
* The operation path serves as the idempotency key.
|
|
117
|
+
*/
|
|
118
|
+
transfer(opts: TransferOptions): Promise<TransferResponse>;
|
|
119
|
+
/**
|
|
120
|
+
* Initiate a deposit to a denominated Arca object.
|
|
121
|
+
* In demo realms, deposits are simulated with a configurable delay.
|
|
122
|
+
*/
|
|
123
|
+
deposit(opts: DepositOptions): Promise<InitiateDepositResponse>;
|
|
124
|
+
/**
|
|
125
|
+
* Initiate a withdrawal from a denominated Arca object to an on-chain address.
|
|
126
|
+
* Requires custody service (on-chain mode) to be active.
|
|
127
|
+
*/
|
|
128
|
+
withdrawal(opts: WithdrawalOptions): Promise<InitiateWithdrawalResponse>;
|
|
129
|
+
/**
|
|
130
|
+
* Get operation detail by ID (includes correlated events and deltas).
|
|
131
|
+
*/
|
|
132
|
+
getOperation(operationId: string): Promise<OperationDetailResponse>;
|
|
133
|
+
/**
|
|
134
|
+
* List operations in the realm.
|
|
135
|
+
*/
|
|
136
|
+
listOperations(opts?: ListOperationsOptions): Promise<OperationListResponse>;
|
|
137
|
+
/**
|
|
138
|
+
* List events in the realm.
|
|
139
|
+
*/
|
|
140
|
+
listEvents(opts?: ListEventsOptions): Promise<EventListResponse>;
|
|
141
|
+
/**
|
|
142
|
+
* Get event detail by ID (includes the parent operation and correlated deltas).
|
|
143
|
+
*/
|
|
144
|
+
getEventDetail(eventId: string): Promise<EventDetailResponse>;
|
|
145
|
+
/**
|
|
146
|
+
* List state deltas for a given Arca path.
|
|
147
|
+
*/
|
|
148
|
+
listDeltas(arcaPath: string): Promise<StateDeltaListResponse>;
|
|
149
|
+
/**
|
|
150
|
+
* Get the next unique nonce for a path prefix.
|
|
151
|
+
* Useful for constructing unique idempotent operation paths.
|
|
152
|
+
*
|
|
153
|
+
* **Important:** Reserve the nonce *before* the operation and store the
|
|
154
|
+
* resulting path. Reuse the stored path on retry — never call `nonce()`
|
|
155
|
+
* inline inside an operation call, as each invocation produces a new
|
|
156
|
+
* unique path and defeats idempotency.
|
|
157
|
+
*
|
|
158
|
+
* @param prefix - Path prefix (e.g. '/op/transfer/fund')
|
|
159
|
+
* @param separator - Override separator between prefix and nonce number.
|
|
160
|
+
* Default: '/' if prefix ends with '/', otherwise '-'.
|
|
161
|
+
* Use ':' for operation nonces (e.g. '/op/create/wallets/main:1').
|
|
162
|
+
*/
|
|
163
|
+
nonce(prefix: string, separator?: string): Promise<NonceResponse>;
|
|
164
|
+
/**
|
|
165
|
+
* Get aggregate counts for the realm.
|
|
166
|
+
*/
|
|
167
|
+
summary(): Promise<ExplorerSummary>;
|
|
168
|
+
/**
|
|
169
|
+
* Get aggregated valuation for all objects under a path prefix.
|
|
170
|
+
* Pass `asOf` to get historical aggregation at a past timestamp.
|
|
171
|
+
*/
|
|
172
|
+
getPathAggregation(prefix: string, options?: {
|
|
173
|
+
asOf?: string;
|
|
174
|
+
}): Promise<PathAggregation>;
|
|
175
|
+
/**
|
|
176
|
+
* Get P&L (profit and loss) for objects under a path prefix over a time range.
|
|
177
|
+
* Returns starting/ending equity, net inflows/outflows, and calculated P&L.
|
|
178
|
+
*/
|
|
179
|
+
getPnl(prefix: string, from: string, to: string): Promise<PnlResponse>;
|
|
180
|
+
/**
|
|
181
|
+
* Get equity history (time-series) for objects under a path prefix.
|
|
182
|
+
* Returns equity values sampled evenly over the time range.
|
|
183
|
+
* The `points` parameter controls how many samples (default 200, max 1000).
|
|
184
|
+
*/
|
|
185
|
+
getEquityHistory(prefix: string, from: string, to: string, points?: number): Promise<EquityHistoryResponse>;
|
|
186
|
+
/**
|
|
187
|
+
* Create an aggregation watch that tracks a set of sources.
|
|
188
|
+
* Returns the watch ID and the initial aggregation.
|
|
189
|
+
* When the underlying data changes, `aggregation.updated` events are
|
|
190
|
+
* pushed via WebSocket with the updated aggregation inline.
|
|
191
|
+
*/
|
|
192
|
+
createAggregationWatch(sources: AggregationSourceDto[]): Promise<CreateWatchResponse>;
|
|
193
|
+
/**
|
|
194
|
+
* Get the current aggregation for an existing watch.
|
|
195
|
+
*/
|
|
196
|
+
getWatchAggregation(watchId: string): Promise<PathAggregation>;
|
|
197
|
+
/**
|
|
198
|
+
* Destroy an aggregation watch. The server stops tracking and pushing updates.
|
|
199
|
+
*/
|
|
200
|
+
destroyAggregationWatch(watchId: string): Promise<void>;
|
|
201
|
+
/**
|
|
202
|
+
* List reconciliation state entries for the realm.
|
|
203
|
+
*/
|
|
204
|
+
listReconciliationState(): Promise<ReconciliationStateListResponse>;
|
|
205
|
+
/**
|
|
206
|
+
* Create a Perps Exchange Arca object.
|
|
207
|
+
* Automatically sets type=exchange, denomination=USD, and exchangeType metadata.
|
|
208
|
+
*/
|
|
209
|
+
createPerpsExchange(opts: CreatePerpsExchangeOptions): Promise<CreateArcaObjectResponse>;
|
|
210
|
+
/**
|
|
211
|
+
* Get exchange account state (equity, margin, positions, orders).
|
|
212
|
+
*/
|
|
213
|
+
getExchangeState(objectId: string): Promise<ExchangeState>;
|
|
214
|
+
/**
|
|
215
|
+
* Get active asset trading data for an exchange object: max trade sizes,
|
|
216
|
+
* available margin, mark price, and fee rate. Accounts for leverage,
|
|
217
|
+
* existing positions, and fees (including builder fee when provided).
|
|
218
|
+
*/
|
|
219
|
+
getActiveAssetData(objectId: string, coin: string, builderFeeBps?: number): Promise<ActiveAssetData>;
|
|
220
|
+
/**
|
|
221
|
+
* Update leverage for a coin on an exchange Arca object.
|
|
222
|
+
* Leverage is a per-coin setting that applies to the entire position.
|
|
223
|
+
* Re-margins any existing position at the new leverage.
|
|
224
|
+
* Rejects if the account can't afford the increased margin when decreasing leverage.
|
|
225
|
+
*/
|
|
226
|
+
updateLeverage(opts: UpdateLeverageOptions): Promise<UpdateLeverageResponse>;
|
|
227
|
+
/**
|
|
228
|
+
* Get leverage settings for a coin (or all coins) on an exchange Arca object.
|
|
229
|
+
*/
|
|
230
|
+
getLeverage(objectId: string, coin?: string): Promise<LeverageSetting | LeverageSetting[]>;
|
|
231
|
+
/**
|
|
232
|
+
* Get all leverage settings for an exchange Arca object.
|
|
233
|
+
* Unlike getLeverage(), always returns an array.
|
|
234
|
+
*/
|
|
235
|
+
listLeverageSettings(objectId: string): Promise<LeverageSetting[]>;
|
|
236
|
+
/**
|
|
237
|
+
* Place an order on an exchange Arca object.
|
|
238
|
+
* The operation path serves as the idempotency key.
|
|
239
|
+
*/
|
|
240
|
+
placeOrder(opts: PlaceOrderOptions): Promise<OrderOperationResponse>;
|
|
241
|
+
/**
|
|
242
|
+
* List orders for an exchange Arca object.
|
|
243
|
+
*/
|
|
244
|
+
listOrders(objectId: string, status?: string): Promise<SimOrder[]>;
|
|
245
|
+
/**
|
|
246
|
+
* Get a specific order with its fills.
|
|
247
|
+
*/
|
|
248
|
+
getOrder(objectId: string, orderId: string): Promise<SimOrderWithFills>;
|
|
249
|
+
/**
|
|
250
|
+
* Cancel an order on an exchange Arca object.
|
|
251
|
+
* The operation path serves as the idempotency key.
|
|
252
|
+
*/
|
|
253
|
+
cancelOrder(opts: CancelOrderOptions): Promise<OrderOperationResponse>;
|
|
254
|
+
/**
|
|
255
|
+
* List positions for an exchange Arca object.
|
|
256
|
+
*/
|
|
257
|
+
listPositions(objectId: string): Promise<SimPosition[]>;
|
|
258
|
+
/**
|
|
259
|
+
* Get market metadata (supported assets).
|
|
260
|
+
*/
|
|
261
|
+
getMarketMeta(): Promise<SimMetaResponse>;
|
|
262
|
+
/**
|
|
263
|
+
* Get current mid prices for all assets.
|
|
264
|
+
*/
|
|
265
|
+
getMarketMids(): Promise<SimMidsResponse>;
|
|
266
|
+
/**
|
|
267
|
+
* Get L2 order book for a specific coin.
|
|
268
|
+
*/
|
|
269
|
+
getOrderBook(coin: string): Promise<SimBookResponse>;
|
|
270
|
+
/**
|
|
271
|
+
* Get OHLCV candle data for a specific coin.
|
|
272
|
+
*/
|
|
273
|
+
getCandles(coin: string, interval: CandleInterval, options?: {
|
|
274
|
+
startTime?: number;
|
|
275
|
+
endTime?: number;
|
|
276
|
+
}): Promise<CandlesResponse>;
|
|
277
|
+
/**
|
|
278
|
+
* Run all DB-only invariant checks (I1-I6) via the internal API.
|
|
279
|
+
* Returns structured results per invariant with pass/fail and violations.
|
|
280
|
+
*/
|
|
281
|
+
checkInvariants(limit?: number): Promise<InvariantCheckResponse>;
|
|
282
|
+
/**
|
|
283
|
+
* Poll until all operations in the realm have reached a terminal state.
|
|
284
|
+
* Useful after a batch of async operations (deposits, exchange transfers)
|
|
285
|
+
* to wait for settlement before running invariant checks.
|
|
286
|
+
*
|
|
287
|
+
* @param opts.intervalMs - Polling interval in ms (default: 1000)
|
|
288
|
+
* @param opts.timeoutMs - Max wait time in ms (default: 120000)
|
|
289
|
+
* @param opts.onPoll - Optional callback with the current pending count
|
|
290
|
+
* @returns The number of polls performed
|
|
291
|
+
*/
|
|
292
|
+
waitForQuiescence(opts?: {
|
|
293
|
+
intervalMs?: number;
|
|
294
|
+
timeoutMs?: number;
|
|
295
|
+
onPoll?: (pendingCount: number) => void;
|
|
296
|
+
}): Promise<number>;
|
|
297
|
+
/**
|
|
298
|
+
* Wait for a specific operation to reach a terminal state.
|
|
299
|
+
* Uses WebSocket events to resolve immediately when the operation updates.
|
|
300
|
+
* If the WS event arrives without embedded operation data (enrichment failure),
|
|
301
|
+
* fetches the operation via HTTP as a fallback.
|
|
302
|
+
*/
|
|
303
|
+
waitForOperation(operationId: string, timeoutMs?: number): Promise<Operation>;
|
|
304
|
+
private realmId;
|
|
305
|
+
private resolveRealm;
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=arca.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arca.d.ts","sourceRoot":"","sources":["../src/arca.ts"],"names":[],"mappings":"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"}
|