@owney/sdk 0.7.12-beta.0 → 0.7.12-beta.2

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/index.d.cts CHANGED
@@ -21,16 +21,6 @@ interface OwneySDKConfig {
21
21
  * `createOwneySIWX` for apps that don't use the AppKit SIWX modal.
22
22
  */
23
23
  referralSource?: string;
24
- /**
25
- * Optional override for the SurfLiquid API base URL (defaults to the
26
- * SurfLiquid SDK's production URL). SurfLiquid auth is an httpOnly
27
- * SameSite=None cookie set by api.surfliquid.com — a THIRD-PARTY cookie from
28
- * the embedding app's origin, which WebKit (all iOS browsers) discards, so
29
- * every authenticated SurfLiquid call 401s on iOS. Point this at a
30
- * same-origin reverse proxy (e.g. "/api/surf") so the session cookie becomes
31
- * first-party. Relative paths resolve against the page origin.
32
- */
33
- surfliquidApiBaseUrl?: string;
34
24
  /**
35
25
  * Turn on the SDK's debug logging (default false). Traces the decisions that
36
26
  * are otherwise invisible — notably how the organization's agent policy is
@@ -64,7 +54,7 @@ type OwneySupportedChainId = (typeof SUPPORTED_CHAIN_IDS)[number];
64
54
  type OwneySupportedChains = (typeof SUPPORTED_CHAINS)[number];
65
55
  type OwneySupportedTokens = (typeof SUPPORTED_TOKENS)[number];
66
56
 
67
- type AgentId = "zyfai" | "sail" | "surfliquid";
57
+ type AgentId = "zyfai" | "sail";
68
58
  type Asset = string;
69
59
  type AgentSupportedAsset = {
70
60
  readonly symbol: string;
@@ -180,12 +170,6 @@ interface OwneyDepositResult {
180
170
  }
181
171
  interface OwneyMultiDepositResult {
182
172
  agentResults: Record<string, OwneyDepositResult>;
183
- /**
184
- * Per-agent failure messages for agents that errored during a diversified
185
- * deposit. Present only when at least one (but not all) agents failed —
186
- * the deposit is partial, not total. Omitted when every agent succeeded.
187
- */
188
- agentErrors?: Record<string, string>;
189
173
  }
190
174
  interface AgentWithdrawResult {
191
175
  txHash?: string;
@@ -457,7 +441,6 @@ declare class OwneySDK {
457
441
  private zyfaiRpcUrls?;
458
442
  private routingApiBaseUrl?;
459
443
  private referralSource?;
460
- private surfliquidApiBaseUrl?;
461
444
  private cachedSponsoredCallback;
462
445
  private cachedWethSponsoredCallback;
463
446
  private paymasterServiceUrl?;
@@ -539,6 +522,28 @@ declare class OwneySDK {
539
522
  * throws before activating any agent.
540
523
  */
541
524
  activateAgent(chainId: number, agentId?: AgentId[]): Promise<void>;
525
+ /**
526
+ * Activate agents ONE AT A TIME, each followed by its org policy.
527
+ *
528
+ * Every agent opens its activation with its own wallet signature, each
529
+ * exchanged for that agent's own backend session — Zyfai's SIWX for a JWT,
530
+ * Sail's SIWE. Run in parallel, that puts two `personal_sign` requests on one
531
+ * wallet connection in the same instant. Over WalletConnect both are
532
+ * delivered to the wallet, which renders one signing request at a time and
533
+ * queues or silently drops the other: neither promise settles, so activation
534
+ * hangs until the caller's timeout with no prompt the user can act on. The
535
+ * single-agent era never hit this — there was no second prompt to collide
536
+ * with — so it appeared the moment a second agent became eligible.
537
+ *
538
+ * Serializing costs no real wall-clock: the user can only approve one prompt
539
+ * at a time anyway.
540
+ *
541
+ * Every agent is attempted even if an earlier one fails, so one declined
542
+ * signature can't deny the remaining agents their turn. The first failure is
543
+ * rethrown (matching the previous `Promise.all` rejection) once all agents
544
+ * have had a chance to activate.
545
+ */
546
+ private activateAgentsInTurn;
542
547
  /**
543
548
  * Deposit funds into a specific agent, or split equally across all agents if agentId is omitted.
544
549
  * Validates that the asset is supported and amount meets minimums for the target agent(s).
@@ -590,17 +595,6 @@ declare class OwneySDK {
590
595
  private hasExistingBalance;
591
596
  private validateAssetSupport;
592
597
  private getEligibleAgents;
593
- /**
594
- * Agent ids the routing API provisioned for this org that support the given
595
- * chain + asset, ordered by preference ({@link AGENT_ELIGIBILITY_ORDER},
596
- * surfliquid first). Returns `[]` when the org has no compatible agent — never
597
- * throws on an empty org. Loads agent keys on first call (apiKey only, no
598
- * wallet), so the UI can resolve which agent to use before the user connects.
599
- *
600
- * This is the source of truth for agent availability: an agent appears here
601
- * iff the routing API returned its key. No per-app feature flags.
602
- */
603
- getEligibleAgentIds(chainId: number, asset: string): Promise<AgentId[]>;
604
598
  /**
605
599
  * Withdraw funds from a specific agent, or all agents that support the active chain+asset if agentId is omitted.
606
600
  * Validates that the asset is supported by the target agent(s) on the active chain.
@@ -701,7 +695,7 @@ declare class OwneySDK {
701
695
  getAllocationApy({ agentId, }?: AllocationApyOptions): Promise<OwneyAllocationApy>;
702
696
  }
703
697
 
704
- type OwneyErrorCode = "NOT_CONNECTED" | "NO_ACTIVE_CHAIN" | "WALLET_NO_ACCOUNTS" | "WALLET_ADDRESS_REQUIRED" | "WALLET_NOT_DEPLOYED" | "AGENT_NOT_FOUND" | "AGENT_CHAIN_INCOMPATIBLE" | "AGENT_EMPTY_LIST" | "AGENT_DISABLED" | "CHAIN_UNSUPPORTED" | "CHAIN_NO_COMPATIBLE_AGENTS" | "CHAIN_MISMATCH" | "ASSET_UNSUPPORTED" | "ASSET_NO_COMPATIBLE_AGENTS" | "DEPOSIT_AMOUNT_BELOW_MINIMUM" | "DEPOSIT_CALLBACK_REQUIRED" | "DEPOSIT_CALLBACK_INVALID" | "DEPOSIT_NO_PERMITTED_TOKENS" | "DEPOSIT_ALL_FAILED" | "DEPOSIT_INSUFFICIENT_BALANCE" | "WITHDRAW_NO_PERMITTED_TOKENS" | "WITHDRAW_INSUFFICIENT_BALANCE" | "WITHDRAW_ALL_FAILED" | "WITHDRAW_PARTIAL_FAILURE" | "WITHDRAW_FAILED" | "API_ROUTING_ERROR" | "API_ROUTING_FAILED" | "API_SAIL_ERROR" | "API_SAIL_TIMEOUT" | "API_NO_AGENTS" | "SPONSOR_REQUEST_FAILED" | "PERMIT2_APPROVAL_REQUIRED" | "SPONSORED_CALLS_UNSUPPORTED" | "SPONSORED_CALLS_NO_ID" | "SPONSORED_CALLS_NO_RECEIPT" | "BALANCE_ALL_FAILED" | "ALLOCATION_ALL_FAILED" | "VALIDATION_INVALID_DAYS";
698
+ type OwneyErrorCode = "NOT_CONNECTED" | "NO_ACTIVE_CHAIN" | "WALLET_NO_ACCOUNTS" | "WALLET_ADDRESS_REQUIRED" | "WALLET_NOT_DEPLOYED" | "AGENT_NOT_FOUND" | "AGENT_CHAIN_INCOMPATIBLE" | "AGENT_EMPTY_LIST" | "AGENT_DISABLED" | "CHAIN_UNSUPPORTED" | "CHAIN_NO_COMPATIBLE_AGENTS" | "CHAIN_MISMATCH" | "ASSET_UNSUPPORTED" | "ASSET_NO_COMPATIBLE_AGENTS" | "DEPOSIT_AMOUNT_BELOW_MINIMUM" | "DEPOSIT_CALLBACK_REQUIRED" | "DEPOSIT_CALLBACK_INVALID" | "DEPOSIT_NO_PERMITTED_TOKENS" | "DEPOSIT_INSUFFICIENT_BALANCE" | "WITHDRAW_NO_PERMITTED_TOKENS" | "WITHDRAW_INSUFFICIENT_BALANCE" | "WITHDRAW_ALL_FAILED" | "WITHDRAW_PARTIAL_FAILURE" | "WITHDRAW_FAILED" | "API_ROUTING_ERROR" | "API_ROUTING_FAILED" | "API_SAIL_ERROR" | "API_SAIL_TIMEOUT" | "API_NO_AGENTS" | "SPONSOR_REQUEST_FAILED" | "PERMIT2_APPROVAL_REQUIRED" | "SPONSORED_CALLS_UNSUPPORTED" | "SPONSORED_CALLS_NO_ID" | "SPONSORED_CALLS_NO_RECEIPT" | "BALANCE_ALL_FAILED" | "ALLOCATION_ALL_FAILED" | "VALIDATION_INVALID_DAYS";
705
699
  declare class OwneyError extends Error {
706
700
  readonly code: OwneyErrorCode;
707
701
  readonly details?: Record<string, unknown>;
package/dist/index.d.ts CHANGED
@@ -21,16 +21,6 @@ interface OwneySDKConfig {
21
21
  * `createOwneySIWX` for apps that don't use the AppKit SIWX modal.
22
22
  */
23
23
  referralSource?: string;
24
- /**
25
- * Optional override for the SurfLiquid API base URL (defaults to the
26
- * SurfLiquid SDK's production URL). SurfLiquid auth is an httpOnly
27
- * SameSite=None cookie set by api.surfliquid.com — a THIRD-PARTY cookie from
28
- * the embedding app's origin, which WebKit (all iOS browsers) discards, so
29
- * every authenticated SurfLiquid call 401s on iOS. Point this at a
30
- * same-origin reverse proxy (e.g. "/api/surf") so the session cookie becomes
31
- * first-party. Relative paths resolve against the page origin.
32
- */
33
- surfliquidApiBaseUrl?: string;
34
24
  /**
35
25
  * Turn on the SDK's debug logging (default false). Traces the decisions that
36
26
  * are otherwise invisible — notably how the organization's agent policy is
@@ -64,7 +54,7 @@ type OwneySupportedChainId = (typeof SUPPORTED_CHAIN_IDS)[number];
64
54
  type OwneySupportedChains = (typeof SUPPORTED_CHAINS)[number];
65
55
  type OwneySupportedTokens = (typeof SUPPORTED_TOKENS)[number];
66
56
 
67
- type AgentId = "zyfai" | "sail" | "surfliquid";
57
+ type AgentId = "zyfai" | "sail";
68
58
  type Asset = string;
69
59
  type AgentSupportedAsset = {
70
60
  readonly symbol: string;
@@ -180,12 +170,6 @@ interface OwneyDepositResult {
180
170
  }
181
171
  interface OwneyMultiDepositResult {
182
172
  agentResults: Record<string, OwneyDepositResult>;
183
- /**
184
- * Per-agent failure messages for agents that errored during a diversified
185
- * deposit. Present only when at least one (but not all) agents failed —
186
- * the deposit is partial, not total. Omitted when every agent succeeded.
187
- */
188
- agentErrors?: Record<string, string>;
189
173
  }
190
174
  interface AgentWithdrawResult {
191
175
  txHash?: string;
@@ -457,7 +441,6 @@ declare class OwneySDK {
457
441
  private zyfaiRpcUrls?;
458
442
  private routingApiBaseUrl?;
459
443
  private referralSource?;
460
- private surfliquidApiBaseUrl?;
461
444
  private cachedSponsoredCallback;
462
445
  private cachedWethSponsoredCallback;
463
446
  private paymasterServiceUrl?;
@@ -539,6 +522,28 @@ declare class OwneySDK {
539
522
  * throws before activating any agent.
540
523
  */
541
524
  activateAgent(chainId: number, agentId?: AgentId[]): Promise<void>;
525
+ /**
526
+ * Activate agents ONE AT A TIME, each followed by its org policy.
527
+ *
528
+ * Every agent opens its activation with its own wallet signature, each
529
+ * exchanged for that agent's own backend session — Zyfai's SIWX for a JWT,
530
+ * Sail's SIWE. Run in parallel, that puts two `personal_sign` requests on one
531
+ * wallet connection in the same instant. Over WalletConnect both are
532
+ * delivered to the wallet, which renders one signing request at a time and
533
+ * queues or silently drops the other: neither promise settles, so activation
534
+ * hangs until the caller's timeout with no prompt the user can act on. The
535
+ * single-agent era never hit this — there was no second prompt to collide
536
+ * with — so it appeared the moment a second agent became eligible.
537
+ *
538
+ * Serializing costs no real wall-clock: the user can only approve one prompt
539
+ * at a time anyway.
540
+ *
541
+ * Every agent is attempted even if an earlier one fails, so one declined
542
+ * signature can't deny the remaining agents their turn. The first failure is
543
+ * rethrown (matching the previous `Promise.all` rejection) once all agents
544
+ * have had a chance to activate.
545
+ */
546
+ private activateAgentsInTurn;
542
547
  /**
543
548
  * Deposit funds into a specific agent, or split equally across all agents if agentId is omitted.
544
549
  * Validates that the asset is supported and amount meets minimums for the target agent(s).
@@ -590,17 +595,6 @@ declare class OwneySDK {
590
595
  private hasExistingBalance;
591
596
  private validateAssetSupport;
592
597
  private getEligibleAgents;
593
- /**
594
- * Agent ids the routing API provisioned for this org that support the given
595
- * chain + asset, ordered by preference ({@link AGENT_ELIGIBILITY_ORDER},
596
- * surfliquid first). Returns `[]` when the org has no compatible agent — never
597
- * throws on an empty org. Loads agent keys on first call (apiKey only, no
598
- * wallet), so the UI can resolve which agent to use before the user connects.
599
- *
600
- * This is the source of truth for agent availability: an agent appears here
601
- * iff the routing API returned its key. No per-app feature flags.
602
- */
603
- getEligibleAgentIds(chainId: number, asset: string): Promise<AgentId[]>;
604
598
  /**
605
599
  * Withdraw funds from a specific agent, or all agents that support the active chain+asset if agentId is omitted.
606
600
  * Validates that the asset is supported by the target agent(s) on the active chain.
@@ -701,7 +695,7 @@ declare class OwneySDK {
701
695
  getAllocationApy({ agentId, }?: AllocationApyOptions): Promise<OwneyAllocationApy>;
702
696
  }
703
697
 
704
- type OwneyErrorCode = "NOT_CONNECTED" | "NO_ACTIVE_CHAIN" | "WALLET_NO_ACCOUNTS" | "WALLET_ADDRESS_REQUIRED" | "WALLET_NOT_DEPLOYED" | "AGENT_NOT_FOUND" | "AGENT_CHAIN_INCOMPATIBLE" | "AGENT_EMPTY_LIST" | "AGENT_DISABLED" | "CHAIN_UNSUPPORTED" | "CHAIN_NO_COMPATIBLE_AGENTS" | "CHAIN_MISMATCH" | "ASSET_UNSUPPORTED" | "ASSET_NO_COMPATIBLE_AGENTS" | "DEPOSIT_AMOUNT_BELOW_MINIMUM" | "DEPOSIT_CALLBACK_REQUIRED" | "DEPOSIT_CALLBACK_INVALID" | "DEPOSIT_NO_PERMITTED_TOKENS" | "DEPOSIT_ALL_FAILED" | "DEPOSIT_INSUFFICIENT_BALANCE" | "WITHDRAW_NO_PERMITTED_TOKENS" | "WITHDRAW_INSUFFICIENT_BALANCE" | "WITHDRAW_ALL_FAILED" | "WITHDRAW_PARTIAL_FAILURE" | "WITHDRAW_FAILED" | "API_ROUTING_ERROR" | "API_ROUTING_FAILED" | "API_SAIL_ERROR" | "API_SAIL_TIMEOUT" | "API_NO_AGENTS" | "SPONSOR_REQUEST_FAILED" | "PERMIT2_APPROVAL_REQUIRED" | "SPONSORED_CALLS_UNSUPPORTED" | "SPONSORED_CALLS_NO_ID" | "SPONSORED_CALLS_NO_RECEIPT" | "BALANCE_ALL_FAILED" | "ALLOCATION_ALL_FAILED" | "VALIDATION_INVALID_DAYS";
698
+ type OwneyErrorCode = "NOT_CONNECTED" | "NO_ACTIVE_CHAIN" | "WALLET_NO_ACCOUNTS" | "WALLET_ADDRESS_REQUIRED" | "WALLET_NOT_DEPLOYED" | "AGENT_NOT_FOUND" | "AGENT_CHAIN_INCOMPATIBLE" | "AGENT_EMPTY_LIST" | "AGENT_DISABLED" | "CHAIN_UNSUPPORTED" | "CHAIN_NO_COMPATIBLE_AGENTS" | "CHAIN_MISMATCH" | "ASSET_UNSUPPORTED" | "ASSET_NO_COMPATIBLE_AGENTS" | "DEPOSIT_AMOUNT_BELOW_MINIMUM" | "DEPOSIT_CALLBACK_REQUIRED" | "DEPOSIT_CALLBACK_INVALID" | "DEPOSIT_NO_PERMITTED_TOKENS" | "DEPOSIT_INSUFFICIENT_BALANCE" | "WITHDRAW_NO_PERMITTED_TOKENS" | "WITHDRAW_INSUFFICIENT_BALANCE" | "WITHDRAW_ALL_FAILED" | "WITHDRAW_PARTIAL_FAILURE" | "WITHDRAW_FAILED" | "API_ROUTING_ERROR" | "API_ROUTING_FAILED" | "API_SAIL_ERROR" | "API_SAIL_TIMEOUT" | "API_NO_AGENTS" | "SPONSOR_REQUEST_FAILED" | "PERMIT2_APPROVAL_REQUIRED" | "SPONSORED_CALLS_UNSUPPORTED" | "SPONSORED_CALLS_NO_ID" | "SPONSORED_CALLS_NO_RECEIPT" | "BALANCE_ALL_FAILED" | "ALLOCATION_ALL_FAILED" | "VALIDATION_INVALID_DAYS";
705
699
  declare class OwneyError extends Error {
706
700
  readonly code: OwneyErrorCode;
707
701
  readonly details?: Record<string, unknown>;