@varla/sdk 2.4.0 → 2.5.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 (36) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +47 -0
  3. package/dist/abi/full/PolymarketNegRiskMergeAdapter.d.ts +248 -0
  4. package/dist/abi/full/PolymarketNegRiskMergeAdapter.d.ts.map +1 -0
  5. package/dist/abi/full/PolymarketNegRiskMergeAdapter.js +326 -0
  6. package/dist/abi/full/PolymarketNegRiskMergeAdapter.js.map +1 -0
  7. package/dist/abi/full/VarlaMergeLiquidator.d.ts +39 -0
  8. package/dist/abi/full/VarlaMergeLiquidator.d.ts.map +1 -1
  9. package/dist/abi/full/VarlaMergeLiquidator.js +50 -0
  10. package/dist/abi/full/VarlaMergeLiquidator.js.map +1 -1
  11. package/dist/abi/full/VarlaStaking.d.ts +640 -0
  12. package/dist/abi/full/VarlaStaking.d.ts.map +1 -0
  13. package/dist/abi/full/VarlaStaking.js +842 -0
  14. package/dist/abi/full/VarlaStaking.js.map +1 -0
  15. package/dist/abi/index.d.ts +2 -0
  16. package/dist/abi/index.d.ts.map +1 -1
  17. package/dist/abi/index.js +2 -0
  18. package/dist/abi/index.js.map +1 -1
  19. package/dist/contracts.d.ts +3 -1
  20. package/dist/contracts.d.ts.map +1 -1
  21. package/dist/contracts.js +16 -0
  22. package/dist/contracts.js.map +1 -1
  23. package/dist/generated.d.ts +960 -35
  24. package/dist/generated.d.ts.map +1 -1
  25. package/dist/generated.js +2 -0
  26. package/dist/generated.js.map +1 -1
  27. package/dist/types.d.ts +2 -0
  28. package/dist/types.d.ts.map +1 -1
  29. package/package.json +1 -1
  30. package/src/abi/full/PolymarketNegRiskMergeAdapter.ts +330 -0
  31. package/src/abi/full/VarlaMergeLiquidator.ts +50 -0
  32. package/src/abi/full/VarlaStaking.ts +846 -0
  33. package/src/abi/index.ts +2 -0
  34. package/src/contracts.ts +22 -0
  35. package/src/generated.ts +2 -0
  36. package/src/types.ts +2 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @varla-xyz/protocol
2
2
 
3
+ ## 2.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - ee0aecd: Added staking and Polymarket negative-risk merge adapter contract support to the SDK.
8
+
9
+ - Exported new VarlaStaking and PolymarketNegRiskMergeAdapter ABIs.,- Extended address book and contract helpers with staking and negRiskMergeAdapter entries.
10
+
3
11
  ## 2.4.0
4
12
 
5
13
  ### Minor Changes
package/README.md CHANGED
@@ -109,6 +109,53 @@ const tiers = await views.readTieredLtvConfig({ core: c.core });
109
109
  const ltv = await views.readLtvForPosition({ core: c.core, positionId: 123n });
110
110
  ```
111
111
 
112
+ ### Wallet position discovery
113
+
114
+ ERC-1155 has no `tokenIdsOf(owner)` — `readWalletPositionIds` solves this by reading all oracle-configured position IDs and batch-checking balances via multicall.
115
+
116
+ ```ts
117
+ // Discover which Varla positions a wallet holds (without an indexer)
118
+ const wallet = await views.readWalletPositionIds({
119
+ oracle: c.oracle, // reads getConfiguredPositions()
120
+ positionsToken: c.ctf, // ERC-1155 contract
121
+ client, // multicall provider
122
+ user: "0x...",
123
+ });
124
+ // → { user, candidateCount: 150, positionIds: [42n, 99n], balances: [5n, 12n] }
125
+ ```
126
+
127
+ ### Hypothetical borrow capacity
128
+
129
+ Computes how much a user _could_ borrow if they deposited their wallet-held positions.
130
+
131
+ ```ts
132
+ // With explicit position IDs (e.g., from your own indexer)
133
+ const capacity = await views.readHypotheticalBorrowCapacity({
134
+ core: c.core,
135
+ oracle: { address: c.oracle.address },
136
+ positionsToken: c.ctf,
137
+ client,
138
+ user: "0x...",
139
+ walletPositionIds: [42n, 99n], // known IDs
140
+ });
141
+
142
+ // Or auto-discover from oracle registry (no walletPositionIds needed)
143
+ const capacityAuto = await views.readHypotheticalBorrowCapacity({
144
+ core: c.core,
145
+ oracle: c.oracle, // must have .read.getConfiguredPositions
146
+ positionsToken: c.ctf,
147
+ client,
148
+ user: "0x...",
149
+ // walletPositionIds omitted → auto-discovers via readWalletPositionIds
150
+ });
151
+
152
+ console.log(capacityAuto.current.maxBorrow); // from deposited positions
153
+ console.log(capacityAuto.wallet.portfolioValue); // wallet positions value
154
+ console.log(capacityAuto.potential.maxBorrow); // if all wallet positions deposited
155
+ ```
156
+
157
+ > **Note:** Auto-discovery scans _all_ oracle-configured positions (one `balanceOf` multicall per position). For registries with 500+ positions this is efficient via chunked multicall, but prefer passing explicit `walletPositionIds` when you have them from an indexer.
158
+
112
159
  ### Oracle views
113
160
 
114
161
  ```ts
@@ -0,0 +1,248 @@
1
+ export declare const POLYMARKETNEGRISKMERGEADAPTER_ABI: readonly [{
2
+ readonly inputs: readonly [{
3
+ readonly internalType: "address";
4
+ readonly name: "_ctf";
5
+ readonly type: "address";
6
+ }, {
7
+ readonly internalType: "address";
8
+ readonly name: "_negRiskAdapter";
9
+ readonly type: "address";
10
+ }, {
11
+ readonly internalType: "address";
12
+ readonly name: "_collateral";
13
+ readonly type: "address";
14
+ }, {
15
+ readonly internalType: "address";
16
+ readonly name: "_authority";
17
+ readonly type: "address";
18
+ }];
19
+ readonly stateMutability: "nonpayable";
20
+ readonly type: "constructor";
21
+ }, {
22
+ readonly inputs: readonly [{
23
+ readonly internalType: "address";
24
+ readonly name: "authority";
25
+ readonly type: "address";
26
+ }];
27
+ readonly name: "AccessManagedInvalidAuthority";
28
+ readonly type: "error";
29
+ }, {
30
+ readonly inputs: readonly [{
31
+ readonly internalType: "address";
32
+ readonly name: "caller";
33
+ readonly type: "address";
34
+ }, {
35
+ readonly internalType: "uint32";
36
+ readonly name: "delay";
37
+ readonly type: "uint32";
38
+ }];
39
+ readonly name: "AccessManagedRequiredDelay";
40
+ readonly type: "error";
41
+ }, {
42
+ readonly inputs: readonly [{
43
+ readonly internalType: "address";
44
+ readonly name: "caller";
45
+ readonly type: "address";
46
+ }];
47
+ readonly name: "AccessManagedUnauthorized";
48
+ readonly type: "error";
49
+ }, {
50
+ readonly inputs: readonly [{
51
+ readonly internalType: "address";
52
+ readonly name: "token";
53
+ readonly type: "address";
54
+ }];
55
+ readonly name: "SafeERC20FailedOperation";
56
+ readonly type: "error";
57
+ }, {
58
+ readonly inputs: readonly [];
59
+ readonly name: "ZeroAddress";
60
+ readonly type: "error";
61
+ }, {
62
+ readonly anonymous: false;
63
+ readonly inputs: readonly [{
64
+ readonly indexed: false;
65
+ readonly internalType: "address";
66
+ readonly name: "authority";
67
+ readonly type: "address";
68
+ }];
69
+ readonly name: "AuthorityUpdated";
70
+ readonly type: "event";
71
+ }, {
72
+ readonly inputs: readonly [];
73
+ readonly name: "authority";
74
+ readonly outputs: readonly [{
75
+ readonly internalType: "address";
76
+ readonly name: "";
77
+ readonly type: "address";
78
+ }];
79
+ readonly stateMutability: "view";
80
+ readonly type: "function";
81
+ }, {
82
+ readonly inputs: readonly [];
83
+ readonly name: "collateral";
84
+ readonly outputs: readonly [{
85
+ readonly internalType: "address";
86
+ readonly name: "";
87
+ readonly type: "address";
88
+ }];
89
+ readonly stateMutability: "view";
90
+ readonly type: "function";
91
+ }, {
92
+ readonly inputs: readonly [];
93
+ readonly name: "collateralToken";
94
+ readonly outputs: readonly [{
95
+ readonly internalType: "contract IERC20";
96
+ readonly name: "";
97
+ readonly type: "address";
98
+ }];
99
+ readonly stateMutability: "view";
100
+ readonly type: "function";
101
+ }, {
102
+ readonly inputs: readonly [];
103
+ readonly name: "ctf";
104
+ readonly outputs: readonly [{
105
+ readonly internalType: "contract ICTF";
106
+ readonly name: "";
107
+ readonly type: "address";
108
+ }];
109
+ readonly stateMutability: "view";
110
+ readonly type: "function";
111
+ }, {
112
+ readonly inputs: readonly [];
113
+ readonly name: "isConsumingScheduledOp";
114
+ readonly outputs: readonly [{
115
+ readonly internalType: "bytes4";
116
+ readonly name: "";
117
+ readonly type: "bytes4";
118
+ }];
119
+ readonly stateMutability: "view";
120
+ readonly type: "function";
121
+ }, {
122
+ readonly inputs: readonly [{
123
+ readonly internalType: "bytes32";
124
+ readonly name: "conditionId";
125
+ readonly type: "bytes32";
126
+ }, {
127
+ readonly internalType: "uint256";
128
+ readonly name: "amount";
129
+ readonly type: "uint256";
130
+ }, {
131
+ readonly internalType: "address";
132
+ readonly name: "recipient";
133
+ readonly type: "address";
134
+ }];
135
+ readonly name: "mergeBinaryFullSet";
136
+ readonly outputs: readonly [{
137
+ readonly internalType: "uint256";
138
+ readonly name: "collateralOut";
139
+ readonly type: "uint256";
140
+ }];
141
+ readonly stateMutability: "nonpayable";
142
+ readonly type: "function";
143
+ }, {
144
+ readonly inputs: readonly [];
145
+ readonly name: "negRiskAdapter";
146
+ readonly outputs: readonly [{
147
+ readonly internalType: "contract INegRiskAdapter";
148
+ readonly name: "";
149
+ readonly type: "address";
150
+ }];
151
+ readonly stateMutability: "view";
152
+ readonly type: "function";
153
+ }, {
154
+ readonly inputs: readonly [{
155
+ readonly internalType: "address";
156
+ readonly name: "";
157
+ readonly type: "address";
158
+ }, {
159
+ readonly internalType: "address";
160
+ readonly name: "";
161
+ readonly type: "address";
162
+ }, {
163
+ readonly internalType: "uint256[]";
164
+ readonly name: "";
165
+ readonly type: "uint256[]";
166
+ }, {
167
+ readonly internalType: "uint256[]";
168
+ readonly name: "";
169
+ readonly type: "uint256[]";
170
+ }, {
171
+ readonly internalType: "bytes";
172
+ readonly name: "";
173
+ readonly type: "bytes";
174
+ }];
175
+ readonly name: "onERC1155BatchReceived";
176
+ readonly outputs: readonly [{
177
+ readonly internalType: "bytes4";
178
+ readonly name: "";
179
+ readonly type: "bytes4";
180
+ }];
181
+ readonly stateMutability: "nonpayable";
182
+ readonly type: "function";
183
+ }, {
184
+ readonly inputs: readonly [{
185
+ readonly internalType: "address";
186
+ readonly name: "";
187
+ readonly type: "address";
188
+ }, {
189
+ readonly internalType: "address";
190
+ readonly name: "";
191
+ readonly type: "address";
192
+ }, {
193
+ readonly internalType: "uint256";
194
+ readonly name: "";
195
+ readonly type: "uint256";
196
+ }, {
197
+ readonly internalType: "uint256";
198
+ readonly name: "";
199
+ readonly type: "uint256";
200
+ }, {
201
+ readonly internalType: "bytes";
202
+ readonly name: "";
203
+ readonly type: "bytes";
204
+ }];
205
+ readonly name: "onERC1155Received";
206
+ readonly outputs: readonly [{
207
+ readonly internalType: "bytes4";
208
+ readonly name: "";
209
+ readonly type: "bytes4";
210
+ }];
211
+ readonly stateMutability: "nonpayable";
212
+ readonly type: "function";
213
+ }, {
214
+ readonly inputs: readonly [];
215
+ readonly name: "positions";
216
+ readonly outputs: readonly [{
217
+ readonly internalType: "address";
218
+ readonly name: "";
219
+ readonly type: "address";
220
+ }];
221
+ readonly stateMutability: "view";
222
+ readonly type: "function";
223
+ }, {
224
+ readonly inputs: readonly [{
225
+ readonly internalType: "address";
226
+ readonly name: "newAuthority";
227
+ readonly type: "address";
228
+ }];
229
+ readonly name: "setAuthority";
230
+ readonly outputs: readonly [];
231
+ readonly stateMutability: "nonpayable";
232
+ readonly type: "function";
233
+ }, {
234
+ readonly inputs: readonly [{
235
+ readonly internalType: "bytes4";
236
+ readonly name: "interfaceId";
237
+ readonly type: "bytes4";
238
+ }];
239
+ readonly name: "supportsInterface";
240
+ readonly outputs: readonly [{
241
+ readonly internalType: "bool";
242
+ readonly name: "";
243
+ readonly type: "bool";
244
+ }];
245
+ readonly stateMutability: "view";
246
+ readonly type: "function";
247
+ }];
248
+ //# sourceMappingURL=PolymarketNegRiskMergeAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolymarketNegRiskMergeAdapter.d.ts","sourceRoot":"","sources":["../../../src/abi/full/PolymarketNegRiskMergeAdapter.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoUtB,CAAC"}
@@ -0,0 +1,326 @@
1
+ export const POLYMARKETNEGRISKMERGEADAPTER_ABI = [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "internalType": "address",
6
+ "name": "_ctf",
7
+ "type": "address"
8
+ },
9
+ {
10
+ "internalType": "address",
11
+ "name": "_negRiskAdapter",
12
+ "type": "address"
13
+ },
14
+ {
15
+ "internalType": "address",
16
+ "name": "_collateral",
17
+ "type": "address"
18
+ },
19
+ {
20
+ "internalType": "address",
21
+ "name": "_authority",
22
+ "type": "address"
23
+ }
24
+ ],
25
+ "stateMutability": "nonpayable",
26
+ "type": "constructor"
27
+ },
28
+ {
29
+ "inputs": [
30
+ {
31
+ "internalType": "address",
32
+ "name": "authority",
33
+ "type": "address"
34
+ }
35
+ ],
36
+ "name": "AccessManagedInvalidAuthority",
37
+ "type": "error"
38
+ },
39
+ {
40
+ "inputs": [
41
+ {
42
+ "internalType": "address",
43
+ "name": "caller",
44
+ "type": "address"
45
+ },
46
+ {
47
+ "internalType": "uint32",
48
+ "name": "delay",
49
+ "type": "uint32"
50
+ }
51
+ ],
52
+ "name": "AccessManagedRequiredDelay",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "caller",
60
+ "type": "address"
61
+ }
62
+ ],
63
+ "name": "AccessManagedUnauthorized",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [
68
+ {
69
+ "internalType": "address",
70
+ "name": "token",
71
+ "type": "address"
72
+ }
73
+ ],
74
+ "name": "SafeERC20FailedOperation",
75
+ "type": "error"
76
+ },
77
+ {
78
+ "inputs": [],
79
+ "name": "ZeroAddress",
80
+ "type": "error"
81
+ },
82
+ {
83
+ "anonymous": false,
84
+ "inputs": [
85
+ {
86
+ "indexed": false,
87
+ "internalType": "address",
88
+ "name": "authority",
89
+ "type": "address"
90
+ }
91
+ ],
92
+ "name": "AuthorityUpdated",
93
+ "type": "event"
94
+ },
95
+ {
96
+ "inputs": [],
97
+ "name": "authority",
98
+ "outputs": [
99
+ {
100
+ "internalType": "address",
101
+ "name": "",
102
+ "type": "address"
103
+ }
104
+ ],
105
+ "stateMutability": "view",
106
+ "type": "function"
107
+ },
108
+ {
109
+ "inputs": [],
110
+ "name": "collateral",
111
+ "outputs": [
112
+ {
113
+ "internalType": "address",
114
+ "name": "",
115
+ "type": "address"
116
+ }
117
+ ],
118
+ "stateMutability": "view",
119
+ "type": "function"
120
+ },
121
+ {
122
+ "inputs": [],
123
+ "name": "collateralToken",
124
+ "outputs": [
125
+ {
126
+ "internalType": "contract IERC20",
127
+ "name": "",
128
+ "type": "address"
129
+ }
130
+ ],
131
+ "stateMutability": "view",
132
+ "type": "function"
133
+ },
134
+ {
135
+ "inputs": [],
136
+ "name": "ctf",
137
+ "outputs": [
138
+ {
139
+ "internalType": "contract ICTF",
140
+ "name": "",
141
+ "type": "address"
142
+ }
143
+ ],
144
+ "stateMutability": "view",
145
+ "type": "function"
146
+ },
147
+ {
148
+ "inputs": [],
149
+ "name": "isConsumingScheduledOp",
150
+ "outputs": [
151
+ {
152
+ "internalType": "bytes4",
153
+ "name": "",
154
+ "type": "bytes4"
155
+ }
156
+ ],
157
+ "stateMutability": "view",
158
+ "type": "function"
159
+ },
160
+ {
161
+ "inputs": [
162
+ {
163
+ "internalType": "bytes32",
164
+ "name": "conditionId",
165
+ "type": "bytes32"
166
+ },
167
+ {
168
+ "internalType": "uint256",
169
+ "name": "amount",
170
+ "type": "uint256"
171
+ },
172
+ {
173
+ "internalType": "address",
174
+ "name": "recipient",
175
+ "type": "address"
176
+ }
177
+ ],
178
+ "name": "mergeBinaryFullSet",
179
+ "outputs": [
180
+ {
181
+ "internalType": "uint256",
182
+ "name": "collateralOut",
183
+ "type": "uint256"
184
+ }
185
+ ],
186
+ "stateMutability": "nonpayable",
187
+ "type": "function"
188
+ },
189
+ {
190
+ "inputs": [],
191
+ "name": "negRiskAdapter",
192
+ "outputs": [
193
+ {
194
+ "internalType": "contract INegRiskAdapter",
195
+ "name": "",
196
+ "type": "address"
197
+ }
198
+ ],
199
+ "stateMutability": "view",
200
+ "type": "function"
201
+ },
202
+ {
203
+ "inputs": [
204
+ {
205
+ "internalType": "address",
206
+ "name": "",
207
+ "type": "address"
208
+ },
209
+ {
210
+ "internalType": "address",
211
+ "name": "",
212
+ "type": "address"
213
+ },
214
+ {
215
+ "internalType": "uint256[]",
216
+ "name": "",
217
+ "type": "uint256[]"
218
+ },
219
+ {
220
+ "internalType": "uint256[]",
221
+ "name": "",
222
+ "type": "uint256[]"
223
+ },
224
+ {
225
+ "internalType": "bytes",
226
+ "name": "",
227
+ "type": "bytes"
228
+ }
229
+ ],
230
+ "name": "onERC1155BatchReceived",
231
+ "outputs": [
232
+ {
233
+ "internalType": "bytes4",
234
+ "name": "",
235
+ "type": "bytes4"
236
+ }
237
+ ],
238
+ "stateMutability": "nonpayable",
239
+ "type": "function"
240
+ },
241
+ {
242
+ "inputs": [
243
+ {
244
+ "internalType": "address",
245
+ "name": "",
246
+ "type": "address"
247
+ },
248
+ {
249
+ "internalType": "address",
250
+ "name": "",
251
+ "type": "address"
252
+ },
253
+ {
254
+ "internalType": "uint256",
255
+ "name": "",
256
+ "type": "uint256"
257
+ },
258
+ {
259
+ "internalType": "uint256",
260
+ "name": "",
261
+ "type": "uint256"
262
+ },
263
+ {
264
+ "internalType": "bytes",
265
+ "name": "",
266
+ "type": "bytes"
267
+ }
268
+ ],
269
+ "name": "onERC1155Received",
270
+ "outputs": [
271
+ {
272
+ "internalType": "bytes4",
273
+ "name": "",
274
+ "type": "bytes4"
275
+ }
276
+ ],
277
+ "stateMutability": "nonpayable",
278
+ "type": "function"
279
+ },
280
+ {
281
+ "inputs": [],
282
+ "name": "positions",
283
+ "outputs": [
284
+ {
285
+ "internalType": "address",
286
+ "name": "",
287
+ "type": "address"
288
+ }
289
+ ],
290
+ "stateMutability": "view",
291
+ "type": "function"
292
+ },
293
+ {
294
+ "inputs": [
295
+ {
296
+ "internalType": "address",
297
+ "name": "newAuthority",
298
+ "type": "address"
299
+ }
300
+ ],
301
+ "name": "setAuthority",
302
+ "outputs": [],
303
+ "stateMutability": "nonpayable",
304
+ "type": "function"
305
+ },
306
+ {
307
+ "inputs": [
308
+ {
309
+ "internalType": "bytes4",
310
+ "name": "interfaceId",
311
+ "type": "bytes4"
312
+ }
313
+ ],
314
+ "name": "supportsInterface",
315
+ "outputs": [
316
+ {
317
+ "internalType": "bool",
318
+ "name": "",
319
+ "type": "bool"
320
+ }
321
+ ],
322
+ "stateMutability": "view",
323
+ "type": "function"
324
+ }
325
+ ];
326
+ //# sourceMappingURL=PolymarketNegRiskMergeAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolymarketNegRiskMergeAdapter.js","sourceRoot":"","sources":["../../../src/abi/full/PolymarketNegRiskMergeAdapter.ts"],"names":[],"mappings":"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"}