@cubee_ee/sdk 0.1.8 → 0.2.3

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 (50) hide show
  1. package/README.md +50 -0
  2. package/dist/clients/CubicPoolClient.d.ts.map +1 -1
  3. package/dist/clients/CubicPoolClient.js +12 -6
  4. package/dist/clients/CubicPoolClient.js.map +1 -1
  5. package/dist/clients/index.d.ts +1 -0
  6. package/dist/clients/index.d.ts.map +1 -1
  7. package/dist/clients/index.js +1 -0
  8. package/dist/clients/index.js.map +1 -1
  9. package/dist/clients/tx-builders.d.ts +44 -0
  10. package/dist/clients/tx-builders.d.ts.map +1 -1
  11. package/dist/clients/tx-builders.js +59 -0
  12. package/dist/clients/tx-builders.js.map +1 -1
  13. package/dist/clients/versioned.d.ts +34 -0
  14. package/dist/clients/versioned.d.ts.map +1 -0
  15. package/dist/clients/versioned.js +55 -0
  16. package/dist/clients/versioned.js.map +1 -0
  17. package/dist/config/networks.js +2 -2
  18. package/dist/config/networks.js.map +1 -1
  19. package/dist/idl/index.d.ts +138 -14
  20. package/dist/idl/index.d.ts.map +1 -1
  21. package/dist/idl/protocol_admin.json +513 -2
  22. package/dist/index.d.ts +3 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +7 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/parsers/poolAccount.d.ts +42 -11
  27. package/dist/parsers/poolAccount.d.ts.map +1 -1
  28. package/dist/parsers/poolAccount.js +96 -37
  29. package/dist/parsers/poolAccount.js.map +1 -1
  30. package/dist/types/pool.d.ts +6 -0
  31. package/dist/types/pool.d.ts.map +1 -1
  32. package/dist/types/result.d.ts +1 -1
  33. package/dist/types/result.d.ts.map +1 -1
  34. package/dist/types/result.js.map +1 -1
  35. package/dist/utils/errors.d.ts +8 -1
  36. package/dist/utils/errors.d.ts.map +1 -1
  37. package/dist/utils/errors.js +57 -17
  38. package/dist/utils/errors.js.map +1 -1
  39. package/package.json +1 -1
  40. package/src/clients/CubicPoolClient.ts +20 -6
  41. package/src/clients/index.ts +1 -0
  42. package/src/clients/tx-builders.ts +100 -0
  43. package/src/clients/versioned.ts +80 -0
  44. package/src/config/networks.ts +8 -8
  45. package/src/idl/protocol_admin.json +513 -2
  46. package/src/index.ts +5 -0
  47. package/src/parsers/poolAccount.ts +151 -48
  48. package/src/types/pool.ts +6 -0
  49. package/src/types/result.ts +1 -0
  50. package/src/utils/errors.ts +60 -17
@@ -1,32 +1,63 @@
1
1
  import { PublicKey } from "@solana/web3.js";
2
2
  import BN from "bn.js";
3
3
  /**
4
- * Raw binary layout of CubicPool (see
5
- * `contracts/programs/cubic-pool/src/state/cubic_pool.rs`). Borsh-serialised.
4
+ * Raw binary layout of CubicPool **v4** (see
5
+ * `contracts/programs/cubic-pool/src/state/cubic_pool.rs`).
6
6
  *
7
- * We decode manually to avoid bundling an Anchor Program instance into the
8
- * SDK: the SDK is consumed by both frontend and backend, where dragging a
9
- * full Anchor runtime is heavy. The on-chain layout is stable (reserved[128]
10
- * at the tail).
7
+ * v4 reorganised per-token data from six parallel arrays into a single
8
+ * `tokens: [TokenSlot; 10]` array (each slot = `AssetConfig` +
9
+ * `AssetDynamics`). For backwards compatibility with downstream
10
+ * consumers (`CubicPoolClient.sync()` and similar), this decoder still
11
+ * exposes the parallel-array shape, plus the new max-selloff and admin
12
+ * fields.
13
+ *
14
+ * We decode manually to avoid bundling an Anchor `Program` instance into
15
+ * the SDK — both frontend and backend consume the SDK, and pulling the
16
+ * full Anchor runtime is heavy. The on-chain layout is stable (trailing
17
+ * `reserved[64]` blob keeps room for forward extensions).
11
18
  */
12
19
  export interface RawPoolAccount {
13
20
  config: PublicKey;
14
21
  bump: number;
15
22
  tokenCount: number;
16
23
  poolId: BN;
24
+ swapFeeRate: number;
25
+ protocolFeeRate: number;
26
+ createdAt: BN;
27
+ poolEnabled: boolean;
28
+ swapsEnabled: boolean;
29
+ poolAdmin: PublicKey;
30
+ pendingPoolAdmin: PublicKey;
31
+ rangeManager: PublicKey;
32
+ rangeManagerEnabled: boolean;
33
+ rangeManagerMaxVbChangeBps: number;
34
+ rangeManagerMaxWeightChangeBps: number;
35
+ rangeManagerMinUpdateIntervalSecs: number;
36
+ rangeManagerLastUpdated: BN;
17
37
  tokenMints: PublicKey[];
18
38
  tokenPrograms: PublicKey[];
19
39
  normalizedWeights: BN[];
40
+ maxSelloff: BN[];
41
+ maxSelloffPeriodLength: number[];
20
42
  virtualBalances: BN[];
21
43
  actualBalances: BN[];
22
- swapFeeRate: number;
23
- protocolFeeRate: number;
24
44
  protocolFeesOwed: BN[];
25
- createdAt: BN;
26
- poolEnabled: boolean;
27
- swapsEnabled: boolean;
45
+ previousSelloff: BN[];
46
+ currentSelloff: BN[];
47
+ windowStartTimestamp: BN[];
48
+ /**
49
+ * Per-pool Address Lookup Table. `PublicKey.default` means the pool's
50
+ * ALT has not been provisioned yet (`initialize_pool_alt` not called).
51
+ * SDK uses this to choose between v0 (with ALT) and legacy tx-building
52
+ * paths.
53
+ */
54
+ lookupTable: PublicKey;
28
55
  }
29
56
  /** 8-byte anchor discriminator for CubicPool. */
30
57
  export declare const POOL_DISCRIMINATOR_LEN = 8;
58
+ /** Total on-chain size of a v4 CubicPool (includes the 8-byte discriminator). */
59
+ export declare const POOL_V4_LEN = 1683;
60
+ /** Pre-v4 size — accounts at this size still need `migrate_pool_v4`. */
61
+ export declare const POOL_V3_LEN = 1154;
31
62
  export declare function decodePoolAccount(data: Buffer): RawPoolAccount;
32
63
  //# sourceMappingURL=poolAccount.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"poolAccount.d.ts","sourceRoot":"","sources":["../../src/parsers/poolAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,EAAE,CAAC;IACX,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,iBAAiB,EAAE,EAAE,EAAE,CAAC;IACxB,eAAe,EAAE,EAAE,EAAE,CAAC;IACtB,cAAc,EAAE,EAAE,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,EAAE,EAAE,CAAC;IACvB,SAAS,EAAE,EAAE,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,iDAAiD;AACjD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAGxC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA0E9D"}
1
+ {"version":3,"file":"poolAccount.d.ts","sourceRoot":"","sources":["../../src/parsers/poolAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,EAAE,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,EAAE,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,SAAS,CAAC;IAE5B,YAAY,EAAE,SAAS,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,0BAA0B,EAAE,MAAM,CAAC;IACnC,8BAA8B,EAAE,MAAM,CAAC;IACvC,iCAAiC,EAAE,MAAM,CAAC;IAC1C,uBAAuB,EAAE,EAAE,CAAC;IAG5B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,iBAAiB,EAAE,EAAE,EAAE,CAAC;IACxB,UAAU,EAAE,EAAE,EAAE,CAAC;IACjB,sBAAsB,EAAE,MAAM,EAAE,CAAC;IAEjC,eAAe,EAAE,EAAE,EAAE,CAAC;IACtB,cAAc,EAAE,EAAE,EAAE,CAAC;IACrB,gBAAgB,EAAE,EAAE,EAAE,CAAC;IACvB,eAAe,EAAE,EAAE,EAAE,CAAC;IACtB,cAAc,EAAE,EAAE,EAAE,CAAC;IACrB,oBAAoB,EAAE,EAAE,EAAE,CAAC;IAE3B;;;;;OAKG;IACH,WAAW,EAAE,SAAS,CAAC;CACxB;AAED,iDAAiD;AACjD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,iFAAiF;AACjF,eAAO,MAAM,WAAW,OAAO,CAAC;AAChC,wEAAwE;AACxE,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAmI9D"}
@@ -3,19 +3,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.POOL_DISCRIMINATOR_LEN = void 0;
6
+ exports.POOL_V3_LEN = exports.POOL_V4_LEN = exports.POOL_DISCRIMINATOR_LEN = void 0;
7
7
  exports.decodePoolAccount = decodePoolAccount;
8
8
  const web3_js_1 = require("@solana/web3.js");
9
9
  const bn_js_1 = __importDefault(require("bn.js"));
10
10
  /** 8-byte anchor discriminator for CubicPool. */
11
11
  exports.POOL_DISCRIMINATOR_LEN = 8;
12
12
  const MAX_TOKENS = 10;
13
+ /** Total on-chain size of a v4 CubicPool (includes the 8-byte discriminator). */
14
+ exports.POOL_V4_LEN = 1683;
15
+ /** Pre-v4 size — accounts at this size still need `migrate_pool_v4`. */
16
+ exports.POOL_V3_LEN = 1154;
13
17
  function decodePoolAccount(data) {
14
- if (data.length < exports.POOL_DISCRIMINATOR_LEN + 1000) {
15
- throw new Error(`decodePoolAccount: data too short (${data.length} bytes)`);
18
+ if (data.length === exports.POOL_V3_LEN) {
19
+ throw new Error(`decodePoolAccount: account is at v3 size (${exports.POOL_V3_LEN}). ` +
20
+ `Run migrate_pool_v4 against it before calling this decoder.`);
21
+ }
22
+ if (data.length !== exports.POOL_V4_LEN) {
23
+ throw new Error(`decodePoolAccount: unexpected data length ${data.length} ` +
24
+ `(expected ${exports.POOL_V4_LEN} for v4).`);
16
25
  }
17
26
  let off = exports.POOL_DISCRIMINATOR_LEN;
18
- const config = new web3_js_1.PublicKey(data.slice(off, off + 32));
27
+ const config = readPubkey(data, off);
19
28
  off += 32;
20
29
  const bump = data.readUInt8(off);
21
30
  off += 1;
@@ -23,66 +32,116 @@ function decodePoolAccount(data) {
23
32
  off += 1;
24
33
  const poolId = readU64LE(data, off);
25
34
  off += 8;
35
+ const swapFeeRate = data.readUInt32LE(off);
36
+ off += 4;
37
+ const protocolFeeRate = data.readUInt16LE(off);
38
+ off += 2;
39
+ const createdAt = readI64LE(data, off);
40
+ off += 8;
41
+ const poolEnabled = data.readUInt8(off) !== 0;
42
+ off += 1;
43
+ const swapsEnabled = data.readUInt8(off) !== 0;
44
+ off += 1;
45
+ const poolAdmin = readPubkey(data, off);
46
+ off += 32;
47
+ const pendingPoolAdmin = readPubkey(data, off);
48
+ off += 32;
49
+ const rangeManager = readPubkey(data, off);
50
+ off += 32;
51
+ const rangeManagerEnabled = data.readUInt8(off) !== 0;
52
+ off += 1;
53
+ const rangeManagerMaxVbChangeBps = data.readUInt16LE(off);
54
+ off += 2;
55
+ const rangeManagerMaxWeightChangeBps = data.readUInt16LE(off);
56
+ off += 2;
57
+ const rangeManagerMinUpdateIntervalSecs = data.readUInt32LE(off);
58
+ off += 4;
59
+ const rangeManagerLastUpdated = readI64LE(data, off);
60
+ off += 8;
61
+ // Per-token AoS — 10 slots, each 144 bytes.
26
62
  const tokenMints = [];
27
- for (let i = 0; i < MAX_TOKENS; i++) {
28
- tokenMints.push(new web3_js_1.PublicKey(data.slice(off, off + 32)));
29
- off += 32;
30
- }
31
63
  const tokenPrograms = [];
32
- for (let i = 0; i < MAX_TOKENS; i++) {
33
- tokenPrograms.push(new web3_js_1.PublicKey(data.slice(off, off + 32)));
34
- off += 32;
35
- }
36
64
  const normalizedWeights = [];
65
+ const maxSelloff = [];
66
+ const maxSelloffPeriodLength = [];
67
+ const virtualBalances = [];
68
+ const actualBalances = [];
69
+ const protocolFeesOwed = [];
70
+ const previousSelloff = [];
71
+ const currentSelloff = [];
72
+ const windowStartTimestamp = [];
37
73
  for (let i = 0; i < MAX_TOKENS; i++) {
74
+ // AssetConfig — 88 bytes
75
+ tokenMints.push(readPubkey(data, off));
76
+ off += 32;
77
+ tokenPrograms.push(readPubkey(data, off));
78
+ off += 32;
38
79
  normalizedWeights.push(readU64LE(data, off));
39
80
  off += 8;
40
- }
41
- const virtualBalances = [];
42
- for (let i = 0; i < MAX_TOKENS; i++) {
81
+ maxSelloff.push(readU64LE(data, off));
82
+ off += 8;
83
+ maxSelloffPeriodLength.push(data.readUInt32LE(off));
84
+ off += 4;
85
+ off += 4; // AssetConfig.reserved
86
+ // AssetDynamics — 56 bytes
43
87
  virtualBalances.push(readU64LE(data, off));
44
88
  off += 8;
45
- }
46
- const actualBalances = [];
47
- for (let i = 0; i < MAX_TOKENS; i++) {
48
89
  actualBalances.push(readU64LE(data, off));
49
90
  off += 8;
50
- }
51
- const swapFeeRate = data.readUInt32LE(off);
52
- off += 4;
53
- const protocolFeeRate = data.readUInt16LE(off);
54
- off += 2;
55
- const protocolFeesOwed = [];
56
- for (let i = 0; i < MAX_TOKENS; i++) {
57
91
  protocolFeesOwed.push(readU64LE(data, off));
58
92
  off += 8;
93
+ previousSelloff.push(readU64LE(data, off));
94
+ off += 8;
95
+ currentSelloff.push(readU64LE(data, off));
96
+ off += 8;
97
+ windowStartTimestamp.push(readI64LE(data, off));
98
+ off += 8;
99
+ off += 8; // AssetDynamics.reserved
59
100
  }
60
- const createdAt = readU64LE(data, off); // i64 — but Solana ts ≥ 0
61
- off += 8;
62
- const poolEnabled = data.readUInt8(off) !== 0;
63
- off += 1;
64
- const swapsEnabled = data.readUInt8(off) !== 0;
65
- off += 1;
66
- // reserved[128] trails — ignored.
101
+ const lookupTable = readPubkey(data, off);
102
+ off += 32;
103
+ // Trailing `reserved[32]` ignored.
67
104
  return {
68
105
  config,
69
106
  bump,
70
107
  tokenCount,
71
108
  poolId,
109
+ swapFeeRate,
110
+ protocolFeeRate,
111
+ createdAt,
112
+ poolEnabled,
113
+ swapsEnabled,
114
+ poolAdmin,
115
+ pendingPoolAdmin,
116
+ rangeManager,
117
+ rangeManagerEnabled,
118
+ rangeManagerMaxVbChangeBps,
119
+ rangeManagerMaxWeightChangeBps,
120
+ rangeManagerMinUpdateIntervalSecs,
121
+ rangeManagerLastUpdated,
72
122
  tokenMints,
73
123
  tokenPrograms,
74
124
  normalizedWeights,
125
+ maxSelloff,
126
+ maxSelloffPeriodLength,
75
127
  virtualBalances,
76
128
  actualBalances,
77
- swapFeeRate,
78
- protocolFeeRate,
79
129
  protocolFeesOwed,
80
- createdAt,
81
- poolEnabled,
82
- swapsEnabled,
130
+ previousSelloff,
131
+ currentSelloff,
132
+ windowStartTimestamp,
133
+ lookupTable,
83
134
  };
84
135
  }
136
+ function readPubkey(data, off) {
137
+ return new web3_js_1.PublicKey(data.slice(off, off + 32));
138
+ }
85
139
  function readU64LE(data, off) {
86
140
  return new bn_js_1.default(data.slice(off, off + 8), "le");
87
141
  }
142
+ function readI64LE(data, off) {
143
+ // i64 LE — for our timestamps (always ≥ 0 in practice) BN+LE matches.
144
+ // Returning BN keeps callers free to interpret signedness if needed.
145
+ return new bn_js_1.default(data.slice(off, off + 8), "le");
146
+ }
88
147
  //# sourceMappingURL=poolAccount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"poolAccount.js","sourceRoot":"","sources":["../../src/parsers/poolAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poolAccount.js","sourceRoot":"","sources":["../../src/parsers/poolAccount.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,12 @@ export interface PoolInfo {
48
48
  poolEnabled: boolean;
49
49
  swapsEnabled: boolean;
50
50
  createdAt: number;
51
+ /**
52
+ * Per-pool Address Lookup Table. `PublicKey.default` ⇒ no ALT provisioned
53
+ * yet (call `initialize_pool_alt` to bootstrap). When set and non-default,
54
+ * v0-tx builders compress per-token accounts via this ALT.
55
+ */
56
+ lookupTable: PublicKey;
51
57
  /** Unix timestamp (ms) when sync() ran. Useful for staleness checks. */
52
58
  syncedAt: number;
53
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/types/pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,SAAS,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,cAAc,EAAE,EAAE,CAAC;IACnB,aAAa,EAAE,EAAE,CAAC;IAClB,gBAAgB,EAAE,EAAE,CAAC;IACrB,0CAA0C;IAC1C,KAAK,EAAE,SAAS,CAAC;IACjB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,wBAAwB;IACxB,OAAO,EAAE,SAAS,CAAC;IACnB,kDAAkD;IAClD,MAAM,EAAE,SAAS,CAAC;IAClB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,MAAM,EAAE,EAAE,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,OAAO,EAAE,SAAS,CAAC;IACnB,mDAAmD;IACnD,cAAc,EAAE,EAAE,CAAC;IACnB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE"}
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/types/pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,SAAS,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,cAAc,EAAE,EAAE,CAAC;IACnB,aAAa,EAAE,EAAE,CAAC;IAClB,gBAAgB,EAAE,EAAE,CAAC;IACrB,0CAA0C;IAC1C,KAAK,EAAE,SAAS,CAAC;IACjB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,wBAAwB;IACxB,OAAO,EAAE,SAAS,CAAC;IACnB,kDAAkD;IAClD,MAAM,EAAE,SAAS,CAAC;IAClB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,MAAM,EAAE,EAAE,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,OAAO,EAAE,SAAS,CAAC;IACnB,mDAAmD;IACnD,cAAc,EAAE,EAAE,CAAC;IACnB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,WAAW,EAAE,SAAS,CAAC;IACvB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE"}
@@ -17,7 +17,7 @@ export interface SdkError {
17
17
  /** Original error for debugging; never render this to end users. */
18
18
  cause?: unknown;
19
19
  }
20
- export type SdkErrorCode = "rpc_unavailable" | "rpc_timeout" | "rpc_rate_limited" | "account_not_found" | "invalid_input" | "math_overflow" | "parse_failure" | "backend_unavailable" | "backend_invalid_response" | "insufficient_funds" | "pool_disabled" | "swaps_disabled" | "unsupported_pool_state" | "slippage_exceeded" | "simulation_failed" | "tx_build_failed" | "unknown";
20
+ export type SdkErrorCode = "rpc_unavailable" | "rpc_timeout" | "rpc_rate_limited" | "account_not_found" | "invalid_input" | "math_overflow" | "parse_failure" | "backend_unavailable" | "backend_invalid_response" | "insufficient_funds" | "pool_disabled" | "swaps_disabled" | "unsupported_pool_state" | "slippage_exceeded" | "simulation_failed" | "tx_build_failed" | "alt_fetch_failed" | "unknown";
21
21
  export declare const ok: <T>(data: T) => SdkResult<T>;
22
22
  export declare const err: (code: SdkErrorCode, humanMessage: string, cause?: unknown) => SdkResult<never>;
23
23
  //# sourceMappingURL=result.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/types/result.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GACrB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEnC,MAAM,WAAW,QAAQ;IACvB,oCAAoC;IACpC,IAAI,EAAE,YAAY,CAAC;IACnB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,mBAAmB,GACnB,eAAe,GACf,eAAe,GACf,eAAe,GACf,qBAAqB,GACrB,0BAA0B,GAC1B,oBAAoB,GACpB,eAAe,GACf,gBAAgB,GAChB,wBAAwB,GACxB,mBAAmB,GACnB,mBAAmB,GACnB,iBAAiB,GACjB,SAAS,CAAC;AAEd,eAAO,MAAM,EAAE,GAAI,CAAC,EAAE,MAAM,CAAC,KAAG,SAAS,CAAC,CAAC,CAAyB,CAAC;AACrE,eAAO,MAAM,GAAG,GACd,MAAM,YAAY,EAClB,cAAc,MAAM,EACpB,QAAQ,OAAO,KACd,SAAS,CAAC,KAAK,CAGhB,CAAC"}
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/types/result.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GACrB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEnC,MAAM,WAAW,QAAQ;IACvB,oCAAoC;IACpC,IAAI,EAAE,YAAY,CAAC;IACnB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,mBAAmB,GACnB,eAAe,GACf,eAAe,GACf,eAAe,GACf,qBAAqB,GACrB,0BAA0B,GAC1B,oBAAoB,GACpB,eAAe,GACf,gBAAgB,GAChB,wBAAwB,GACxB,mBAAmB,GACnB,mBAAmB,GACnB,iBAAiB,GACjB,kBAAkB,GAClB,SAAS,CAAC;AAEd,eAAO,MAAM,EAAE,GAAI,CAAC,EAAE,MAAM,CAAC,KAAG,SAAS,CAAC,CAAC,CAAyB,CAAC;AACrE,eAAO,MAAM,GAAG,GACd,MAAM,YAAY,EAClB,cAAc,MAAM,EACpB,QAAQ,OAAO,KACd,SAAS,CAAC,KAAK,CAGhB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/types/result.ts"],"names":[],"mappings":";;;AAoCO,MAAM,EAAE,GAAG,CAAI,IAAO,EAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAAxD,QAAA,EAAE,MAAsD;AAC9D,MAAM,GAAG,GAAG,CACjB,IAAkB,EAClB,YAAoB,EACpB,KAAe,EACG,EAAE,CAAC,CAAC;IACtB,EAAE,EAAE,KAAK;IACT,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE;CACrC,CAAC,CAAC;AAPU,QAAA,GAAG,OAOb"}
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/types/result.ts"],"names":[],"mappings":";;;AAqCO,MAAM,EAAE,GAAG,CAAI,IAAO,EAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAAxD,QAAA,EAAE,MAAsD;AAC9D,MAAM,GAAG,GAAG,CACjB,IAAkB,EAClB,YAAoB,EACpB,KAAe,EACG,EAAE,CAAC,CAAC;IACtB,EAAE,EAAE,KAAK;IACT,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE;CACrC,CAAC,CAAC;AAPU,QAAA,GAAG,OAOb"}
@@ -1,8 +1,15 @@
1
- import { SdkError } from "../types/result";
1
+ import { SdkError, SdkErrorCode } from "../types/result";
2
+ declare const CONTRACT_ERROR_MAP: Record<number, {
3
+ code: SdkErrorCode;
4
+ message: string;
5
+ }>;
2
6
  /**
3
7
  * Convert a raw error (possibly from Anchor, web3.js, or fetch) into a
4
8
  * cleanly-typed SdkError. Used by safeCall wrappers so callers always
5
9
  * get structured errors, never exceptions.
6
10
  */
7
11
  export declare function toSdkError(cause: unknown): SdkError;
12
+ /** @internal Exported for tests */
13
+ export declare function contractErrorMapForTests(): typeof CONTRACT_ERROR_MAP;
14
+ export {};
8
15
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,MAAM,iBAAiB,CAAC;AAoBzD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CA4BnD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA4CzD,QAAA,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAW7E,CAAC;AAEJ;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CA4BnD;AA0BD,mCAAmC;AACnC,wBAAgB,wBAAwB,IAAI,OAAO,kBAAkB,CAEpE"}
@@ -1,23 +1,59 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.toSdkError = toSdkError;
4
- const CONTRACT_ERROR_MAP = {
5
- // cubic-pool error codes (see programs/cubic-pool/src/errors.rs)
6
- 6000: { code: "invalid_input", message: "Invalid token count" },
7
- 6001: { code: "invalid_input", message: "Invalid token index" },
8
- 6002: { code: "invalid_input", message: "Invalid weights — must sum to 10000" },
9
- 6003: { code: "invalid_input", message: "Invalid virtual balances" },
10
- 6004: { code: "insufficient_funds", message: "Insufficient pool liquidity" },
11
- 6005: { code: "slippage_exceeded", message: "Slippage tolerance exceeded" },
12
- 6006: { code: "invalid_input", message: "Invalid token amounts" },
13
- 6007: { code: "slippage_exceeded", message: "BPT received is below the minimum requested" },
14
- 6009: { code: "invalid_input", message: "Swap fee rate exceeds the allowed maximum" },
15
- 6011: { code: "math_overflow", message: "Math overflow" },
16
- 6012: { code: "math_overflow", message: "Math underflow" },
17
- 6022: { code: "pool_disabled", message: "Pool is disabled" },
18
- 6023: { code: "swaps_disabled", message: "Swaps are disabled on this pool" },
19
- 6025: { code: "invalid_input", message: "Zero amount" },
7
+ exports.contractErrorMapForTests = contractErrorMapForTests;
8
+ const cubic_pool_json_1 = __importDefault(require("../idl/cubic_pool.json"));
9
+ const ANCHOR_NAME_TO_SDK = {
10
+ InvalidTokenCount: "invalid_input",
11
+ InvalidTokenIndex: "invalid_input",
12
+ InvalidWeights: "invalid_input",
13
+ InvalidVirtualBalances: "invalid_input",
14
+ InsufficientLiquidity: "insufficient_funds",
15
+ SlippageExceeded: "slippage_exceeded",
16
+ InvalidAmounts: "invalid_input",
17
+ InsufficientBptOut: "slippage_exceeded",
18
+ InsufficientTokensOut: "slippage_exceeded",
19
+ FeeRateMaxExceeded: "invalid_input",
20
+ ProtocolFeeRateMaxExceeded: "invalid_input",
21
+ MathOverflow: "math_overflow",
22
+ MathUnderflow: "math_overflow",
23
+ DivisionByZero: "math_overflow",
24
+ TokenMintMismatch: "invalid_input",
25
+ InvalidTokenDecimals: "invalid_input",
26
+ AmountOutExceedsBalance: "invalid_input",
27
+ InvalidBptAmount: "invalid_input",
28
+ Unauthorized: "invalid_input",
29
+ InvalidMint: "invalid_input",
30
+ PoolDisabled: "pool_disabled",
31
+ SwapsDisabled: "swaps_disabled",
32
+ PoolMustBeDisabled: "invalid_input",
33
+ ZeroAmount: "invalid_input",
34
+ ZeroFeeAmount: "invalid_input",
35
+ BannedExtension: "invalid_input",
36
+ TokenProgramMismatch: "invalid_input",
37
+ UserTokenAccountOwnerMismatch: "invalid_input",
38
+ InitialLiquidityTooSmall: "invalid_input",
39
+ InvalidTokenProgram: "invalid_input",
40
+ InvalidVault: "invalid_input",
41
+ InvalidSourceOwner: "invalid_input",
42
+ WouldBreakRentExempt: "invalid_input",
43
+ PoolAdminDisabled: "invalid_input",
44
+ ProtocolAdminUnset: "invalid_input",
45
+ NoPendingAdmin: "invalid_input",
46
+ NotPendingAdmin: "invalid_input",
47
+ InvalidPendingAdmin: "invalid_input",
48
+ ProtocolAdminNotTreasury: "invalid_input",
20
49
  };
50
+ const CONTRACT_ERROR_MAP = Object.fromEntries(cubic_pool_json_1.default.errors.map((anchorError) => [
51
+ anchorError.code,
52
+ {
53
+ code: ANCHOR_NAME_TO_SDK[anchorError.name] ?? "invalid_input",
54
+ message: anchorError.msg,
55
+ },
56
+ ]));
21
57
  /**
22
58
  * Convert a raw error (possibly from Anchor, web3.js, or fetch) into a
23
59
  * cleanly-typed SdkError. Used by safeCall wrappers so callers always
@@ -39,7 +75,7 @@ function toSdkError(cause) {
39
75
  return { code: "rpc_timeout", humanMessage: "RPC timed out", cause };
40
76
  }
41
77
  if (/429|rate limit/i.test(msg)) {
42
- return { code: "rpc_rate_limited", humanMessage: "RPC rate-limited slow down", cause };
78
+ return { code: "rpc_rate_limited", humanMessage: "RPC rate-limited - slow down", cause };
43
79
  }
44
80
  if (/fetch failed|ECONNREFUSED|ENOTFOUND|Proxy error|-32056|-32052|403/i.test(msg)) {
45
81
  return { code: "rpc_unavailable", humanMessage: "RPC endpoint unreachable", cause };
@@ -80,4 +116,8 @@ function extractErrorCode(msg) {
80
116
  return parseInt(dec[1], 10);
81
117
  return null;
82
118
  }
119
+ /** @internal Exported for tests */
120
+ function contractErrorMapForTests() {
121
+ return CONTRACT_ERROR_MAP;
122
+ }
83
123
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":";;;;;AA+DA,gCA4BC;AA2BD,4DAEC;AAxHD,6EAAkD;AAGlD,MAAM,kBAAkB,GAAiC;IACvD,iBAAiB,EAAE,eAAe;IAClC,iBAAiB,EAAE,eAAe;IAClC,cAAc,EAAE,eAAe;IAC/B,sBAAsB,EAAE,eAAe;IACvC,qBAAqB,EAAE,oBAAoB;IAC3C,gBAAgB,EAAE,mBAAmB;IACrC,cAAc,EAAE,eAAe;IAC/B,kBAAkB,EAAE,mBAAmB;IACvC,qBAAqB,EAAE,mBAAmB;IAC1C,kBAAkB,EAAE,eAAe;IACnC,0BAA0B,EAAE,eAAe;IAC3C,YAAY,EAAE,eAAe;IAC7B,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,eAAe;IAC/B,iBAAiB,EAAE,eAAe;IAClC,oBAAoB,EAAE,eAAe;IACrC,uBAAuB,EAAE,eAAe;IACxC,gBAAgB,EAAE,eAAe;IACjC,YAAY,EAAE,eAAe;IAC7B,WAAW,EAAE,eAAe;IAC5B,YAAY,EAAE,eAAe;IAC7B,aAAa,EAAE,gBAAgB;IAC/B,kBAAkB,EAAE,eAAe;IACnC,UAAU,EAAE,eAAe;IAC3B,aAAa,EAAE,eAAe;IAC9B,eAAe,EAAE,eAAe;IAChC,oBAAoB,EAAE,eAAe;IACrC,6BAA6B,EAAE,eAAe;IAC9C,wBAAwB,EAAE,eAAe;IACzC,mBAAmB,EAAE,eAAe;IACpC,YAAY,EAAE,eAAe;IAC7B,kBAAkB,EAAE,eAAe;IACnC,oBAAoB,EAAE,eAAe;IACrC,iBAAiB,EAAE,eAAe;IAClC,kBAAkB,EAAE,eAAe;IACnC,cAAc,EAAE,eAAe;IAC/B,eAAe,EAAE,eAAe;IAChC,mBAAmB,EAAE,eAAe;IACpC,wBAAwB,EAAE,eAAe;CAC1C,CAAC;AAEF,MAAM,kBAAkB,GACtB,MAAM,CAAC,WAAW,CACf,yBAAY,CAAC,MAA6D,CAAC,GAAG,CAC7E,CAAC,WAAW,EAAE,EAAE,CAAC;IACf,WAAW,CAAC,IAAI;IAChB;QACE,IAAI,EAAE,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,eAAe;QAC7D,OAAO,EAAE,WAAW,CAAC,GAAG;KACzB;CACF,CACF,CACF,CAAC;AAEJ;;;;GAIG;AACH,SAAgB,UAAU,CAAC,KAAc;IACvC,gCAAgC;IAChC,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,OAAO;YACL,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI;YACnC,YAAY,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO;YAC9C,KAAK;SACN,CAAC;IACJ,CAAC;IACD,yBAAyB;IACzB,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IACvE,CAAC;IACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC;IAC3F,CAAC;IACD,IAAI,oEAAoE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAC;IACtF,CAAC;IACD,IAAI,2CAA2C,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,iCAAiC,EAAE,KAAK,EAAE,CAAC;IAC/F,CAAC;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,uCAAuC,EAAE,KAAK,EAAE,CAAC;IACtG,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,eAAe,EAAE,KAAK,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,cAAc,CAAC,CAAU;IAChC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,YAAY,KAAK;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IACzC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAE,CAA0B,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,sDAAsD;IACtD,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAChE,IAAI,GAAG;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,0CAA0C;IAC1C,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC/C,IAAI,GAAG;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mCAAmC;AACnC,SAAgB,wBAAwB;IACtC,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cubee_ee/sdk",
3
- "version": "0.1.8",
3
+ "version": "0.2.3",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -160,6 +160,7 @@ export class CubicPoolClient {
160
160
  poolEnabled: raw.poolEnabled,
161
161
  swapsEnabled: raw.swapsEnabled,
162
162
  createdAt: raw.createdAt.toNumber(),
163
+ lookupTable: raw.lookupTable,
163
164
  syncedAt: Date.now(),
164
165
  };
165
166
  this.cache = info;
@@ -406,12 +407,25 @@ export class CubicPoolClient {
406
407
  const poolRes = this.requireCache();
407
408
  if (!poolRes.ok) return poolRes;
408
409
  const slip = params.slippageHundredthsBps ?? this.config.defaults.slippageHundredthsBps;
409
- const minOut = params.minAmountOut
410
- ? params.minAmountOut
411
- : (() => {
412
- const q = this.quoteSwap(params.tokenInIndex, params.tokenOutIndex, params.amountIn, slip);
413
- return q.ok ? q.data.minAmountOut : new BN(0);
414
- })();
410
+ let minOut: BN;
411
+ if (params.minAmountOut) {
412
+ minOut = params.minAmountOut;
413
+ } else {
414
+ const q = this.quoteSwap(
415
+ params.tokenInIndex,
416
+ params.tokenOutIndex,
417
+ params.amountIn,
418
+ slip
419
+ );
420
+ if (!q.ok) {
421
+ return err(
422
+ q.error.code,
423
+ `Cannot build swap without minAmountOut: ${q.error.humanMessage}`,
424
+ q.error.cause
425
+ );
426
+ }
427
+ minOut = q.data.minAmountOut;
428
+ }
415
429
  try {
416
430
  const tx = buildSwapTx(this.config, poolRes.data, { ...params, minAmountOut: minOut });
417
431
  return ok(tx);
@@ -2,6 +2,7 @@ export * from "./RpcClient";
2
2
  export * from "./CubeBackendClient";
3
3
  export * from "./CubicPoolClient";
4
4
  export * from "./tx-builders";
5
+ export * from "./versioned";
5
6
  export * from "./SingleTokenDepositClient";
6
7
  export * from "./PoolFactoryClient";
7
8
  export * from "./AdminClient";