@varla/sdk 1.10.5 → 1.10.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -0
- package/dist/actions/oracle.d.ts +17 -0
- package/dist/actions/oracle.d.ts.map +1 -1
- package/dist/actions/oracle.js +35 -0
- package/dist/actions/rbac.d.ts +11 -0
- package/dist/actions/rbac.d.ts.map +1 -1
- package/dist/actions/rbac.js +14 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -209,6 +209,93 @@ import { formatUnitsSafe } from "@varla/sdk/format";
|
|
|
209
209
|
const ids = await views.readOracleRegistry({ oracle: c.oracle, client });
|
|
210
210
|
```
|
|
211
211
|
|
|
212
|
+
### Write actions (simulate-first)
|
|
213
|
+
|
|
214
|
+
The SDK intentionally uses a **simulate-first** pattern:
|
|
215
|
+
|
|
216
|
+
1. build a transaction request via `publicClient.simulateContract`
|
|
217
|
+
2. submit it via `walletClient.writeContract`
|
|
218
|
+
|
|
219
|
+
```ts
|
|
220
|
+
import * as actions from "@varla/sdk/actions";
|
|
221
|
+
|
|
222
|
+
const sim = await actions.prepareCoreBorrow({
|
|
223
|
+
publicClient,
|
|
224
|
+
coreAddress: c.core.address,
|
|
225
|
+
account: wallet.account.address,
|
|
226
|
+
amount: 1_000_000n,
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
const hash = await actions.sendTx({ walletClient, request: sim.request });
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Oracle seeding (plan → prepare → execute)
|
|
233
|
+
|
|
234
|
+
The SDK provides **idempotent seeding planners** for VarlaOracle configuration.
|
|
235
|
+
This is useful for both backends and UIs:
|
|
236
|
+
|
|
237
|
+
- `planOracleSeed(...)` produces a “diff plan” (what still needs to be configured)
|
|
238
|
+
- `prepareOracleSeedPlan(...)` converts the plan into `simulateContract` requests
|
|
239
|
+
- `executeOracleSeedPlan(...)` submits the prepared requests sequentially (no retries/polling)
|
|
240
|
+
|
|
241
|
+
#### Node convenience: seed from JSON files
|
|
242
|
+
|
|
243
|
+
The JSON shapes mirror `scripts/examples/*.json`:
|
|
244
|
+
|
|
245
|
+
```ts
|
|
246
|
+
import * as actions from "@varla/sdk/actions";
|
|
247
|
+
|
|
248
|
+
const seeded = await actions.seedOracleFromJsonFiles({
|
|
249
|
+
oracle: c.oracle,
|
|
250
|
+
marketsPath: "./markets.polygon.json",
|
|
251
|
+
oppositesPath: "./opposites.polygon.json",
|
|
252
|
+
negRiskPath: "./negrisk.polygon.json",
|
|
253
|
+
prepare: {
|
|
254
|
+
publicClient,
|
|
255
|
+
oracleAddress: c.oracle.address,
|
|
256
|
+
account: wallet.account.address,
|
|
257
|
+
},
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
// Inspect the plan before sending txs.
|
|
261
|
+
console.log(seeded.plan);
|
|
262
|
+
|
|
263
|
+
if ("prepared" in seeded) {
|
|
264
|
+
const hashes = await actions.executeOracleSeedPlan({
|
|
265
|
+
walletClient,
|
|
266
|
+
prepared: seeded.prepared,
|
|
267
|
+
});
|
|
268
|
+
console.log(hashes);
|
|
269
|
+
}
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
#### Browser/backend: seed from already-parsed JSON
|
|
273
|
+
|
|
274
|
+
```ts
|
|
275
|
+
const seeded = await actions.seedOracleFromJson({
|
|
276
|
+
oracle: c.oracle,
|
|
277
|
+
marketsJson,
|
|
278
|
+
oppositesJson,
|
|
279
|
+
negRiskJson,
|
|
280
|
+
});
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### RBAC preflight (AccessManager)
|
|
284
|
+
|
|
285
|
+
The protocol uses an `AccessManager` for RBAC.
|
|
286
|
+
|
|
287
|
+
```ts
|
|
288
|
+
import * as actions from "@varla/sdk/actions";
|
|
289
|
+
|
|
290
|
+
const selector = actions.selectorFromSignature(actions.ORACLE_SIGS.configurePositionsBatch);
|
|
291
|
+
await actions.assertCanCallImmediate({
|
|
292
|
+
accessManager: c.accessManager,
|
|
293
|
+
caller: wallet.account.address,
|
|
294
|
+
target: c.oracle.address,
|
|
295
|
+
selector,
|
|
296
|
+
});
|
|
297
|
+
```
|
|
298
|
+
|
|
212
299
|
#### Optional deployments
|
|
213
300
|
|
|
214
301
|
Some deployments are chain-specific (e.g. adapters). These are exposed as optional properties:
|
package/dist/actions/oracle.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Address, PublicClient } from "viem";
|
|
2
|
+
import type { Hash, WalletClient } from "viem";
|
|
2
3
|
export type SimulatedTx = Awaited<ReturnType<PublicClient["simulateContract"]>>;
|
|
3
4
|
export type MarketConfigItem = {
|
|
4
5
|
positionId: bigint;
|
|
@@ -148,4 +149,20 @@ export declare function prepareOracleSeedPlan(params: {
|
|
|
148
149
|
account: Address;
|
|
149
150
|
plan: OracleSeedPlan;
|
|
150
151
|
}): Promise<OracleSeedExecResult>;
|
|
152
|
+
/**
|
|
153
|
+
* Execute a prepared oracle seed plan by sending the simulated requests in a safe order.
|
|
154
|
+
*
|
|
155
|
+
* This is intentionally minimal:
|
|
156
|
+
* - sequential
|
|
157
|
+
* - no retries
|
|
158
|
+
* - no receipt waiting/polling
|
|
159
|
+
*/
|
|
160
|
+
export declare function executeOracleSeedPlan(params: {
|
|
161
|
+
walletClient: Pick<WalletClient, "writeContract">;
|
|
162
|
+
prepared: OracleSeedExecResult;
|
|
163
|
+
}): Promise<{
|
|
164
|
+
configurePositions?: Hash;
|
|
165
|
+
configureOpposites: Hash[];
|
|
166
|
+
configureNegRisk: Hash[];
|
|
167
|
+
}>;
|
|
151
168
|
//# sourceMappingURL=oracle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../src/actions/oracle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../src/actions/oracle.ts"],"names":[],"mappings":"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"}
|
package/dist/actions/oracle.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Note: explicit .js extension is required for Node ESM resolution.
|
|
2
2
|
import { abis } from "../generated.js";
|
|
3
|
+
import { sendTx } from "./tx.js";
|
|
3
4
|
export async function prepareOracleConfigurePositionsBatch(params) {
|
|
4
5
|
const positionIds = params.items.map((x) => x.positionId);
|
|
5
6
|
const riskTiers = params.items.map((x) => x.riskTier);
|
|
@@ -223,3 +224,37 @@ export async function prepareOracleSeedPlan(params) {
|
|
|
223
224
|
},
|
|
224
225
|
};
|
|
225
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* Execute a prepared oracle seed plan by sending the simulated requests in a safe order.
|
|
229
|
+
*
|
|
230
|
+
* This is intentionally minimal:
|
|
231
|
+
* - sequential
|
|
232
|
+
* - no retries
|
|
233
|
+
* - no receipt waiting/polling
|
|
234
|
+
*/
|
|
235
|
+
export async function executeOracleSeedPlan(params) {
|
|
236
|
+
const out = {
|
|
237
|
+
configureOpposites: [],
|
|
238
|
+
configureNegRisk: [],
|
|
239
|
+
};
|
|
240
|
+
const sims = params.prepared.simulations;
|
|
241
|
+
if (sims.configurePositions) {
|
|
242
|
+
out.configurePositions = await sendTx({
|
|
243
|
+
walletClient: params.walletClient,
|
|
244
|
+
request: sims.configurePositions.request,
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
for (const sim of sims.configureOpposites) {
|
|
248
|
+
out.configureOpposites.push(await sendTx({
|
|
249
|
+
walletClient: params.walletClient,
|
|
250
|
+
request: sim.request,
|
|
251
|
+
}));
|
|
252
|
+
}
|
|
253
|
+
for (const sim of sims.configureNegRisk) {
|
|
254
|
+
out.configureNegRisk.push(await sendTx({
|
|
255
|
+
walletClient: params.walletClient,
|
|
256
|
+
request: sim.request,
|
|
257
|
+
}));
|
|
258
|
+
}
|
|
259
|
+
return out;
|
|
260
|
+
}
|
package/dist/actions/rbac.d.ts
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
import type { Address, Hex } from "viem";
|
|
2
|
+
/**
|
|
3
|
+
* ABI signatures for commonly preflighted RBAC targets.
|
|
4
|
+
*
|
|
5
|
+
* Use with `selectorFromSignature(sig)`.
|
|
6
|
+
*/
|
|
7
|
+
export declare const ORACLE_SIGS: {
|
|
8
|
+
readonly configurePositionsBatch: "configurePositionsBatch(uint256[],uint8[],bytes32[],uint256[])";
|
|
9
|
+
readonly configureOppositePositions: "configureOppositePositions(uint256,uint256)";
|
|
10
|
+
readonly configureNegRiskPositionsBatch: "configureNegRiskPositionsBatch(uint256[],bytes32)";
|
|
11
|
+
readonly updatePrices: "updatePrices(uint256[],uint256[],uint256[],uint256[])";
|
|
12
|
+
};
|
|
2
13
|
/**
|
|
3
14
|
* Minimal AccessManager interface needed for RBAC preflight.
|
|
4
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../src/actions/rbac.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../src/actions/rbac.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAMzC;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;;CAMd,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACvE,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,wBAAsB,WAAW,CAAC,MAAM,EAAE;IACxC,aAAa,EAAE,wBAAwB,CAAC;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC;CACf,GAAG,OAAO,CAAC,aAAa,CAAC,CAezB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,aAAa,EAAE,wBAAwB,CAAC;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC;CACf,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhB"}
|
package/dist/actions/rbac.js
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
// Note: explicit .js extension is required for Node ESM resolution.
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Common signatures (DevEx)
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
/**
|
|
6
|
+
* ABI signatures for commonly preflighted RBAC targets.
|
|
7
|
+
*
|
|
8
|
+
* Use with `selectorFromSignature(sig)`.
|
|
9
|
+
*/
|
|
10
|
+
export const ORACLE_SIGS = {
|
|
11
|
+
configurePositionsBatch: "configurePositionsBatch(uint256[],uint8[],bytes32[],uint256[])",
|
|
12
|
+
configureOppositePositions: "configureOppositePositions(uint256,uint256)",
|
|
13
|
+
configureNegRiskPositionsBatch: "configureNegRiskPositionsBatch(uint256[],bytes32)",
|
|
14
|
+
updatePrices: "updatePrices(uint256[],uint256[],uint256[],uint256[])",
|
|
15
|
+
};
|
|
2
16
|
// wraps: AccessManager.canCall
|
|
3
17
|
export async function readCanCall(params) {
|
|
4
18
|
const raw = await params.accessManager.read.canCall([
|