@domfi/sdk 0.1.0

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.
Files changed (93) hide show
  1. package/LICENSE +16 -0
  2. package/README.md +786 -0
  3. package/dist/actions.cjs +1 -0
  4. package/dist/actions.d.cts +17 -0
  5. package/dist/actions.d.ts +17 -0
  6. package/dist/actions.js +1 -0
  7. package/dist/api.cjs +1 -0
  8. package/dist/api.d.cts +664 -0
  9. package/dist/api.d.ts +664 -0
  10. package/dist/api.js +0 -0
  11. package/dist/chunk-2VSPOLVO.js +1 -0
  12. package/dist/chunk-5YZVCHRU.js +0 -0
  13. package/dist/chunk-77XMXAXE.js +1 -0
  14. package/dist/chunk-7OVWNPZQ.js +1 -0
  15. package/dist/chunk-BMYMNNJK.js +1 -0
  16. package/dist/chunk-C5Y2WM7C.js +1 -0
  17. package/dist/chunk-C64LJM7D.js +2 -0
  18. package/dist/chunk-CLOFJTBP.js +1 -0
  19. package/dist/chunk-CMREWGOI.js +1 -0
  20. package/dist/chunk-D5VE2O4F.js +1 -0
  21. package/dist/chunk-LDE3JHVE.js +1 -0
  22. package/dist/chunk-N4Q67DTE.js +1 -0
  23. package/dist/chunk-SZE5DE54.js +1 -0
  24. package/dist/chunk-XHQVWI2J.js +1 -0
  25. package/dist/chunk-YU5DN3PI.js +1 -0
  26. package/dist/config.cjs +2 -0
  27. package/dist/config.d.cts +132 -0
  28. package/dist/config.d.ts +132 -0
  29. package/dist/config.js +1 -0
  30. package/dist/contracts.cjs +1 -0
  31. package/dist/contracts.d.cts +13073 -0
  32. package/dist/contracts.d.ts +13073 -0
  33. package/dist/contracts.js +1 -0
  34. package/dist/delegation.cjs +1 -0
  35. package/dist/delegation.d.cts +7 -0
  36. package/dist/delegation.d.ts +7 -0
  37. package/dist/delegation.js +0 -0
  38. package/dist/errors.cjs +3 -0
  39. package/dist/errors.d.cts +155 -0
  40. package/dist/errors.d.ts +155 -0
  41. package/dist/errors.js +3 -0
  42. package/dist/index.cjs +2 -0
  43. package/dist/index.d.cts +216 -0
  44. package/dist/index.d.ts +216 -0
  45. package/dist/index.js +1 -0
  46. package/dist/math.cjs +1 -0
  47. package/dist/math.d.cts +273 -0
  48. package/dist/math.d.ts +273 -0
  49. package/dist/math.js +1 -0
  50. package/dist/position-BnhSFyGe.d.cts +56 -0
  51. package/dist/position-BnhSFyGe.d.ts +56 -0
  52. package/dist/rawSchemas-MAT7EZCV.js +1 -0
  53. package/dist/referrals.cjs +1 -0
  54. package/dist/referrals.d.cts +66 -0
  55. package/dist/referrals.d.ts +66 -0
  56. package/dist/referrals.js +1 -0
  57. package/dist/serde.cjs +1 -0
  58. package/dist/serde.d.cts +24 -0
  59. package/dist/serde.d.ts +24 -0
  60. package/dist/serde.js +1 -0
  61. package/dist/token.cjs +1 -0
  62. package/dist/token.d.cts +32 -0
  63. package/dist/token.d.ts +32 -0
  64. package/dist/token.js +0 -0
  65. package/dist/trading.cjs +1 -0
  66. package/dist/trading.d.cts +20 -0
  67. package/dist/trading.d.ts +20 -0
  68. package/dist/trading.js +1 -0
  69. package/dist/types-7s13ZSql.d.ts +533 -0
  70. package/dist/types-BK6dYOXr.d.cts +118 -0
  71. package/dist/types-CMtixBIP.d.cts +464 -0
  72. package/dist/types-DB1r_Ppi.d.ts +464 -0
  73. package/dist/types-DDgJiEFg.d.ts +780 -0
  74. package/dist/types-DJBX-p4X.d.cts +780 -0
  75. package/dist/types-DQft82W7.d.cts +533 -0
  76. package/dist/types-DhCzEwnS.d.ts +118 -0
  77. package/dist/types-veTDfbhq.d.ts +436 -0
  78. package/dist/types-x1MvxSdy.d.cts +436 -0
  79. package/dist/units-BYd75H7U.d.cts +22 -0
  80. package/dist/units-BYd75H7U.d.ts +22 -0
  81. package/dist/units.cjs +1 -0
  82. package/dist/units.d.cts +248 -0
  83. package/dist/units.d.ts +248 -0
  84. package/dist/units.js +1 -0
  85. package/dist/valuation.cjs +1 -0
  86. package/dist/valuation.d.cts +5 -0
  87. package/dist/valuation.d.ts +5 -0
  88. package/dist/valuation.js +1 -0
  89. package/dist/vault.cjs +1 -0
  90. package/dist/vault.d.cts +34 -0
  91. package/dist/vault.d.ts +34 -0
  92. package/dist/vault.js +1 -0
  93. package/package.json +181 -0
@@ -0,0 +1 @@
1
+ export{a as compatibilityManifest,c as uncheckedCompatibilityReport,b as wagmiContracts}from'./chunk-N4Q67DTE.js';export{a as abis}from'./chunk-YU5DN3PI.js';
@@ -0,0 +1 @@
1
+ 'use strict';
@@ -0,0 +1,7 @@
1
+ import './types-DQft82W7.cjs';
2
+ export { c as DelegationClient, an as DelegationReadOptions, ao as DelegationSendOptions, D as DelegationTarget, ap as DelegationTypedData, aq as DelegationTypedDataOptions, ar as DelegationTypedDataParams, as as SignedDelegation } from './types-DJBX-p4X.cjs';
3
+ import './units.cjs';
4
+ import './errors.cjs';
5
+ import 'viem';
6
+ import '@domfi/sdk/errors';
7
+ import './referrals.cjs';
@@ -0,0 +1,7 @@
1
+ import './types-7s13ZSql.js';
2
+ export { c as DelegationClient, an as DelegationReadOptions, ao as DelegationSendOptions, D as DelegationTarget, ap as DelegationTypedData, aq as DelegationTypedDataOptions, ar as DelegationTypedDataParams, as as SignedDelegation } from './types-DDgJiEFg.js';
3
+ import './units.js';
4
+ import './errors.js';
5
+ import 'viem';
6
+ import '@domfi/sdk/errors';
7
+ import './referrals.js';
File without changes
@@ -0,0 +1,3 @@
1
+ 'use strict';var d={"0x00796158":"REVERT_INVALID_ORACLE_FEE_CLAIM_AMOUNT","0x0819bdcd":"REVERT_SIGNATURE_EXPIRED","0x083fbd78":"REVERT_WRONG_SL","0x084986e7":"REVERT_IS_DONE","0x093650d5":"REVERT_NOT_GOV","0x0b92ae2b":"REVERT_ORACLE_VALUE_UNSET","0x0efd6122":"REVERT_ABOVE_BALANCE","0x118cdaa7":"REVERT_OWNABLE_UNAUTHORIZED_ACCOUNT","0x1309a563":"REVERT_IS_PAUSED","0x177e802f":"REVERT_ERC721_INSUFFICIENT_APPROVAL","0x17e08e97":"REVERT_NO_TRADE_FOUND","0x1c49f4d1":"REVERT_INVALID_CALL_DATA","0x1e4fbdf7":"REVERT_OWNABLE_INVALID_OWNER","0x206e62e3":"REVERT_INSUFFICIENT_ORACLE_FEE_BALANCE","0x24775e06":"REVERT_SAFE_CAST_OVERFLOWED_UINT_TO_INT","0x2493b27e":"REVERT_ABOVE_MAX_DEPOSIT","0x25c20828":"REVERT_INVALID_TIMESTAMP","0x284ff667":"REVERT_ERC4626_EXCEEDED_MAX_MINT","0x28acd8e3":"REVERT_ORACLE_ONLY","0x2a19e833":"REVERT_NOT_MANAGER","0x2a917859":"REVERT_NO_DELEGATE","0x2f285798":"REVERT_DEPOSIT_NOT_UNLOCKED","0x327269a7":"REVERT_SAFE_CAST_OVERFLOWED_INT_DOWNCAST","0x35fe85c5":"REVERT_WRONG_LEVERAGE","0x3786fdd4":"REVERT_NOT_ENOUGH_ASSETS","0x39d9cf4f":"REVERT_PENDING_WITHDRAWAL","0x3d093e84":"REVERT_WAIT_NEXT_EPOCH_START","0x3e0b1869":"REVERT_WAIT_TIMEOUT","0x3f7084a5":"REVERT_NOT_TRADING_OR_CALLBACKS","0x432b6c83":"REVERT_NOT_TRADES_UP_KEEP","0x46c4ede2":"REVERT_EXPOSURE_LIMITS","0x46daa3ad":"REVERT_NOT_TRADING","0x4a0bfec1":"REVERT_NOT_AUTHORIZED","0x4a67a8d2":"REVERT_ABOVE_MAX_MINT","0x4f9cbad0":"REVERT_DELEGATE_REENTRANT","0x502b946d":"REVERT_NOT_DELEGATE","0x50725e4f":"REVERT_NO_ACTIVE_DISCOUNT","0x5274afe7":"REVERT_SAFE_ERC20_FAILED_OPERATION","0x5863f789":"REVERT_WRONG_PARAMS","0x59171fc1":"REVERT_ERC721_ENUMERABLE_FORBIDDEN_BATCH_MINT","0x5ac89f62":"REVERT_NOT_YOUR_ORDER","0x5b08ba18":"REVERT_ERC721_INVALID_OPERATOR","0x5be5878a":"REVERT_DELEGATED_ACTION_FAILED","0x5c12ea62":"REVERT_MAX_PENDING_MARKET_ORDERS_REACHED","0x64283d7b":"REVERT_ERC721_INCORRECT_OWNER","0x64a0ae92":"REVERT_ERC721_INVALID_RECEIVER","0x66a662b9":"REVERT_MAX_REACHED","0x68174b76":"REVERT_NOT_REGISTRY_OR_GOV","0x6bcd09d8":"REVERT_ABOVE_WITHDRAW_AMOUNT","0x6dfcc650":"REVERT_SAFE_CAST_OVERFLOWED_UINT_DOWNCAST","0x7195a895":"REVERT_NOT_OPEN_PNL","0x73c6ac6e":"REVERT_ERC721_INVALID_SENDER","0x756688fe":"REVERT_INVALID_NONCE","0x79012fb2":"REVERT_ERC4626_EXCEEDED_MAX_DEPOSIT","0x7e273289":"REVERT_ERC721_NONEXISTENT_TOKEN","0x80a71fc5":"REVERT_ABOVE_MAX_ALLOWED_COLLATERAL","0x89c62b64":"REVERT_ERC721_INVALID_OWNER","0x8a2747e5":"REVERT_FEE_NOT_LISTED","0x8aefb98e":"REVERT_NO_OPEN_LIMIT_ORDER","0x8baa579f":"REVERT_INVALID_SIGNATURE","0x92497ff7":"REVERT_INVALID_ORACLE_FEE","0x94280d62":"REVERT_ERC20_INVALID_SPENDER","0x9589a27d":"REVERT_INVALID_ORACLE","0x96c6fd1e":"REVERT_ERC20_INVALID_SENDER","0x9fb82783":"REVERT_INVALID_ORACLE_STATUS","0xa1c00d42":"REVERT_PAIR_NOT_LISTED","0xa35ee470":"REVERT_NO_LIMIT_FOUND","0xa41bb918":"REVERT_WRONG_TP","0xa4e993e1":"REVERT_NO_DISCOUNT","0xa57d13dc":"REVERT_ERC721_OUT_OF_BOUNDS_INDEX","0xa8ce4432":"REVERT_SAFE_CAST_OVERFLOWED_INT_TO_UINT","0xa9fbf51f":"REVERT_ERC721_INVALID_APPROVER","0xabbf79aa":"REVERT_GROUP_NOT_LISTED","0xb09e78ce":"REVERT_DELEGATE_FORBIDDEN","0xb6efd7c6":"REVERT_PAIR_NOT_EMPTY","0xb94abeec":"REVERT_ERC4626_EXCEEDED_MAX_REDEEM","0xbc011219":"REVERT_NOT_TRADES_UP_KEEP_OR_TRADING","0xbd3cb648":"REVERT_MAX_DAILY_PNL_REACHED","0xbde4d0f1":"REVERT_NOT_CALLBACKS","0xcb87b762":"REVERT_PAIR_NOT_LISTED","0xcd2110ba":"REVERT_NOT_CALLBACKS_OR_TRADES_UP_KEEP_OR_TRADING","0xcd8fa092":"REVERT_NOT_CALLBACKS_OR_TRADES_UP_KEEP","0xcdc993c4":"REVERT_NULL_PRICE","0xd1f721ee":"REVERT_WRONG_LOCK_DURATION","0xd7e6bcf8":"REVERT_NOT_INITIALIZING","0xdd9397bb":"REVERT_TRIGGER_PENDING","0xddff77db":"REVERT_INVALID_DEV_FEE_CLAIM_AMOUNT","0xdface737":"REVERT_PAIR_ALREADY_LISTED","0xe450d38c":"REVERT_ERC20_INSUFFICIENT_BALANCE","0xe5a74490":"REVERT_NULL_AMOUNT","0xe602df05":"REVERT_ERC20_INVALID_APPROVER","0xe6f47fab":"REVERT_MAX_TRADES_PER_PAIR_REACHED","0xe9d60161":"REVERT_NOT_VAULT","0xec442f05":"REVERT_ERC20_INVALID_RECEIVER","0xeca695e1":"REVERT_BELOW_MIN_LEV_POS","0xefa9e5be":"REVERT_NO_TRADE_TO_TIMEOUT_FOUND","0xf3d0b126":"REVERT_NULL_ADDR","0xf77a8069":"REVERT_ALREADY_MARKET_CLOSED","0xf92ee8a9":"REVERT_INVALID_INITIALIZATION","0xfa5cd00f":"REVERT_NOT_ALLOWED","0xfb550858":"REVERT_INSUFFICIENT_ORACLE_FEE","0xfb8f41b2":"REVERT_ERC20_INSUFFICIENT_ALLOWANCE","0xfc33f1bd":"REVERT_NOT_EMPTY_INDEX","0xfe9cceec":"REVERT_ERC4626_EXCEEDED_MAX_WITHDRAW"};var y=["transport","validation","config","wallet","api","contract","compatibility","identity","timeout","abort"],U=new Set(y),h=["MISSING_API_CLIENT","MISSING_PUBLIC_CLIENT","MISSING_WALLET_CLIENT","MISSING_ACCOUNT","WALLET_CHAIN_MISMATCH","WALLET_ACCOUNT_MISMATCH","WALLET_DISCONNECTED","READ_MODEL_NOT_READY","PROTOCOL_COMPATIBILITY_MISMATCH","IDENTITY_MISMATCH","VALIDATION_ERROR","API_ERROR","CONTRACT_REVERT","ORACLE_FEE_CAP_EXCEEDED","TIMEOUT","ABORTED","TRANSPORT_ERROR"],w=new Set(h);function v(e){return R(e)&&typeof e.name=="string"&&typeof e.message=="string"&&F(e.code)&&G(e.kind)&&typeof e.transient=="boolean"&&H(e.diagnostics)&&k(e.hash)&&X(e.httpStatus)&&K(e.details)&&_(e.hint)}function F(e){return typeof e!="string"?false:w.has(e)||e.startsWith("API_")||e.startsWith("REVERT_")}function G(e){return typeof e=="string"&&U.has(e)}function H(e){return R(e)&&typeof e.sdkVersion=="string"&&typeof e.sourceTag=="string"&&Number.isFinite(e.chainId)&&_(e.schemaHash)&&_(e.liveSchemaHash)&&k(e.registryAddress)&&s(e.valuationBlock)&&W(e.apiFreshness)&&_(e.requestId)&&B(e.compatibilityStatus)}function W(e){return e===void 0?true:R(e)&&typeof e.source=="string"&&typeof e.generatedAt=="string"&&s(e.indexedBlock)&&s(e.chainHeadBlock)&&s(e.lagBlocks)&&_(e.cacheStatus)&&s(e.cacheAgeSeconds)&&typeof e.isStale=="boolean"}function B(e){return e===void 0||e==="ok"||e==="mismatch"||e==="unchecked"}function _(e){return e===void 0||typeof e=="string"}function X(e){return e===void 0||typeof e=="number"}function s(e){return e===void 0||typeof e=="bigint"}function k(e){return e===void 0||typeof e=="string"&&e.startsWith("0x")}function K(e){return e===void 0||R(e)}var t=class extends Error{code;kind;transient;hash;hint;diagnostics;cause;constructor(n){super(n.message),this.name=new.target.name,this.code=n.code,this.kind=n.kind,this.transient=n.transient,this.diagnostics=n.diagnostics,n.hash!==void 0&&(this.hash=n.hash),n.hint!==void 0&&(this.hint=n.hint),n.cause!==void 0&&(this.cause=n.cause);}},A=class extends t{constructor(n){super({...n,code:"MISSING_API_CLIENT",kind:"config",transient:false});}},f=class extends t{constructor(n){super({...n,code:"MISSING_PUBLIC_CLIENT",kind:"config",transient:false});}},N=class extends t{constructor(n){super({...n,code:"MISSING_WALLET_CLIENT",kind:"wallet",transient:false});}},O=class extends t{constructor(n){super({...n,code:"MISSING_ACCOUNT",kind:"wallet",transient:false});}},C=class extends t{constructor(n){super({...n,code:"WALLET_CHAIN_MISMATCH",kind:"wallet",transient:false});}},D=class extends t{constructor(n){super({...n,code:"WALLET_ACCOUNT_MISMATCH",kind:"wallet",transient:false});}},u=class extends t{constructor(n){super({...n,code:"WALLET_DISCONNECTED",kind:"wallet",transient:true});}},L=class extends t{constructor(n){super({...n,code:"READ_MODEL_NOT_READY",kind:"api",transient:true});}},x=class extends t{constructor(n){super({...n,code:"PROTOCOL_COMPATIBILITY_MISMATCH",kind:"compatibility",transient:false});}},S=class extends t{constructor(n){super({...n,code:"IDENTITY_MISMATCH",kind:"identity",transient:false});}},V=class extends t{constructor(n){super({...n,code:"VALIDATION_ERROR",kind:"validation",transient:false});}},l=class extends t{httpStatus;details;constructor(n){super({...n,code:n.code??"API_ERROR",kind:"api",transient:n.transient??false}),n.httpStatus!==void 0&&(this.httpStatus=n.httpStatus),n.details!==void 0&&(this.details=n.details);}},p=class extends t{constructor(n){super({...n,code:"TRANSPORT_ERROR",kind:"transport",transient:n.transient??true});}};function R(e){return typeof e=="object"&&e!==null}function M(e){if(typeof e!="string"||!/^0x[0-9a-fA-F]{8}/.test(e))return;let n=e.slice(0,10).toLowerCase();return n in d?n:void 0}function i(e,n=0){if(n>8)return;let E=M(e);if(E!==void 0)return E;if(!R(e))return;let o=M(e.data);if(o!==void 0)return o;let T=i(e.data,n+1);if(T!==void 0)return T;let a=i(e.cause,n+1);return a!==void 0?a:i(e.error,n+1)}var Y=new Set(["RawContractError","ContractFunctionRevertedError","ExecutionRevertedError"]);function r(e,n){let E=e[n];return typeof E=="string"?E:void 0}function c(e,n=0){if(n>8||!R(e))return false;let E=r(e,"name"),o=r(e,"message")??"",T=r(e,"shortMessage")??"",a=e.code;return E==="UserRejectedRequestError"||a===4001||/user rejected/i.test(o)||/user rejected/i.test(T)?true:c(e.cause,n+1)||c(e.error,n+1)}function $(e){let n=r(e,"message")??"",E=r(e,"shortMessage")??"",o=r(e,"details")??"";return /execution reverted|contract function .*reverted/i.test(`${n}
2
+ ${E}
3
+ ${o}`)}function I(e,n=0){if(n>8)return false;if(i(e)!==void 0)return true;if(!R(e))return false;let E=r(e,"name");return E!==void 0&&Y.has(E)||$(e)?true:I(e.cause,n+1)||I(e.error,n+1)}function z(e){return c(e)?false:I(e)}function j(e){let n=i(e);return n===void 0?"CONTRACT_REVERT":d[n]}var g=class extends t{constructor(n){super({...n,code:n.code??j(n.cause),kind:"contract",transient:false});}},b=class extends t{constructor(n){super({...n,code:"ORACLE_FEE_CAP_EXCEEDED",kind:"validation",transient:false});}},m=class extends t{constructor(n){super({...n,code:"TIMEOUT",kind:"timeout",transient:true});}},P=class extends t{constructor(n){super({...n,code:"ABORTED",kind:"abort",transient:true});}};exports.AbortError=P;exports.ApiError=l;exports.ContractRevertError=g;exports.IdentityMismatchError=S;exports.MissingAccountError=O;exports.MissingApiClientError=A;exports.MissingPublicClientError=f;exports.MissingWalletClientError=N;exports.OracleFeeCapExceededError=b;exports.ProtocolCompatibilityMismatchError=x;exports.ReadModelNotReadyError=L;exports.TimeoutError=m;exports.TransportError=p;exports.ValidationError=V;exports.WalletAccountMismatchError=D;exports.WalletChainMismatchError=C;exports.WalletDisconnectedError=u;exports.isContractRevertLikeError=z;exports.isDomfiError=v;
@@ -0,0 +1,155 @@
1
+ import { Address, IsoTimestamp, Hex } from './units.cjs';
2
+
3
+ /** Broad SDK error category for grouping handling logic. */
4
+ type DomfiErrorKind = "transport" | "validation" | "config" | "wallet" | "api" | "contract" | "compatibility" | "identity" | "timeout" | "abort";
5
+ /** Stable SDK error code. API and contract errors may use prefixed dynamic codes. */
6
+ type DomfiErrorCode = "MISSING_API_CLIENT" | "MISSING_PUBLIC_CLIENT" | "MISSING_WALLET_CLIENT" | "MISSING_ACCOUNT" | "WALLET_CHAIN_MISMATCH" | "WALLET_ACCOUNT_MISMATCH" | "WALLET_DISCONNECTED" | "READ_MODEL_NOT_READY" | "PROTOCOL_COMPATIBILITY_MISMATCH" | "IDENTITY_MISMATCH" | "VALIDATION_ERROR" | "API_ERROR" | "CONTRACT_REVERT" | "ORACLE_FEE_CAP_EXCEEDED" | "TIMEOUT" | "ABORTED" | "TRANSPORT_ERROR";
7
+ type Freshness = {
8
+ source: string;
9
+ generatedAt: IsoTimestamp;
10
+ indexedBlock?: bigint;
11
+ chainHeadBlock?: bigint;
12
+ lagBlocks?: bigint;
13
+ cacheStatus?: string;
14
+ cacheAgeSeconds?: bigint;
15
+ isStale: boolean;
16
+ };
17
+ /** Diagnostics attached to SDK errors and REST result envelopes. */
18
+ type DiagnosticsEnvelope = {
19
+ sdkVersion: string;
20
+ sourceTag: string;
21
+ schemaHash?: string;
22
+ liveSchemaHash?: string;
23
+ chainId: number;
24
+ registryAddress?: Address;
25
+ valuationBlock?: bigint;
26
+ apiFreshness?: Freshness;
27
+ requestId?: string;
28
+ compatibilityStatus?: "ok" | "mismatch" | "unchecked";
29
+ };
30
+ /** Common shape implemented by all SDK-defined errors. */
31
+ interface DomfiError extends Error {
32
+ readonly name: string;
33
+ readonly code: DomfiErrorCode | `API_${string}` | `REVERT_${string}`;
34
+ readonly kind: DomfiErrorKind;
35
+ readonly transient: boolean;
36
+ readonly hash?: Hex;
37
+ readonly httpStatus?: number;
38
+ readonly details?: Record<string, unknown>;
39
+ readonly hint?: string;
40
+ readonly diagnostics: DiagnosticsEnvelope;
41
+ readonly cause?: unknown;
42
+ }
43
+ /** Type guard for SDK-defined errors and compatible serialized error objects. */
44
+ declare function isDomfiError(error: unknown): error is DomfiError;
45
+ /** Common constructor fields for SDK-defined errors. */
46
+ type DomfiErrorInit = {
47
+ message: string;
48
+ diagnostics: DiagnosticsEnvelope;
49
+ hash?: Hex;
50
+ hint?: string;
51
+ cause?: unknown;
52
+ };
53
+ /** Constructor fields for REST API errors. */
54
+ type ApiErrorInit = DomfiErrorInit & {
55
+ code?: "API_ERROR" | `API_${string}`;
56
+ httpStatus?: number;
57
+ transient?: boolean;
58
+ details?: Record<string, unknown>;
59
+ };
60
+ /** Constructor fields for contract revert errors. */
61
+ type ContractRevertErrorInit = DomfiErrorInit & {
62
+ code?: "CONTRACT_REVERT" | `REVERT_${string}`;
63
+ };
64
+ /** Constructor fields for transport errors. */
65
+ type TransportErrorInit = DomfiErrorInit & {
66
+ transient?: boolean;
67
+ };
68
+ declare class DomfiBaseError<Code extends DomfiError["code"], Kind extends DomfiErrorKind, Transient extends boolean> extends Error implements DomfiError {
69
+ readonly code: Code;
70
+ readonly kind: Kind;
71
+ readonly transient: Transient;
72
+ readonly hash?: Hex;
73
+ readonly hint?: string;
74
+ readonly diagnostics: DiagnosticsEnvelope;
75
+ readonly cause?: unknown;
76
+ constructor(init: DomfiErrorInit & {
77
+ code: Code;
78
+ kind: Kind;
79
+ transient: Transient;
80
+ });
81
+ }
82
+ /** Thrown when an API-only helper is called on an RPC-only client. */
83
+ declare class MissingApiClientError extends DomfiBaseError<"MISSING_API_CLIENT", "config", false> {
84
+ constructor(init: DomfiErrorInit);
85
+ }
86
+ /** Thrown when an RPC read/simulation requires a public client that was not configured. */
87
+ declare class MissingPublicClientError extends DomfiBaseError<"MISSING_PUBLIC_CLIENT", "config", false> {
88
+ constructor(init: DomfiErrorInit);
89
+ }
90
+ /** Thrown when a write helper requires a wallet client that was not configured. */
91
+ declare class MissingWalletClientError extends DomfiBaseError<"MISSING_WALLET_CLIENT", "wallet", false> {
92
+ constructor(init: DomfiErrorInit);
93
+ }
94
+ /** Thrown when a wallet/account-scoped helper cannot resolve an account. */
95
+ declare class MissingAccountError extends DomfiBaseError<"MISSING_ACCOUNT", "wallet", false> {
96
+ constructor(init: DomfiErrorInit);
97
+ }
98
+ /** Thrown when the configured wallet client is connected to an unexpected chain. */
99
+ declare class WalletChainMismatchError extends DomfiBaseError<"WALLET_CHAIN_MISMATCH", "wallet", false> {
100
+ constructor(init: DomfiErrorInit);
101
+ }
102
+ /** Thrown when the configured wallet account does not match the requested account. */
103
+ declare class WalletAccountMismatchError extends DomfiBaseError<"WALLET_ACCOUNT_MISMATCH", "wallet", false> {
104
+ constructor(init: DomfiErrorInit);
105
+ }
106
+ /** Transient wallet failure indicating the wallet is disconnected or unavailable. */
107
+ declare class WalletDisconnectedError extends DomfiBaseError<"WALLET_DISCONNECTED", "wallet", true> {
108
+ constructor(init: DomfiErrorInit);
109
+ }
110
+ /** Transient REST readiness failure when strict reads reject stale or incomplete models. */
111
+ declare class ReadModelNotReadyError extends DomfiBaseError<"READ_MODEL_NOT_READY", "api", true> {
112
+ constructor(init: DomfiErrorInit);
113
+ }
114
+ /** Thrown when SDK metadata does not match the target protocol deployment. */
115
+ declare class ProtocolCompatibilityMismatchError extends DomfiBaseError<"PROTOCOL_COMPATIBILITY_MISMATCH", "compatibility", false> {
116
+ constructor(init: DomfiErrorInit);
117
+ }
118
+ /** Thrown when indexed order/position identity does not match the caller's expectation. */
119
+ declare class IdentityMismatchError extends DomfiBaseError<"IDENTITY_MISMATCH", "identity", false> {
120
+ constructor(init: DomfiErrorInit);
121
+ }
122
+ /** Thrown for invalid SDK inputs, malformed remote payloads, or impossible parsed state. */
123
+ declare class ValidationError extends DomfiBaseError<"VALIDATION_ERROR", "validation", false> {
124
+ constructor(init: DomfiErrorInit);
125
+ }
126
+ /** REST API error with optional HTTP status and structured response details. */
127
+ declare class ApiError extends DomfiBaseError<"API_ERROR" | `API_${string}`, "api", boolean> {
128
+ readonly httpStatus?: number;
129
+ readonly details?: Record<string, unknown>;
130
+ constructor(init: ApiErrorInit);
131
+ }
132
+ /** Network, fetch, timeout-wrapper, or custom transport failure. */
133
+ declare class TransportError extends DomfiBaseError<"TRANSPORT_ERROR", "transport", boolean> {
134
+ constructor(init: TransportErrorInit);
135
+ }
136
+ /** Returns true when an unknown provider error looks like an execution revert. */
137
+ declare function isContractRevertLikeError(error: unknown): boolean;
138
+ /** Contract execution revert, optionally mapped to a generated `REVERT_*` selector code. */
139
+ declare class ContractRevertError extends DomfiBaseError<"CONTRACT_REVERT" | `REVERT_${string}`, "contract", false> {
140
+ constructor(init: ContractRevertErrorInit);
141
+ }
142
+ /** Thrown when a write would exceed the caller's maximum oracle fee cap. */
143
+ declare class OracleFeeCapExceededError extends DomfiBaseError<"ORACLE_FEE_CAP_EXCEEDED", "validation", false> {
144
+ constructor(init: DomfiErrorInit);
145
+ }
146
+ /** Transient SDK timeout from REST requests, RPC polling, or watch loops. */
147
+ declare class TimeoutError extends DomfiBaseError<"TIMEOUT", "timeout", true> {
148
+ constructor(init: DomfiErrorInit);
149
+ }
150
+ /** Transient abort caused by a caller-provided `AbortSignal`. */
151
+ declare class AbortError extends DomfiBaseError<"ABORTED", "abort", true> {
152
+ constructor(init: DomfiErrorInit);
153
+ }
154
+
155
+ export { AbortError, ApiError, type ApiErrorInit, ContractRevertError, type ContractRevertErrorInit, type DiagnosticsEnvelope, type DomfiError, type DomfiErrorCode, type DomfiErrorInit, type DomfiErrorKind, IdentityMismatchError, MissingAccountError, MissingApiClientError, MissingPublicClientError, MissingWalletClientError, OracleFeeCapExceededError, ProtocolCompatibilityMismatchError, ReadModelNotReadyError, TimeoutError, TransportError, type TransportErrorInit, ValidationError, WalletAccountMismatchError, WalletChainMismatchError, WalletDisconnectedError, isContractRevertLikeError, isDomfiError };
@@ -0,0 +1,155 @@
1
+ import { Address, IsoTimestamp, Hex } from './units.js';
2
+
3
+ /** Broad SDK error category for grouping handling logic. */
4
+ type DomfiErrorKind = "transport" | "validation" | "config" | "wallet" | "api" | "contract" | "compatibility" | "identity" | "timeout" | "abort";
5
+ /** Stable SDK error code. API and contract errors may use prefixed dynamic codes. */
6
+ type DomfiErrorCode = "MISSING_API_CLIENT" | "MISSING_PUBLIC_CLIENT" | "MISSING_WALLET_CLIENT" | "MISSING_ACCOUNT" | "WALLET_CHAIN_MISMATCH" | "WALLET_ACCOUNT_MISMATCH" | "WALLET_DISCONNECTED" | "READ_MODEL_NOT_READY" | "PROTOCOL_COMPATIBILITY_MISMATCH" | "IDENTITY_MISMATCH" | "VALIDATION_ERROR" | "API_ERROR" | "CONTRACT_REVERT" | "ORACLE_FEE_CAP_EXCEEDED" | "TIMEOUT" | "ABORTED" | "TRANSPORT_ERROR";
7
+ type Freshness = {
8
+ source: string;
9
+ generatedAt: IsoTimestamp;
10
+ indexedBlock?: bigint;
11
+ chainHeadBlock?: bigint;
12
+ lagBlocks?: bigint;
13
+ cacheStatus?: string;
14
+ cacheAgeSeconds?: bigint;
15
+ isStale: boolean;
16
+ };
17
+ /** Diagnostics attached to SDK errors and REST result envelopes. */
18
+ type DiagnosticsEnvelope = {
19
+ sdkVersion: string;
20
+ sourceTag: string;
21
+ schemaHash?: string;
22
+ liveSchemaHash?: string;
23
+ chainId: number;
24
+ registryAddress?: Address;
25
+ valuationBlock?: bigint;
26
+ apiFreshness?: Freshness;
27
+ requestId?: string;
28
+ compatibilityStatus?: "ok" | "mismatch" | "unchecked";
29
+ };
30
+ /** Common shape implemented by all SDK-defined errors. */
31
+ interface DomfiError extends Error {
32
+ readonly name: string;
33
+ readonly code: DomfiErrorCode | `API_${string}` | `REVERT_${string}`;
34
+ readonly kind: DomfiErrorKind;
35
+ readonly transient: boolean;
36
+ readonly hash?: Hex;
37
+ readonly httpStatus?: number;
38
+ readonly details?: Record<string, unknown>;
39
+ readonly hint?: string;
40
+ readonly diagnostics: DiagnosticsEnvelope;
41
+ readonly cause?: unknown;
42
+ }
43
+ /** Type guard for SDK-defined errors and compatible serialized error objects. */
44
+ declare function isDomfiError(error: unknown): error is DomfiError;
45
+ /** Common constructor fields for SDK-defined errors. */
46
+ type DomfiErrorInit = {
47
+ message: string;
48
+ diagnostics: DiagnosticsEnvelope;
49
+ hash?: Hex;
50
+ hint?: string;
51
+ cause?: unknown;
52
+ };
53
+ /** Constructor fields for REST API errors. */
54
+ type ApiErrorInit = DomfiErrorInit & {
55
+ code?: "API_ERROR" | `API_${string}`;
56
+ httpStatus?: number;
57
+ transient?: boolean;
58
+ details?: Record<string, unknown>;
59
+ };
60
+ /** Constructor fields for contract revert errors. */
61
+ type ContractRevertErrorInit = DomfiErrorInit & {
62
+ code?: "CONTRACT_REVERT" | `REVERT_${string}`;
63
+ };
64
+ /** Constructor fields for transport errors. */
65
+ type TransportErrorInit = DomfiErrorInit & {
66
+ transient?: boolean;
67
+ };
68
+ declare class DomfiBaseError<Code extends DomfiError["code"], Kind extends DomfiErrorKind, Transient extends boolean> extends Error implements DomfiError {
69
+ readonly code: Code;
70
+ readonly kind: Kind;
71
+ readonly transient: Transient;
72
+ readonly hash?: Hex;
73
+ readonly hint?: string;
74
+ readonly diagnostics: DiagnosticsEnvelope;
75
+ readonly cause?: unknown;
76
+ constructor(init: DomfiErrorInit & {
77
+ code: Code;
78
+ kind: Kind;
79
+ transient: Transient;
80
+ });
81
+ }
82
+ /** Thrown when an API-only helper is called on an RPC-only client. */
83
+ declare class MissingApiClientError extends DomfiBaseError<"MISSING_API_CLIENT", "config", false> {
84
+ constructor(init: DomfiErrorInit);
85
+ }
86
+ /** Thrown when an RPC read/simulation requires a public client that was not configured. */
87
+ declare class MissingPublicClientError extends DomfiBaseError<"MISSING_PUBLIC_CLIENT", "config", false> {
88
+ constructor(init: DomfiErrorInit);
89
+ }
90
+ /** Thrown when a write helper requires a wallet client that was not configured. */
91
+ declare class MissingWalletClientError extends DomfiBaseError<"MISSING_WALLET_CLIENT", "wallet", false> {
92
+ constructor(init: DomfiErrorInit);
93
+ }
94
+ /** Thrown when a wallet/account-scoped helper cannot resolve an account. */
95
+ declare class MissingAccountError extends DomfiBaseError<"MISSING_ACCOUNT", "wallet", false> {
96
+ constructor(init: DomfiErrorInit);
97
+ }
98
+ /** Thrown when the configured wallet client is connected to an unexpected chain. */
99
+ declare class WalletChainMismatchError extends DomfiBaseError<"WALLET_CHAIN_MISMATCH", "wallet", false> {
100
+ constructor(init: DomfiErrorInit);
101
+ }
102
+ /** Thrown when the configured wallet account does not match the requested account. */
103
+ declare class WalletAccountMismatchError extends DomfiBaseError<"WALLET_ACCOUNT_MISMATCH", "wallet", false> {
104
+ constructor(init: DomfiErrorInit);
105
+ }
106
+ /** Transient wallet failure indicating the wallet is disconnected or unavailable. */
107
+ declare class WalletDisconnectedError extends DomfiBaseError<"WALLET_DISCONNECTED", "wallet", true> {
108
+ constructor(init: DomfiErrorInit);
109
+ }
110
+ /** Transient REST readiness failure when strict reads reject stale or incomplete models. */
111
+ declare class ReadModelNotReadyError extends DomfiBaseError<"READ_MODEL_NOT_READY", "api", true> {
112
+ constructor(init: DomfiErrorInit);
113
+ }
114
+ /** Thrown when SDK metadata does not match the target protocol deployment. */
115
+ declare class ProtocolCompatibilityMismatchError extends DomfiBaseError<"PROTOCOL_COMPATIBILITY_MISMATCH", "compatibility", false> {
116
+ constructor(init: DomfiErrorInit);
117
+ }
118
+ /** Thrown when indexed order/position identity does not match the caller's expectation. */
119
+ declare class IdentityMismatchError extends DomfiBaseError<"IDENTITY_MISMATCH", "identity", false> {
120
+ constructor(init: DomfiErrorInit);
121
+ }
122
+ /** Thrown for invalid SDK inputs, malformed remote payloads, or impossible parsed state. */
123
+ declare class ValidationError extends DomfiBaseError<"VALIDATION_ERROR", "validation", false> {
124
+ constructor(init: DomfiErrorInit);
125
+ }
126
+ /** REST API error with optional HTTP status and structured response details. */
127
+ declare class ApiError extends DomfiBaseError<"API_ERROR" | `API_${string}`, "api", boolean> {
128
+ readonly httpStatus?: number;
129
+ readonly details?: Record<string, unknown>;
130
+ constructor(init: ApiErrorInit);
131
+ }
132
+ /** Network, fetch, timeout-wrapper, or custom transport failure. */
133
+ declare class TransportError extends DomfiBaseError<"TRANSPORT_ERROR", "transport", boolean> {
134
+ constructor(init: TransportErrorInit);
135
+ }
136
+ /** Returns true when an unknown provider error looks like an execution revert. */
137
+ declare function isContractRevertLikeError(error: unknown): boolean;
138
+ /** Contract execution revert, optionally mapped to a generated `REVERT_*` selector code. */
139
+ declare class ContractRevertError extends DomfiBaseError<"CONTRACT_REVERT" | `REVERT_${string}`, "contract", false> {
140
+ constructor(init: ContractRevertErrorInit);
141
+ }
142
+ /** Thrown when a write would exceed the caller's maximum oracle fee cap. */
143
+ declare class OracleFeeCapExceededError extends DomfiBaseError<"ORACLE_FEE_CAP_EXCEEDED", "validation", false> {
144
+ constructor(init: DomfiErrorInit);
145
+ }
146
+ /** Transient SDK timeout from REST requests, RPC polling, or watch loops. */
147
+ declare class TimeoutError extends DomfiBaseError<"TIMEOUT", "timeout", true> {
148
+ constructor(init: DomfiErrorInit);
149
+ }
150
+ /** Transient abort caused by a caller-provided `AbortSignal`. */
151
+ declare class AbortError extends DomfiBaseError<"ABORTED", "abort", true> {
152
+ constructor(init: DomfiErrorInit);
153
+ }
154
+
155
+ export { AbortError, ApiError, type ApiErrorInit, ContractRevertError, type ContractRevertErrorInit, type DiagnosticsEnvelope, type DomfiError, type DomfiErrorCode, type DomfiErrorInit, type DomfiErrorKind, IdentityMismatchError, MissingAccountError, MissingApiClientError, MissingPublicClientError, MissingWalletClientError, OracleFeeCapExceededError, ProtocolCompatibilityMismatchError, ReadModelNotReadyError, TimeoutError, TransportError, type TransportErrorInit, ValidationError, WalletAccountMismatchError, WalletChainMismatchError, WalletDisconnectedError, isContractRevertLikeError, isDomfiError };
package/dist/errors.js ADDED
@@ -0,0 +1,3 @@
1
+ var d={"0x00796158":"REVERT_INVALID_ORACLE_FEE_CLAIM_AMOUNT","0x0819bdcd":"REVERT_SIGNATURE_EXPIRED","0x083fbd78":"REVERT_WRONG_SL","0x084986e7":"REVERT_IS_DONE","0x093650d5":"REVERT_NOT_GOV","0x0b92ae2b":"REVERT_ORACLE_VALUE_UNSET","0x0efd6122":"REVERT_ABOVE_BALANCE","0x118cdaa7":"REVERT_OWNABLE_UNAUTHORIZED_ACCOUNT","0x1309a563":"REVERT_IS_PAUSED","0x177e802f":"REVERT_ERC721_INSUFFICIENT_APPROVAL","0x17e08e97":"REVERT_NO_TRADE_FOUND","0x1c49f4d1":"REVERT_INVALID_CALL_DATA","0x1e4fbdf7":"REVERT_OWNABLE_INVALID_OWNER","0x206e62e3":"REVERT_INSUFFICIENT_ORACLE_FEE_BALANCE","0x24775e06":"REVERT_SAFE_CAST_OVERFLOWED_UINT_TO_INT","0x2493b27e":"REVERT_ABOVE_MAX_DEPOSIT","0x25c20828":"REVERT_INVALID_TIMESTAMP","0x284ff667":"REVERT_ERC4626_EXCEEDED_MAX_MINT","0x28acd8e3":"REVERT_ORACLE_ONLY","0x2a19e833":"REVERT_NOT_MANAGER","0x2a917859":"REVERT_NO_DELEGATE","0x2f285798":"REVERT_DEPOSIT_NOT_UNLOCKED","0x327269a7":"REVERT_SAFE_CAST_OVERFLOWED_INT_DOWNCAST","0x35fe85c5":"REVERT_WRONG_LEVERAGE","0x3786fdd4":"REVERT_NOT_ENOUGH_ASSETS","0x39d9cf4f":"REVERT_PENDING_WITHDRAWAL","0x3d093e84":"REVERT_WAIT_NEXT_EPOCH_START","0x3e0b1869":"REVERT_WAIT_TIMEOUT","0x3f7084a5":"REVERT_NOT_TRADING_OR_CALLBACKS","0x432b6c83":"REVERT_NOT_TRADES_UP_KEEP","0x46c4ede2":"REVERT_EXPOSURE_LIMITS","0x46daa3ad":"REVERT_NOT_TRADING","0x4a0bfec1":"REVERT_NOT_AUTHORIZED","0x4a67a8d2":"REVERT_ABOVE_MAX_MINT","0x4f9cbad0":"REVERT_DELEGATE_REENTRANT","0x502b946d":"REVERT_NOT_DELEGATE","0x50725e4f":"REVERT_NO_ACTIVE_DISCOUNT","0x5274afe7":"REVERT_SAFE_ERC20_FAILED_OPERATION","0x5863f789":"REVERT_WRONG_PARAMS","0x59171fc1":"REVERT_ERC721_ENUMERABLE_FORBIDDEN_BATCH_MINT","0x5ac89f62":"REVERT_NOT_YOUR_ORDER","0x5b08ba18":"REVERT_ERC721_INVALID_OPERATOR","0x5be5878a":"REVERT_DELEGATED_ACTION_FAILED","0x5c12ea62":"REVERT_MAX_PENDING_MARKET_ORDERS_REACHED","0x64283d7b":"REVERT_ERC721_INCORRECT_OWNER","0x64a0ae92":"REVERT_ERC721_INVALID_RECEIVER","0x66a662b9":"REVERT_MAX_REACHED","0x68174b76":"REVERT_NOT_REGISTRY_OR_GOV","0x6bcd09d8":"REVERT_ABOVE_WITHDRAW_AMOUNT","0x6dfcc650":"REVERT_SAFE_CAST_OVERFLOWED_UINT_DOWNCAST","0x7195a895":"REVERT_NOT_OPEN_PNL","0x73c6ac6e":"REVERT_ERC721_INVALID_SENDER","0x756688fe":"REVERT_INVALID_NONCE","0x79012fb2":"REVERT_ERC4626_EXCEEDED_MAX_DEPOSIT","0x7e273289":"REVERT_ERC721_NONEXISTENT_TOKEN","0x80a71fc5":"REVERT_ABOVE_MAX_ALLOWED_COLLATERAL","0x89c62b64":"REVERT_ERC721_INVALID_OWNER","0x8a2747e5":"REVERT_FEE_NOT_LISTED","0x8aefb98e":"REVERT_NO_OPEN_LIMIT_ORDER","0x8baa579f":"REVERT_INVALID_SIGNATURE","0x92497ff7":"REVERT_INVALID_ORACLE_FEE","0x94280d62":"REVERT_ERC20_INVALID_SPENDER","0x9589a27d":"REVERT_INVALID_ORACLE","0x96c6fd1e":"REVERT_ERC20_INVALID_SENDER","0x9fb82783":"REVERT_INVALID_ORACLE_STATUS","0xa1c00d42":"REVERT_PAIR_NOT_LISTED","0xa35ee470":"REVERT_NO_LIMIT_FOUND","0xa41bb918":"REVERT_WRONG_TP","0xa4e993e1":"REVERT_NO_DISCOUNT","0xa57d13dc":"REVERT_ERC721_OUT_OF_BOUNDS_INDEX","0xa8ce4432":"REVERT_SAFE_CAST_OVERFLOWED_INT_TO_UINT","0xa9fbf51f":"REVERT_ERC721_INVALID_APPROVER","0xabbf79aa":"REVERT_GROUP_NOT_LISTED","0xb09e78ce":"REVERT_DELEGATE_FORBIDDEN","0xb6efd7c6":"REVERT_PAIR_NOT_EMPTY","0xb94abeec":"REVERT_ERC4626_EXCEEDED_MAX_REDEEM","0xbc011219":"REVERT_NOT_TRADES_UP_KEEP_OR_TRADING","0xbd3cb648":"REVERT_MAX_DAILY_PNL_REACHED","0xbde4d0f1":"REVERT_NOT_CALLBACKS","0xcb87b762":"REVERT_PAIR_NOT_LISTED","0xcd2110ba":"REVERT_NOT_CALLBACKS_OR_TRADES_UP_KEEP_OR_TRADING","0xcd8fa092":"REVERT_NOT_CALLBACKS_OR_TRADES_UP_KEEP","0xcdc993c4":"REVERT_NULL_PRICE","0xd1f721ee":"REVERT_WRONG_LOCK_DURATION","0xd7e6bcf8":"REVERT_NOT_INITIALIZING","0xdd9397bb":"REVERT_TRIGGER_PENDING","0xddff77db":"REVERT_INVALID_DEV_FEE_CLAIM_AMOUNT","0xdface737":"REVERT_PAIR_ALREADY_LISTED","0xe450d38c":"REVERT_ERC20_INSUFFICIENT_BALANCE","0xe5a74490":"REVERT_NULL_AMOUNT","0xe602df05":"REVERT_ERC20_INVALID_APPROVER","0xe6f47fab":"REVERT_MAX_TRADES_PER_PAIR_REACHED","0xe9d60161":"REVERT_NOT_VAULT","0xec442f05":"REVERT_ERC20_INVALID_RECEIVER","0xeca695e1":"REVERT_BELOW_MIN_LEV_POS","0xefa9e5be":"REVERT_NO_TRADE_TO_TIMEOUT_FOUND","0xf3d0b126":"REVERT_NULL_ADDR","0xf77a8069":"REVERT_ALREADY_MARKET_CLOSED","0xf92ee8a9":"REVERT_INVALID_INITIALIZATION","0xfa5cd00f":"REVERT_NOT_ALLOWED","0xfb550858":"REVERT_INSUFFICIENT_ORACLE_FEE","0xfb8f41b2":"REVERT_ERC20_INSUFFICIENT_ALLOWANCE","0xfc33f1bd":"REVERT_NOT_EMPTY_INDEX","0xfe9cceec":"REVERT_ERC4626_EXCEEDED_MAX_WITHDRAW"};var y=["transport","validation","config","wallet","api","contract","compatibility","identity","timeout","abort"],U=new Set(y),h=["MISSING_API_CLIENT","MISSING_PUBLIC_CLIENT","MISSING_WALLET_CLIENT","MISSING_ACCOUNT","WALLET_CHAIN_MISMATCH","WALLET_ACCOUNT_MISMATCH","WALLET_DISCONNECTED","READ_MODEL_NOT_READY","PROTOCOL_COMPATIBILITY_MISMATCH","IDENTITY_MISMATCH","VALIDATION_ERROR","API_ERROR","CONTRACT_REVERT","ORACLE_FEE_CAP_EXCEEDED","TIMEOUT","ABORTED","TRANSPORT_ERROR"],w=new Set(h);function v(e){return R(e)&&typeof e.name=="string"&&typeof e.message=="string"&&F(e.code)&&G(e.kind)&&typeof e.transient=="boolean"&&H(e.diagnostics)&&k(e.hash)&&X(e.httpStatus)&&K(e.details)&&_(e.hint)}function F(e){return typeof e!="string"?false:w.has(e)||e.startsWith("API_")||e.startsWith("REVERT_")}function G(e){return typeof e=="string"&&U.has(e)}function H(e){return R(e)&&typeof e.sdkVersion=="string"&&typeof e.sourceTag=="string"&&Number.isFinite(e.chainId)&&_(e.schemaHash)&&_(e.liveSchemaHash)&&k(e.registryAddress)&&s(e.valuationBlock)&&W(e.apiFreshness)&&_(e.requestId)&&B(e.compatibilityStatus)}function W(e){return e===void 0?true:R(e)&&typeof e.source=="string"&&typeof e.generatedAt=="string"&&s(e.indexedBlock)&&s(e.chainHeadBlock)&&s(e.lagBlocks)&&_(e.cacheStatus)&&s(e.cacheAgeSeconds)&&typeof e.isStale=="boolean"}function B(e){return e===void 0||e==="ok"||e==="mismatch"||e==="unchecked"}function _(e){return e===void 0||typeof e=="string"}function X(e){return e===void 0||typeof e=="number"}function s(e){return e===void 0||typeof e=="bigint"}function k(e){return e===void 0||typeof e=="string"&&e.startsWith("0x")}function K(e){return e===void 0||R(e)}var t=class extends Error{code;kind;transient;hash;hint;diagnostics;cause;constructor(n){super(n.message),this.name=new.target.name,this.code=n.code,this.kind=n.kind,this.transient=n.transient,this.diagnostics=n.diagnostics,n.hash!==void 0&&(this.hash=n.hash),n.hint!==void 0&&(this.hint=n.hint),n.cause!==void 0&&(this.cause=n.cause);}},A=class extends t{constructor(n){super({...n,code:"MISSING_API_CLIENT",kind:"config",transient:false});}},f=class extends t{constructor(n){super({...n,code:"MISSING_PUBLIC_CLIENT",kind:"config",transient:false});}},N=class extends t{constructor(n){super({...n,code:"MISSING_WALLET_CLIENT",kind:"wallet",transient:false});}},O=class extends t{constructor(n){super({...n,code:"MISSING_ACCOUNT",kind:"wallet",transient:false});}},C=class extends t{constructor(n){super({...n,code:"WALLET_CHAIN_MISMATCH",kind:"wallet",transient:false});}},D=class extends t{constructor(n){super({...n,code:"WALLET_ACCOUNT_MISMATCH",kind:"wallet",transient:false});}},u=class extends t{constructor(n){super({...n,code:"WALLET_DISCONNECTED",kind:"wallet",transient:true});}},L=class extends t{constructor(n){super({...n,code:"READ_MODEL_NOT_READY",kind:"api",transient:true});}},x=class extends t{constructor(n){super({...n,code:"PROTOCOL_COMPATIBILITY_MISMATCH",kind:"compatibility",transient:false});}},S=class extends t{constructor(n){super({...n,code:"IDENTITY_MISMATCH",kind:"identity",transient:false});}},V=class extends t{constructor(n){super({...n,code:"VALIDATION_ERROR",kind:"validation",transient:false});}},l=class extends t{httpStatus;details;constructor(n){super({...n,code:n.code??"API_ERROR",kind:"api",transient:n.transient??false}),n.httpStatus!==void 0&&(this.httpStatus=n.httpStatus),n.details!==void 0&&(this.details=n.details);}},p=class extends t{constructor(n){super({...n,code:"TRANSPORT_ERROR",kind:"transport",transient:n.transient??true});}};function R(e){return typeof e=="object"&&e!==null}function M(e){if(typeof e!="string"||!/^0x[0-9a-fA-F]{8}/.test(e))return;let n=e.slice(0,10).toLowerCase();return n in d?n:void 0}function i(e,n=0){if(n>8)return;let E=M(e);if(E!==void 0)return E;if(!R(e))return;let o=M(e.data);if(o!==void 0)return o;let T=i(e.data,n+1);if(T!==void 0)return T;let a=i(e.cause,n+1);return a!==void 0?a:i(e.error,n+1)}var Y=new Set(["RawContractError","ContractFunctionRevertedError","ExecutionRevertedError"]);function r(e,n){let E=e[n];return typeof E=="string"?E:void 0}function c(e,n=0){if(n>8||!R(e))return false;let E=r(e,"name"),o=r(e,"message")??"",T=r(e,"shortMessage")??"",a=e.code;return E==="UserRejectedRequestError"||a===4001||/user rejected/i.test(o)||/user rejected/i.test(T)?true:c(e.cause,n+1)||c(e.error,n+1)}function $(e){let n=r(e,"message")??"",E=r(e,"shortMessage")??"",o=r(e,"details")??"";return /execution reverted|contract function .*reverted/i.test(`${n}
2
+ ${E}
3
+ ${o}`)}function I(e,n=0){if(n>8)return false;if(i(e)!==void 0)return true;if(!R(e))return false;let E=r(e,"name");return E!==void 0&&Y.has(E)||$(e)?true:I(e.cause,n+1)||I(e.error,n+1)}function z(e){return c(e)?false:I(e)}function j(e){let n=i(e);return n===void 0?"CONTRACT_REVERT":d[n]}var g=class extends t{constructor(n){super({...n,code:n.code??j(n.cause),kind:"contract",transient:false});}},b=class extends t{constructor(n){super({...n,code:"ORACLE_FEE_CAP_EXCEEDED",kind:"validation",transient:false});}},m=class extends t{constructor(n){super({...n,code:"TIMEOUT",kind:"timeout",transient:true});}},P=class extends t{constructor(n){super({...n,code:"ABORTED",kind:"abort",transient:true});}};export{P as AbortError,l as ApiError,g as ContractRevertError,S as IdentityMismatchError,O as MissingAccountError,A as MissingApiClientError,f as MissingPublicClientError,N as MissingWalletClientError,b as OracleFeeCapExceededError,x as ProtocolCompatibilityMismatchError,L as ReadModelNotReadyError,m as TimeoutError,p as TransportError,V as ValidationError,D as WalletAccountMismatchError,C as WalletChainMismatchError,u as WalletDisconnectedError,z as isContractRevertLikeError,v as isDomfiError};