@interest-protocol/vortex-sdk 7.0.0 → 7.2.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.
@@ -59,4 +59,5 @@ export declare const parseVortexPool: (data: SuiObjectData) => {
59
59
  export * from './events';
60
60
  export * from './prove';
61
61
  export * from './decrypt';
62
+ export * from './validate';
62
63
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;AAE5C,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,GAAG,IAAI,GAChB,UAAU,CAkEZ;AAED,UAAU,gBAAgB;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,UAAU,CAAC;IACxB,WAAW,EAAE,UAAU,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,IAAI,CAAC;IAClB,WAAW,EAAE,IAAI,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,YAAY,GAAI,qMAgB1B,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;CAiClB,CAAC;AAQF,eAAO,MAAM,eAAe,GAAI,MAAM,aAAa;;;;;;;CAelD,CAAC;AAEF,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;AAE5C,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,GAAG,IAAI,GAChB,UAAU,CAkEZ;AAED,UAAU,gBAAgB;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,UAAU,CAAC;IACxB,WAAW,EAAE,UAAU,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,IAAI,CAAC;IAClB,WAAW,EAAE,IAAI,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,YAAY,GAAI,qMAgB1B,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;CAiClB,CAAC;AAQF,eAAO,MAAM,eAAe,GAAI,MAAM,aAAa;;;;;;;CAelD,CAAC;AAEF,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function validateDepositWithAccountCommands(commands: object[]): void;
2
+ export declare function validateWithdrawCommands(commands: object[]): void;
3
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/utils/validate.ts"],"names":[],"mappings":"AA6NA,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAE3E;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAEjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"vortex-api.d.ts","sourceRoot":"","sources":["../src/vortex-api.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EAExB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EAGhB,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,SAAS;;gBAGR,EAAE,MAAuB,EAAE,GAAE,wBAA6B;IAIhE,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAQjC,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAY5D,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAWnE,QAAQ,CAAC,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAyBzD,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2BtE,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkBnE,kBAAkB,CACtB,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,mBAAmB,CAAC;IAazB,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC;CA0C7C;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC"}
1
+ {"version":3,"file":"vortex-api.d.ts","sourceRoot":"","sources":["../src/vortex-api.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EAExB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EAGhB,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,SAAS;;gBAGR,EAAE,MAAuB,EAAE,GAAE,wBAA6B;IAIhE,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAQjC,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAY5D,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAWnE,QAAQ,CAAC,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAyBzD,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2BtE,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkBnE,kBAAkB,CACtB,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,mBAAmB,CAAC;IAczB,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC;CA4C7C;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC"}
@@ -92,6 +92,7 @@ export interface MerklePathResponse {
92
92
  }
93
93
  export interface ExecuteTransactionRequest {
94
94
  txBytes: string;
95
+ apiKey: string;
95
96
  }
96
97
  export interface TransactionResponse {
97
98
  success: true;
@@ -1 +1 @@
1
- {"version":3,"file":"vortex-api.types.d.ts","sourceRoot":"","sources":["../src/vortex-api.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vortex-api.types.d.ts","sourceRoot":"","sources":["../src/vortex-api.types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interest-protocol/vortex-sdk",
3
- "version": "7.0.0",
3
+ "version": "7.2.0",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "module": "./dist/index.mjs",
@@ -178,3 +178,4 @@ export const parseVortexPool = (data: SuiObjectData) => {
178
178
  export * from './events';
179
179
  export * from './prove';
180
180
  export * from './decrypt';
181
+ export * from './validate';
@@ -0,0 +1,228 @@
1
+ import { normalizeSuiAddress, SUI_FRAMEWORK_ADDRESS } from '@mysten/sui/utils';
2
+ import invariant from 'tiny-invariant';
3
+ import { VORTEX_PACKAGE_ID } from '../constants';
4
+
5
+ interface MoveCall {
6
+ package: string;
7
+ module: string;
8
+ function: string;
9
+ typeArguments: string[];
10
+ arguments: object[];
11
+ }
12
+
13
+ interface ExpectedCommand {
14
+ MoveCall?: {
15
+ package: string;
16
+ module: string;
17
+ function: string;
18
+ arguments: object[];
19
+ };
20
+ MakeMoveVec?: {
21
+ elements: object[];
22
+ };
23
+ TransferObjects?: {
24
+ objects: object[];
25
+ address: object;
26
+ };
27
+ }
28
+
29
+ const EXPECTED_DEPOSIT_WITH_ACCOUNT_COMMANDS: ExpectedCommand[] = [
30
+ {
31
+ MoveCall: {
32
+ package: VORTEX_PACKAGE_ID,
33
+ module: 'vortex_ext_data',
34
+ function: 'new',
35
+ arguments: [
36
+ { Input: 0 },
37
+ { Input: 1 },
38
+ { Input: 2 },
39
+ { Input: 3 },
40
+ { Input: 4 },
41
+ { Input: 5 },
42
+ ],
43
+ },
44
+ },
45
+ {
46
+ MoveCall: {
47
+ package: VORTEX_PACKAGE_ID,
48
+ module: 'vortex_proof',
49
+ function: 'new',
50
+ arguments: [
51
+ { Input: 6 },
52
+ { Input: 7 },
53
+ { Input: 8 },
54
+ { Input: 9 },
55
+ { Input: 10 },
56
+ { Input: 11 },
57
+ { Input: 12 },
58
+ { Input: 13 },
59
+ ],
60
+ },
61
+ },
62
+ {
63
+ MakeMoveVec: {
64
+ elements: [{ Input: 16 }],
65
+ },
66
+ },
67
+ {
68
+ MoveCall: {
69
+ package: VORTEX_PACKAGE_ID,
70
+ module: 'vortex',
71
+ function: 'transact_with_account',
72
+ arguments: [
73
+ { Input: 14 },
74
+ { Input: 15 },
75
+ { Result: 2 },
76
+ { Result: 1 },
77
+ { Result: 0 },
78
+ ],
79
+ },
80
+ },
81
+ {
82
+ TransferObjects: {
83
+ objects: [{ Result: 3 }],
84
+ address: { Input: 17 },
85
+ },
86
+ },
87
+ ];
88
+
89
+ const EXPECTED_WITHDRAW_COMMANDS: ExpectedCommand[] = [
90
+ {
91
+ MoveCall: {
92
+ package: VORTEX_PACKAGE_ID,
93
+ module: 'vortex_ext_data',
94
+ function: 'new',
95
+ arguments: [
96
+ { Input: 0 },
97
+ { Input: 1 },
98
+ { Input: 2 },
99
+ { Input: 3 },
100
+ { Input: 4 },
101
+ { Input: 5 },
102
+ ],
103
+ },
104
+ },
105
+ {
106
+ MoveCall: {
107
+ package: VORTEX_PACKAGE_ID,
108
+ module: 'vortex_proof',
109
+ function: 'new',
110
+ arguments: [
111
+ { Input: 6 },
112
+ { Input: 7 },
113
+ { Input: 8 },
114
+ { Input: 9 },
115
+ { Input: 10 },
116
+ { Input: 11 },
117
+ { Input: 12 },
118
+ { Input: 13 },
119
+ ],
120
+ },
121
+ },
122
+ {
123
+ MoveCall: {
124
+ package: SUI_FRAMEWORK_ADDRESS,
125
+ module: 'coin',
126
+ function: 'zero',
127
+ arguments: [],
128
+ },
129
+ },
130
+ {
131
+ MoveCall: {
132
+ package: VORTEX_PACKAGE_ID,
133
+ module: 'vortex',
134
+ function: 'transact',
135
+ arguments: [
136
+ { Input: 14 },
137
+ { Result: 2 },
138
+ { Result: 1 },
139
+ { Result: 0 },
140
+ ],
141
+ },
142
+ },
143
+ {
144
+ TransferObjects: {
145
+ objects: [{ Result: 3 }],
146
+ address: { Input: 15 },
147
+ },
148
+ },
149
+ ];
150
+
151
+ function validateCommands(
152
+ commands: object[],
153
+ expectedCommands: ExpectedCommand[]
154
+ ): void {
155
+ invariant(
156
+ commands.length === expectedCommands.length,
157
+ `Expected ${expectedCommands.length} commands, got ${commands.length}`
158
+ );
159
+
160
+ for (let i = 0; i < commands.length; i++) {
161
+ const actual = commands[i] as Record<string, unknown>;
162
+ const expected = expectedCommands[i]!;
163
+
164
+ if ('MoveCall' in expected && expected.MoveCall) {
165
+ invariant('MoveCall' in actual, `Command ${i}: Expected MoveCall`);
166
+ const actualMoveCall = actual.MoveCall as MoveCall;
167
+ const expectedMoveCall = expected.MoveCall;
168
+
169
+ invariant(
170
+ normalizeSuiAddress(actualMoveCall.package) ===
171
+ normalizeSuiAddress(expectedMoveCall.package),
172
+ `Command ${i}: Package mismatch. Expected ${expectedMoveCall.package}, got ${actualMoveCall.package}`
173
+ );
174
+ invariant(
175
+ actualMoveCall.module === expectedMoveCall.module,
176
+ `Command ${i}: Module mismatch. Expected ${expectedMoveCall.module}, got ${actualMoveCall.module}`
177
+ );
178
+ invariant(
179
+ actualMoveCall.function === expectedMoveCall.function,
180
+ `Command ${i}: Function mismatch. Expected ${expectedMoveCall.function}, got ${actualMoveCall.function}`
181
+ );
182
+ invariant(
183
+ JSON.stringify(actualMoveCall.arguments) ===
184
+ JSON.stringify(expectedMoveCall.arguments),
185
+ `Command ${i}: Arguments mismatch`
186
+ );
187
+ } else if ('MakeMoveVec' in expected && expected.MakeMoveVec) {
188
+ invariant('MakeMoveVec' in actual, `Command ${i}: Expected MakeMoveVec`);
189
+ const actualMakeMoveVec = actual.MakeMoveVec as { elements: object[] };
190
+ const expectedMakeMoveVec = expected.MakeMoveVec;
191
+
192
+ invariant(
193
+ JSON.stringify(actualMakeMoveVec.elements) ===
194
+ JSON.stringify(expectedMakeMoveVec.elements),
195
+ `Command ${i}: MakeMoveVec elements mismatch`
196
+ );
197
+ } else if ('TransferObjects' in expected && expected.TransferObjects) {
198
+ invariant(
199
+ 'TransferObjects' in actual,
200
+ `Command ${i}: Expected TransferObjects`
201
+ );
202
+ const actualTransfer = actual.TransferObjects as {
203
+ objects: object[];
204
+ address: object;
205
+ };
206
+ const expectedTransfer = expected.TransferObjects;
207
+
208
+ invariant(
209
+ JSON.stringify(actualTransfer.objects) ===
210
+ JSON.stringify(expectedTransfer.objects),
211
+ `Command ${i}: TransferObjects objects mismatch`
212
+ );
213
+ invariant(
214
+ JSON.stringify(actualTransfer.address) ===
215
+ JSON.stringify(expectedTransfer.address),
216
+ `Command ${i}: TransferObjects address mismatch`
217
+ );
218
+ }
219
+ }
220
+ }
221
+
222
+ export function validateDepositWithAccountCommands(commands: object[]): void {
223
+ validateCommands(commands, EXPECTED_DEPOSIT_WITH_ACCOUNT_COMMANDS);
224
+ }
225
+
226
+ export function validateWithdrawCommands(commands: object[]): void {
227
+ validateCommands(commands, EXPECTED_WITHDRAW_COMMANDS);
228
+ }
package/src/vortex-api.ts CHANGED
@@ -134,7 +134,8 @@ export class VortexAPI {
134
134
  '/api/v1/transactions',
135
135
  {
136
136
  txBytes: args.txBytes,
137
- }
137
+ },
138
+ args.apiKey
138
139
  );
139
140
 
140
141
  this.#assertSuccess(response);
@@ -163,12 +164,14 @@ export class VortexAPI {
163
164
 
164
165
  async #post<T>(
165
166
  path: string,
166
- body: Record<string, unknown>
167
+ body: Record<string, unknown>,
168
+ apiKey?: string
167
169
  ): Promise<ApiResponse<T>> {
168
170
  const response = await fetch(`${this.#apiUrl}${path}`, {
169
171
  method: 'POST',
170
172
  headers: {
171
173
  'Content-Type': 'application/json',
174
+ 'x-api-key': apiKey ?? '',
172
175
  },
173
176
  body: JSON.stringify(body),
174
177
  });
@@ -111,6 +111,7 @@ export interface MerklePathResponse {
111
111
 
112
112
  export interface ExecuteTransactionRequest {
113
113
  txBytes: string;
114
+ apiKey: string;
114
115
  }
115
116
 
116
117
  export interface TransactionResponse {