@arcaresearch/sdk 0.1.100 → 0.1.102

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/arca.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { OperationHandle, OrderHandle } from './operation-handle';
2
2
  import type { AuthErrorListener, TokenProvider } from './types';
3
- import { ArcaConfig, ArcaObject, ArcaObjectBrowseResponse, ArcaObjectDetailResponse, ArcaObjectListResponse, ArcaObjectVersionsResponse, ArcaBalance, AggregationSourceDto, BrowseObjectsOptions, EnsureArcaObjectResponse, EnsureArcaOptions, EnsureDenominatedArcaOptions, EnsureInfoOptions, CreateWatchResponse, UpdateLabelsOptions, DeleteArcaObjectResponse, FundAccountOptions, EnsureDeletedOptions, DefundAccountOptions, DefundAccountResponse, EventDetailResponse, ExplorerSummary, FundAccountResponse, ListObjectsOptions, ListEventsOptions, ListOperationsOptions, EventListResponse, NonceResponse, Operation, OperationDetailResponse, OperationListResponse, OrderOperationResponse, PathAggregation, PnlResponse, PnlHistoryResponse, EquityHistoryResponse, ReconciliationStateListResponse, SnapshotBalancesResponse, StateDeltaListResponse, TransferOptions, TransferResponse, CancelOrderOptions, ClosePositionOptions, CreatePerpsExchangeOptions, PlaceOrderOptions, UpdateLeverageOptions, UpdateLeverageResponse, LeverageSetting, ExchangeState, ObjectValuation, SimOrder, SimOrderWithFills, SimPosition, SimMetaResponse, SimMidsResponse, MarketTickersResponse, SimBookResponse, InvariantCheckResponse, ActiveAssetData, AssetFeeEntry, OrderBreakdownOptions, OrderBreakdown, CandleInterval, CandlesResponse, SparklinesResponse, CreatePaymentLinkOptions, CreatePaymentLinkResponse, ListPaymentLinksOptions, PaymentLinkListResponse, FeeEstimateParams, FeeEstimate, FillListResponse, ListFillsOptions, TradeSummaryResponse, TradeSummaryOptions, PlaceTwapOptions, TwapOperationResponse, Twap, TwapLimits } from './types';
3
+ import { ArcaConfig, ArcaObject, ArcaObjectBrowseResponse, ArcaObjectDetailResponse, ArcaObjectListResponse, ArcaObjectVersionsResponse, ArcaBalance, AggregationSourceDto, BrowseObjectsOptions, CreateIsolationZoneOptions, EnsureArcaObjectResponse, EnsureArcaOptions, EnsureDenominatedArcaOptions, EnsureInfoOptions, CreateWatchResponse, UpdateLabelsOptions, DeleteArcaObjectResponse, FundAccountOptions, EnsureDeletedOptions, DefundAccountOptions, DefundAccountResponse, EventDetailResponse, ExportOperationEvidenceOptions, ExplorerSummary, FundAccountResponse, GetOperationOptions, ListObjectsOptions, ListEventsOptions, ListOperationsOptions, EventListResponse, NonceResponse, Operation, OperationDetailResponse, OperationEvidenceExportResponse, OperationListResponse, OrderOperationResponse, PathAggregation, PnlResponse, PnlHistoryResponse, EquityHistoryResponse, ReconciliationStateListResponse, SnapshotBalancesResponse, StateDeltaListResponse, TransferOptions, TransferResponse, CancelOrderOptions, ClosePositionOptions, CreatePerpsExchangeOptions, PlaceOrderOptions, UpdateLeverageOptions, UpdateLeverageResponse, LeverageSetting, ExchangeState, ObjectValuation, SimOrder, SimOrderWithFills, SimPosition, SimMetaResponse, SimMidsResponse, MarketTickersResponse, SimBookResponse, InvariantCheckResponse, ActiveAssetData, AssetFeeEntry, OrderBreakdownOptions, OrderBreakdown, CandleInterval, CandlesResponse, SparklinesResponse, CreatePaymentLinkOptions, CreatePaymentLinkResponse, ListPaymentLinksOptions, PaymentLinkListResponse, FeeEstimateParams, FeeEstimate, FillListResponse, ListFillsOptions, TradeSummaryResponse, TradeSummaryOptions, PlaceTwapOptions, TwapOperationResponse, Twap, TwapLimits, CustodyStatus, CustodyBoundary, CustodyExchangeArca, RegisterRecoveryKeyOptions, RegisterRecoveryKeyResponse, PreparedCustodyTransaction, IsolationZone } from './types';
4
4
  import { WebSocketManager } from './websocket';
5
5
  import { OperationWatchStream, BalanceWatchStream, ObjectWatchStream, ObjectsWatchStream, AggregationWatchStream, EquityChartStream, PnlChartStream, MaxOrderSizeWatchStream, PriceWatchStream, CandleWatchStream, CandleChartStream, ExchangeWatchStream, FillWatchStream, FundingWatchStream } from './streams';
6
6
  import type { MaxOrderSizeWatchOptions } from './streams';
@@ -186,6 +186,11 @@ export declare class Arca {
186
186
  * @param opts.path - Path prefix to browse (default: '/'). Must end with '/'.
187
187
  */
188
188
  browseObjects(opts?: BrowseObjectsOptions): Promise<ArcaObjectBrowseResponse>;
189
+ /**
190
+ * Declare a path as an isolation zone before adding objects beneath it.
191
+ * Returns the existing declaration when the same path was already created.
192
+ */
193
+ createIsolationZone(opts: CreateIsolationZoneOptions): Promise<IsolationZone>;
189
194
  /**
190
195
  * Update labels on an Arca object.
191
196
  * Pass null as a label value to remove that key.
@@ -249,11 +254,15 @@ export declare class Arca {
249
254
  /**
250
255
  * Get operation detail by ID (includes correlated events and deltas).
251
256
  */
252
- getOperation(operationId: string): Promise<OperationDetailResponse>;
257
+ getOperation(operationId: string, options?: GetOperationOptions): Promise<OperationDetailResponse>;
253
258
  /**
254
259
  * List operations in the realm.
255
260
  */
256
261
  listOperations(opts?: ListOperationsOptions): Promise<OperationListResponse>;
262
+ /**
263
+ * Export realm-scoped operation audit evidence over a time range.
264
+ */
265
+ exportOperationEvidence(opts: ExportOperationEvidenceOptions): Promise<OperationEvidenceExportResponse>;
257
266
  /**
258
267
  * List events in the realm.
259
268
  */
@@ -756,6 +765,98 @@ export declare class Arca {
756
765
  * @throws {OperationFailedError} if the operation reaches a failed state
757
766
  */
758
767
  waitForOperation(operationId: string, timeoutMs?: number): Promise<Operation>;
768
+ /**
769
+ * Get the custody status for this realm, including contract address,
770
+ * total balance, all boundaries, exchange arcas, and venue halts.
771
+ */
772
+ getCustodyStatus(): Promise<CustodyStatus>;
773
+ /**
774
+ * Get a single isolation boundary by ID.
775
+ */
776
+ getBoundary(boundaryId: string): Promise<CustodyBoundary>;
777
+ /**
778
+ * List all isolation boundaries for this realm.
779
+ */
780
+ listBoundaries(): Promise<CustodyBoundary[]>;
781
+ /**
782
+ * List exchange arcas, optionally filtered to a specific boundary.
783
+ */
784
+ listExchangeArcas(boundaryId?: string): Promise<CustodyExchangeArca[]>;
785
+ /**
786
+ * Register a recovery key for an isolation boundary.
787
+ * This is an operator-initiated action (valid only when no recovery key is set).
788
+ * After registration, only the recovery key holder can lock/unlock/withdraw.
789
+ *
790
+ * The wallet address is typically generated client-side via `Arca.generateRecoveryKey()`
791
+ * or provided by the user from an existing wallet.
792
+ */
793
+ registerRecoveryKey(opts: RegisterRecoveryKeyOptions): Promise<RegisterRecoveryKeyResponse>;
794
+ /**
795
+ * Prepare an unsigned `lockBoundary` transaction.
796
+ * The caller signs and submits this transaction from their recovery key wallet.
797
+ * Locking freezes all operator fund movement and cancels any pending exit.
798
+ */
799
+ prepareLockBoundary(contractAddress: string, chainId: number, boundaryId: string): PreparedCustodyTransaction;
800
+ /**
801
+ * Prepare an unsigned `unlockBoundary` transaction.
802
+ * Only the actor who locked the boundary can unlock it.
803
+ */
804
+ prepareUnlockBoundary(contractAddress: string, chainId: number, boundaryId: string): PreparedCustodyTransaction;
805
+ /**
806
+ * Prepare an unsigned `withdraw` transaction.
807
+ * Withdraws the entire boundary balance to the recovery key holder.
808
+ * Requires: boundary is locked by the caller, caller is recovery key holder.
809
+ */
810
+ prepareWithdraw(contractAddress: string, chainId: number, boundaryId: string): PreparedCustodyTransaction;
811
+ /**
812
+ * Prepare an unsigned `assignRecoveryKey` transaction for changing an existing key.
813
+ * When the boundary already has a recovery key, only the current holder can change it.
814
+ * For initial assignment (no existing key), use `registerRecoveryKey()` instead.
815
+ */
816
+ prepareAssignRecoveryKey(contractAddress: string, chainId: number, boundaryId: string, newRecoveryKey: string): PreparedCustodyTransaction;
817
+ /**
818
+ * Prepare an unsigned `setTimeLock` transaction.
819
+ * Recovery key holders can only increase the time lock; never decrease.
820
+ */
821
+ prepareSetTimeLock(contractAddress: string, chainId: number, boundaryId: string, durationSeconds: number): PreparedCustodyTransaction;
822
+ /**
823
+ * Prepare an unsigned `cancelPendingExit` transaction.
824
+ * Can be called by recovery key holder or operator.
825
+ */
826
+ prepareCancelPendingExit(contractAddress: string, chainId: number, boundaryId: string): PreparedCustodyTransaction;
827
+ /**
828
+ * Prepare an unsigned `recoveryWithdrawAccount` transaction.
829
+ * Sweeps an exchange arca's balance back to its boundary.
830
+ * Requires: boundary is locked by the recovery key holder.
831
+ */
832
+ prepareRecoveryWithdrawAccount(contractAddress: string, chainId: number, arcaId: string): PreparedCustodyTransaction;
833
+ /**
834
+ * Generate a recovery key pair client-side.
835
+ * Returns a BIP-39 mnemonic and the derived Ethereum address.
836
+ * The mnemonic must be backed up by the user — it never leaves the client.
837
+ * Register the address on-chain via `registerRecoveryKey()`.
838
+ *
839
+ * Requires a `generateMnemonic` implementation to be provided, since the SDK
840
+ * does not bundle cryptographic key derivation. Use a library like `ethers`,
841
+ * `viem`, or `@scure/bip39`.
842
+ *
843
+ * @example
844
+ * ```typescript
845
+ * import { Wallet } from 'ethers';
846
+ *
847
+ * const wallet = Wallet.createRandom();
848
+ * const recoveryKey = {
849
+ * mnemonic: wallet.mnemonic!.phrase,
850
+ * address: wallet.address,
851
+ * };
852
+ *
853
+ * // User backs up the mnemonic, then register on-chain:
854
+ * await arca.registerRecoveryKey({
855
+ * boundaryId: 'b0',
856
+ * walletAddress: recoveryKey.address,
857
+ * });
858
+ * ```
859
+ */
759
860
  /**
760
861
  * Wrap a mutation HTTP call in an OperationHandle.
761
862
  * Defers ready() + throwIfOperationFailed into the promise chain.
@@ -1 +1 @@
1
- {"version":3,"file":"arca.d.ts","sourceRoot":"","sources":["../src/arca.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arca.d.ts","sourceRoot":"","sources":["../src/arca.ts"],"names":[],"mappings":"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"}
package/dist/arca.js CHANGED
@@ -44,6 +44,42 @@ function validatePath(path) {
44
44
  function isIdFormat(value) {
45
45
  return UUID_RE.test(value) || TYPEID_RE.test(value);
46
46
  }
47
+ /**
48
+ * Pre-computed function selectors (first 4 bytes of keccak256 of the signature)
49
+ * for the ArcaCustodyPool contract. These are fixed since the contract ABI is known.
50
+ *
51
+ * Verified against: `cast sig "lockBoundary(bytes32)"` etc. from Foundry.
52
+ */
53
+ const CUSTODY_SELECTORS = {
54
+ 'lockBoundary(bytes32)': '0x67f82a1d',
55
+ 'unlockBoundary(bytes32)': '0x83a2f7cd',
56
+ 'withdraw(bytes32)': '0x8e19899e',
57
+ 'assignRecoveryKey(bytes32,address)': '0xf5b7e3a6',
58
+ 'setTimeLock(bytes32,uint256)': '0x3e41d187',
59
+ 'cancelPendingExit(bytes32)': '0x5e50fbe8',
60
+ 'recoveryWithdrawAccount(bytes32)': '0xba7b2fbd',
61
+ };
62
+ /**
63
+ * Minimal ABI encoder for custody contract calls.
64
+ * Uses pre-computed selectors and supports bytes32, address, uint256 args.
65
+ */
66
+ function encodeCustodyCall(signature, args) {
67
+ const selector = CUSTODY_SELECTORS[signature];
68
+ if (!selector)
69
+ throw new Error(`Unknown custody function: ${signature}`);
70
+ const encoded = args.map(arg => abiEncodeParam(arg)).join('');
71
+ return selector + encoded;
72
+ }
73
+ function abiEncodeParam(value) {
74
+ if (value.startsWith('0x') && value.length === 66) {
75
+ return value.slice(2);
76
+ }
77
+ if (value.startsWith('0x') && value.length === 42) {
78
+ return value.slice(2).toLowerCase().padStart(64, '0');
79
+ }
80
+ const n = BigInt(value);
81
+ return n.toString(16).padStart(64, '0');
82
+ }
47
83
  function isApiKeyConfig(config) {
48
84
  return 'apiKey' in config;
49
85
  }
@@ -442,6 +478,22 @@ class Arca {
442
478
  params.includeDeleted = 'true';
443
479
  return this.client.get('/objects/browse', params);
444
480
  }
481
+ /**
482
+ * Declare a path as an isolation zone before adding objects beneath it.
483
+ * Returns the existing declaration when the same path was already created.
484
+ */
485
+ async createIsolationZone(opts) {
486
+ await this.ready();
487
+ validatePath(opts.path);
488
+ const path = opts.path !== '/' ? opts.path.replace(/\/+$/, '') : opts.path;
489
+ if (path === '/') {
490
+ throw new Error('Isolation zones must be created at a non-root path.');
491
+ }
492
+ return this.client.post('/isolation-zones', {
493
+ realmId: this.realmId(),
494
+ path,
495
+ });
496
+ }
445
497
  /**
446
498
  * Update labels on an Arca object.
447
499
  * Pass null as a label value to remove that key.
@@ -585,9 +637,12 @@ class Arca {
585
637
  /**
586
638
  * Get operation detail by ID (includes correlated events and deltas).
587
639
  */
588
- async getOperation(operationId) {
640
+ async getOperation(operationId, options) {
589
641
  await this.ready();
590
- return this.client.get(`/operations/${operationId}`);
642
+ const params = {};
643
+ if (options?.includeEvidence)
644
+ params.includeEvidence = 'true';
645
+ return this.client.get(`/operations/${operationId}`, params);
591
646
  }
592
647
  /**
593
648
  * List operations in the realm.
@@ -611,6 +666,32 @@ class Arca {
611
666
  params.limit = String(opts.limit);
612
667
  return this.client.get('/operations', params);
613
668
  }
669
+ /**
670
+ * Export realm-scoped operation audit evidence over a time range.
671
+ */
672
+ async exportOperationEvidence(opts) {
673
+ await this.ready();
674
+ const params = {
675
+ realmId: this.realmId(),
676
+ from: opts.from,
677
+ to: opts.to,
678
+ };
679
+ if (opts.types?.length) {
680
+ params.types = opts.types.join(',');
681
+ }
682
+ else if (opts.type) {
683
+ params.type = opts.type;
684
+ }
685
+ if (opts.arcaPath)
686
+ params.arcaPath = opts.arcaPath;
687
+ if (opts.path)
688
+ params.path = opts.path;
689
+ if (opts.limit)
690
+ params.limit = String(opts.limit);
691
+ if (opts.cursor)
692
+ params.cursor = opts.cursor;
693
+ return this.client.get('/operations/export', params);
694
+ }
614
695
  /**
615
696
  * List events in the realm.
616
697
  */
@@ -1822,6 +1903,178 @@ class Arca {
1822
1903
  });
1823
1904
  });
1824
1905
  }
1906
+ // ---- Custody ----
1907
+ /**
1908
+ * Get the custody status for this realm, including contract address,
1909
+ * total balance, all boundaries, exchange arcas, and venue halts.
1910
+ */
1911
+ async getCustodyStatus() {
1912
+ await this.ready();
1913
+ return this.client.get('/custody/status', {
1914
+ realmId: this.realmId(),
1915
+ });
1916
+ }
1917
+ /**
1918
+ * Get a single isolation boundary by ID.
1919
+ */
1920
+ async getBoundary(boundaryId) {
1921
+ await this.ready();
1922
+ return this.client.get(`/custody/boundaries/${boundaryId}`, {
1923
+ realmId: this.realmId(),
1924
+ });
1925
+ }
1926
+ /**
1927
+ * List all isolation boundaries for this realm.
1928
+ */
1929
+ async listBoundaries() {
1930
+ await this.ready();
1931
+ const resp = await this.client.get('/custody/boundaries', {
1932
+ realmId: this.realmId(),
1933
+ });
1934
+ return resp.boundaries;
1935
+ }
1936
+ /**
1937
+ * List exchange arcas, optionally filtered to a specific boundary.
1938
+ */
1939
+ async listExchangeArcas(boundaryId) {
1940
+ await this.ready();
1941
+ const params = { realmId: this.realmId() };
1942
+ if (boundaryId)
1943
+ params.boundaryId = boundaryId;
1944
+ const resp = await this.client.get('/custody/exchange-arcas', params);
1945
+ return resp.exchangeArcas;
1946
+ }
1947
+ /**
1948
+ * Register a recovery key for an isolation boundary.
1949
+ * This is an operator-initiated action (valid only when no recovery key is set).
1950
+ * After registration, only the recovery key holder can lock/unlock/withdraw.
1951
+ *
1952
+ * The wallet address is typically generated client-side via `Arca.generateRecoveryKey()`
1953
+ * or provided by the user from an existing wallet.
1954
+ */
1955
+ async registerRecoveryKey(opts) {
1956
+ await this.ready();
1957
+ return this.client.post('/custody/recovery-key', {
1958
+ realmId: this.realmId(),
1959
+ boundaryId: opts.boundaryId,
1960
+ walletAddress: opts.walletAddress,
1961
+ });
1962
+ }
1963
+ /**
1964
+ * Prepare an unsigned `lockBoundary` transaction.
1965
+ * The caller signs and submits this transaction from their recovery key wallet.
1966
+ * Locking freezes all operator fund movement and cancels any pending exit.
1967
+ */
1968
+ prepareLockBoundary(contractAddress, chainId, boundaryId) {
1969
+ return {
1970
+ to: contractAddress,
1971
+ data: encodeCustodyCall('lockBoundary(bytes32)', [boundaryId]),
1972
+ chainId,
1973
+ value: '0',
1974
+ };
1975
+ }
1976
+ /**
1977
+ * Prepare an unsigned `unlockBoundary` transaction.
1978
+ * Only the actor who locked the boundary can unlock it.
1979
+ */
1980
+ prepareUnlockBoundary(contractAddress, chainId, boundaryId) {
1981
+ return {
1982
+ to: contractAddress,
1983
+ data: encodeCustodyCall('unlockBoundary(bytes32)', [boundaryId]),
1984
+ chainId,
1985
+ value: '0',
1986
+ };
1987
+ }
1988
+ /**
1989
+ * Prepare an unsigned `withdraw` transaction.
1990
+ * Withdraws the entire boundary balance to the recovery key holder.
1991
+ * Requires: boundary is locked by the caller, caller is recovery key holder.
1992
+ */
1993
+ prepareWithdraw(contractAddress, chainId, boundaryId) {
1994
+ return {
1995
+ to: contractAddress,
1996
+ data: encodeCustodyCall('withdraw(bytes32)', [boundaryId]),
1997
+ chainId,
1998
+ value: '0',
1999
+ };
2000
+ }
2001
+ /**
2002
+ * Prepare an unsigned `assignRecoveryKey` transaction for changing an existing key.
2003
+ * When the boundary already has a recovery key, only the current holder can change it.
2004
+ * For initial assignment (no existing key), use `registerRecoveryKey()` instead.
2005
+ */
2006
+ prepareAssignRecoveryKey(contractAddress, chainId, boundaryId, newRecoveryKey) {
2007
+ return {
2008
+ to: contractAddress,
2009
+ data: encodeCustodyCall('assignRecoveryKey(bytes32,address)', [boundaryId, newRecoveryKey]),
2010
+ chainId,
2011
+ value: '0',
2012
+ };
2013
+ }
2014
+ /**
2015
+ * Prepare an unsigned `setTimeLock` transaction.
2016
+ * Recovery key holders can only increase the time lock; never decrease.
2017
+ */
2018
+ prepareSetTimeLock(contractAddress, chainId, boundaryId, durationSeconds) {
2019
+ return {
2020
+ to: contractAddress,
2021
+ data: encodeCustodyCall('setTimeLock(bytes32,uint256)', [boundaryId, durationSeconds.toString()]),
2022
+ chainId,
2023
+ value: '0',
2024
+ };
2025
+ }
2026
+ /**
2027
+ * Prepare an unsigned `cancelPendingExit` transaction.
2028
+ * Can be called by recovery key holder or operator.
2029
+ */
2030
+ prepareCancelPendingExit(contractAddress, chainId, boundaryId) {
2031
+ return {
2032
+ to: contractAddress,
2033
+ data: encodeCustodyCall('cancelPendingExit(bytes32)', [boundaryId]),
2034
+ chainId,
2035
+ value: '0',
2036
+ };
2037
+ }
2038
+ /**
2039
+ * Prepare an unsigned `recoveryWithdrawAccount` transaction.
2040
+ * Sweeps an exchange arca's balance back to its boundary.
2041
+ * Requires: boundary is locked by the recovery key holder.
2042
+ */
2043
+ prepareRecoveryWithdrawAccount(contractAddress, chainId, arcaId) {
2044
+ return {
2045
+ to: contractAddress,
2046
+ data: encodeCustodyCall('recoveryWithdrawAccount(bytes32)', [arcaId]),
2047
+ chainId,
2048
+ value: '0',
2049
+ };
2050
+ }
2051
+ /**
2052
+ * Generate a recovery key pair client-side.
2053
+ * Returns a BIP-39 mnemonic and the derived Ethereum address.
2054
+ * The mnemonic must be backed up by the user — it never leaves the client.
2055
+ * Register the address on-chain via `registerRecoveryKey()`.
2056
+ *
2057
+ * Requires a `generateMnemonic` implementation to be provided, since the SDK
2058
+ * does not bundle cryptographic key derivation. Use a library like `ethers`,
2059
+ * `viem`, or `@scure/bip39`.
2060
+ *
2061
+ * @example
2062
+ * ```typescript
2063
+ * import { Wallet } from 'ethers';
2064
+ *
2065
+ * const wallet = Wallet.createRandom();
2066
+ * const recoveryKey = {
2067
+ * mnemonic: wallet.mnemonic!.phrase,
2068
+ * address: wallet.address,
2069
+ * };
2070
+ *
2071
+ * // User backs up the mnemonic, then register on-chain:
2072
+ * await arca.registerRecoveryKey({
2073
+ * boundaryId: 'b0',
2074
+ * walletAddress: recoveryKey.address,
2075
+ * });
2076
+ * ```
2077
+ */
1825
2078
  // ---- Internal ----
1826
2079
  /**
1827
2080
  * Wrap a mutation HTTP call in an OperationHandle.