@aura-protocol/cli 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.
- package/README.md +307 -0
- package/bin/aura.js +8 -0
- package/dist/commands/confidential.d.ts +2 -0
- package/dist/commands/confidential.js +564 -0
- package/dist/commands/confidential.js.map +1 -0
- package/dist/commands/config.d.ts +2 -0
- package/dist/commands/config.js +123 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/dashboard.d.ts +2 -0
- package/dist/commands/dashboard.js +29 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/dwallet.d.ts +2 -0
- package/dist/commands/dwallet.js +131 -0
- package/dist/commands/dwallet.js.map +1 -0
- package/dist/commands/execution.d.ts +2 -0
- package/dist/commands/execution.js +261 -0
- package/dist/commands/execution.js.map +1 -0
- package/dist/commands/governance.d.ts +2 -0
- package/dist/commands/governance.js +169 -0
- package/dist/commands/governance.js.map +1 -0
- package/dist/commands/helpers.d.ts +79 -0
- package/dist/commands/helpers.js +219 -0
- package/dist/commands/helpers.js.map +1 -0
- package/dist/commands/treasury.d.ts +2 -0
- package/dist/commands/treasury.js +319 -0
- package/dist/commands/treasury.js.map +1 -0
- package/dist/config.d.ts +35 -0
- package/dist/config.js +96 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +37 -0
- package/dist/context.js +57 -0
- package/dist/context.js.map +1 -0
- package/dist/dashboard.d.ts +7 -0
- package/dist/dashboard.js +95 -0
- package/dist/dashboard.js.map +1 -0
- package/dist/domain.d.ts +16 -0
- package/dist/domain.js +86 -0
- package/dist/domain.js.map +1 -0
- package/dist/format.d.ts +9 -0
- package/dist/format.js +92 -0
- package/dist/format.js.map +1 -0
- package/dist/ika.d.ts +76 -0
- package/dist/ika.js +178 -0
- package/dist/ika.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/output.d.ts +32 -0
- package/dist/output.js +134 -0
- package/dist/output.js.map +1 -0
- package/dist/protocol.d.ts +99 -0
- package/dist/protocol.js +353 -0
- package/dist/protocol.js.map +1 -0
- package/dist/sdk.d.ts +6 -0
- package/dist/sdk.js +6 -0
- package/dist/sdk.js.map +1 -0
- package/dist/treasury-view.d.ts +11 -0
- package/dist/treasury-view.js +103 -0
- package/dist/treasury-view.js.map +1 -0
- package/dist/vendor/encrypt/generated/grpc/encrypt_service.d.ts +195 -0
- package/dist/vendor/encrypt/generated/grpc/encrypt_service.js +514 -0
- package/dist/vendor/encrypt/generated/grpc/encrypt_service.js.map +1 -0
- package/dist/vendor/encrypt/grpc.d.ts +70 -0
- package/dist/vendor/encrypt/grpc.js +108 -0
- package/dist/vendor/encrypt/grpc.js.map +1 -0
- package/dist/vendor/ika/bcs-types.d.ts +1045 -0
- package/dist/vendor/ika/bcs-types.js +185 -0
- package/dist/vendor/ika/bcs-types.js.map +1 -0
- package/dist/vendor/ika/generated/grpc/ika_dwallet.d.ts +141 -0
- package/dist/vendor/ika/generated/grpc/ika_dwallet.js +531 -0
- package/dist/vendor/ika/generated/grpc/ika_dwallet.js.map +1 -0
- package/dist/vendor/ika/grpc.d.ts +16 -0
- package/dist/vendor/ika/grpc.js +129 -0
- package/dist/vendor/ika/grpc.js.map +1 -0
- package/dist/wallet.d.ts +2 -0
- package/dist/wallet.js +21 -0
- package/dist/wallet.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import { PublicKey } from "@solana/web3.js";
|
|
2
|
+
import {} from "commander";
|
|
3
|
+
import { buildCliContext } from "../context.js";
|
|
4
|
+
import { formatPubkey } from "../format.js";
|
|
5
|
+
import { createTable, emitJson, printBanner, printSuccess, serializeInstruction, startSpinner, } from "../output.js";
|
|
6
|
+
import { validateAgentId } from "../sdk.js";
|
|
7
|
+
import { renderTreasurySections } from "../treasury-view.js";
|
|
8
|
+
import { buildCreateTreasuryArgs, buildProposeTransactionArgs, confirmOrSkip, promptChain, promptNumber, promptString, promptTransactionType, resolveTreasuryAccount, } from "./helpers.js";
|
|
9
|
+
const TREASURY_OWNER_OFFSET = 9;
|
|
10
|
+
async function renderTreasuryView(command, treasury, account) {
|
|
11
|
+
const ctx = buildCliContext(command);
|
|
12
|
+
if (ctx.output.json) {
|
|
13
|
+
emitJson(ctx.output, { treasury, account });
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const sections = renderTreasurySections(treasury, account);
|
|
17
|
+
printBanner(ctx.output, `Treasury: ${account.agentId}`);
|
|
18
|
+
console.log(sections.overview);
|
|
19
|
+
console.log("");
|
|
20
|
+
console.log(sections.policy);
|
|
21
|
+
if (sections.confidential) {
|
|
22
|
+
console.log("");
|
|
23
|
+
console.log(sections.confidential);
|
|
24
|
+
}
|
|
25
|
+
if (sections.dwallets) {
|
|
26
|
+
console.log("");
|
|
27
|
+
console.log(sections.dwallets);
|
|
28
|
+
}
|
|
29
|
+
if (sections.pending) {
|
|
30
|
+
console.log("");
|
|
31
|
+
console.log(sections.pending);
|
|
32
|
+
}
|
|
33
|
+
if (sections.governance) {
|
|
34
|
+
console.log("");
|
|
35
|
+
console.log(sections.governance);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export function registerTreasuryCommands(program) {
|
|
39
|
+
const treasury = program.command("treasury").description("Manage AURA treasuries");
|
|
40
|
+
treasury
|
|
41
|
+
.command("create")
|
|
42
|
+
.description("Create a new agent treasury")
|
|
43
|
+
.option("--agent-id <id>", "agent identifier")
|
|
44
|
+
.option("--daily-limit <usd>", "daily spending limit in USD", Number)
|
|
45
|
+
.option("--per-tx-limit <usd>", "per-transaction limit in USD", Number)
|
|
46
|
+
.option("--daytime-hourly-limit <usd>", "daytime hourly limit in USD", Number)
|
|
47
|
+
.option("--nighttime-hourly-limit <usd>", "nighttime hourly limit in USD", Number)
|
|
48
|
+
.option("--velocity-limit <usd>", "velocity limit in USD", Number)
|
|
49
|
+
.option("--max-slippage-bps <bps>", "max slippage in basis points", Number)
|
|
50
|
+
.option("--max-quote-age <secs>", "max quote age in seconds", Number)
|
|
51
|
+
.option("--ttl <secs>", "pending transaction TTL in seconds", Number)
|
|
52
|
+
.option("--ai-authority <pubkey>", "AI authority pubkey")
|
|
53
|
+
.action(async function treasuryCreate() {
|
|
54
|
+
const ctx = buildCliContext(this);
|
|
55
|
+
if (!ctx.wallet) {
|
|
56
|
+
throw new Error("A wallet is required to create a treasury.");
|
|
57
|
+
}
|
|
58
|
+
const options = this.opts();
|
|
59
|
+
const agentId = await promptString(typeof options["agentId"] === "string" ? options["agentId"] : ctx.config.defaultAgentId ?? undefined, "Agent ID", { validate: validateAgentId });
|
|
60
|
+
const dailyLimitUsd = await promptNumber(typeof options["dailyLimit"] === "number" ? options["dailyLimit"] : undefined, "Daily limit (USD)", { validate: (value) => value > 0 || (() => { throw new Error("Daily limit must be > 0"); })() });
|
|
61
|
+
const perTxLimitUsd = await promptNumber(typeof options["perTxLimit"] === "number" ? options["perTxLimit"] : undefined, "Per-transaction limit (USD)", { validate: (value) => value > 0 || (() => { throw new Error("Per-tx limit must be > 0"); })() });
|
|
62
|
+
const args = buildCreateTreasuryArgs({
|
|
63
|
+
agentId,
|
|
64
|
+
aiAuthority: typeof options["aiAuthority"] === "string"
|
|
65
|
+
? new PublicKey(options["aiAuthority"])
|
|
66
|
+
: ctx.wallet.publicKey,
|
|
67
|
+
dailyLimitUsd,
|
|
68
|
+
perTxLimitUsd,
|
|
69
|
+
daytimeHourlyLimitUsd: typeof options["daytimeHourlyLimit"] === "number"
|
|
70
|
+
? options["daytimeHourlyLimit"]
|
|
71
|
+
: undefined,
|
|
72
|
+
nighttimeHourlyLimitUsd: typeof options["nighttimeHourlyLimit"] === "number"
|
|
73
|
+
? options["nighttimeHourlyLimit"]
|
|
74
|
+
: undefined,
|
|
75
|
+
velocityLimitUsd: typeof options["velocityLimit"] === "number" ? options["velocityLimit"] : undefined,
|
|
76
|
+
maxSlippageBps: typeof options["maxSlippageBps"] === "number" ? options["maxSlippageBps"] : undefined,
|
|
77
|
+
maxQuoteAgeSecs: typeof options["maxQuoteAge"] === "number" ? options["maxQuoteAge"] : undefined,
|
|
78
|
+
pendingTransactionTtlSecs: typeof options["ttl"] === "number" ? options["ttl"] : undefined,
|
|
79
|
+
});
|
|
80
|
+
if (ctx.dryRun) {
|
|
81
|
+
const dryRun = await ctx.client.createTreasuryInstruction({
|
|
82
|
+
owner: ctx.wallet.publicKey,
|
|
83
|
+
args,
|
|
84
|
+
});
|
|
85
|
+
emitJson(ctx.output, {
|
|
86
|
+
action: "treasury.create",
|
|
87
|
+
treasury: dryRun.treasury,
|
|
88
|
+
args,
|
|
89
|
+
instruction: serializeInstruction(dryRun.instruction),
|
|
90
|
+
});
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const spinner = startSpinner(ctx.output, "Creating treasury on devnet...");
|
|
94
|
+
const result = await ctx.client.createTreasury(ctx.wallet, args);
|
|
95
|
+
spinner.succeed("Treasury created");
|
|
96
|
+
if (ctx.output.json) {
|
|
97
|
+
emitJson(ctx.output, result);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
printSuccess(ctx.output, `Treasury created: ${result.treasury.toBase58()}`);
|
|
101
|
+
});
|
|
102
|
+
treasury
|
|
103
|
+
.command("show")
|
|
104
|
+
.description("Show treasury state")
|
|
105
|
+
.option("--agent-id <id>", "look up by agent ID")
|
|
106
|
+
.option("--treasury <pda>", "treasury PDA")
|
|
107
|
+
.option("--watch", "refresh every 5 seconds")
|
|
108
|
+
.option("--interval <secs>", "watch refresh interval in seconds", Number)
|
|
109
|
+
.action(async function treasuryShow() {
|
|
110
|
+
const ctx = buildCliContext(this);
|
|
111
|
+
const options = this.opts();
|
|
112
|
+
const intervalMs = typeof options["interval"] === "number" && options["interval"] > 0
|
|
113
|
+
? Math.floor(options["interval"] * 1000)
|
|
114
|
+
: 5000;
|
|
115
|
+
const renderOnce = async () => {
|
|
116
|
+
const { treasury, account } = await resolveTreasuryAccount(ctx, {
|
|
117
|
+
agentId: typeof options["agentId"] === "string" ? options["agentId"] : undefined,
|
|
118
|
+
treasury: typeof options["treasury"] === "string" ? options["treasury"] : undefined,
|
|
119
|
+
});
|
|
120
|
+
if (!ctx.output.json && options["watch"] === true) {
|
|
121
|
+
console.clear();
|
|
122
|
+
}
|
|
123
|
+
await renderTreasuryView(this, treasury, account);
|
|
124
|
+
};
|
|
125
|
+
if (options["watch"] === true) {
|
|
126
|
+
while (true) {
|
|
127
|
+
await renderOnce();
|
|
128
|
+
await new Promise((resolve) => setTimeout(resolve, intervalMs));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
await renderOnce();
|
|
132
|
+
});
|
|
133
|
+
treasury
|
|
134
|
+
.command("list")
|
|
135
|
+
.description("List treasuries owned by the configured wallet")
|
|
136
|
+
.action(async function treasuryList() {
|
|
137
|
+
const ctx = buildCliContext(this);
|
|
138
|
+
if (!ctx.wallet) {
|
|
139
|
+
throw new Error("A wallet is required to list treasuries.");
|
|
140
|
+
}
|
|
141
|
+
const accounts = await ctx.client.program.account.treasuryAccount.all([
|
|
142
|
+
{
|
|
143
|
+
memcmp: {
|
|
144
|
+
offset: TREASURY_OWNER_OFFSET,
|
|
145
|
+
bytes: ctx.wallet.publicKey.toBase58(),
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
]);
|
|
149
|
+
if (ctx.output.json) {
|
|
150
|
+
emitJson(ctx.output, accounts.map((entry) => ({
|
|
151
|
+
treasury: entry.publicKey,
|
|
152
|
+
account: entry.account,
|
|
153
|
+
})));
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
printBanner(ctx.output, `Treasuries (${accounts.length})`);
|
|
157
|
+
const table = createTable(["Agent ID", "PDA", "Status", "Total Tx"]);
|
|
158
|
+
for (const entry of accounts) {
|
|
159
|
+
table.push([
|
|
160
|
+
entry.account.agentId,
|
|
161
|
+
formatPubkey(entry.publicKey),
|
|
162
|
+
entry.account.executionPaused ? "Paused" : "Active",
|
|
163
|
+
String(entry.account.totalTransactions),
|
|
164
|
+
]);
|
|
165
|
+
}
|
|
166
|
+
console.log(table.toString());
|
|
167
|
+
});
|
|
168
|
+
treasury
|
|
169
|
+
.command("propose")
|
|
170
|
+
.description("Propose a public transaction")
|
|
171
|
+
.option("--agent-id <id>", "treasury agent ID")
|
|
172
|
+
.option("--treasury <pda>", "treasury PDA")
|
|
173
|
+
.option("--amount <usd>", "amount in USD", Number)
|
|
174
|
+
.option("--chain <name|number>", "target chain")
|
|
175
|
+
.option("--recipient <address>", "recipient address or contract")
|
|
176
|
+
.option("--tx-type <type>", "transaction type")
|
|
177
|
+
.option("--protocol-id <id>", "protocol ID", Number)
|
|
178
|
+
.option("--expected-output <usd>", "expected output in USD", Number)
|
|
179
|
+
.option("--actual-output <usd>", "actual output in USD", Number)
|
|
180
|
+
.option("--quote-age <secs>", "quote age in seconds", Number)
|
|
181
|
+
.option("--counterparty-risk <score>", "counterparty risk score", Number)
|
|
182
|
+
.action(async function treasuryPropose() {
|
|
183
|
+
const ctx = buildCliContext(this);
|
|
184
|
+
if (!ctx.wallet) {
|
|
185
|
+
throw new Error("A wallet is required to propose a transaction.");
|
|
186
|
+
}
|
|
187
|
+
const options = this.opts();
|
|
188
|
+
const treasuryState = await resolveTreasuryAccount(ctx, {
|
|
189
|
+
agentId: typeof options["agentId"] === "string" ? options["agentId"] : undefined,
|
|
190
|
+
treasury: typeof options["treasury"] === "string" ? options["treasury"] : undefined,
|
|
191
|
+
});
|
|
192
|
+
const amountUsd = await promptNumber(typeof options["amount"] === "number" ? options["amount"] : undefined, "Amount (USD)", { validate: (value) => value > 0 || (() => { throw new Error("Amount must be > 0"); })() });
|
|
193
|
+
const chain = await promptChain(typeof options["chain"] === "string" || typeof options["chain"] === "number"
|
|
194
|
+
? options["chain"]
|
|
195
|
+
: undefined, "Chain");
|
|
196
|
+
const recipient = await promptString(typeof options["recipient"] === "string" ? options["recipient"] : undefined, "Recipient");
|
|
197
|
+
const txType = await promptTransactionType(typeof options["txType"] === "string" || typeof options["txType"] === "number"
|
|
198
|
+
? options["txType"]
|
|
199
|
+
: undefined, "Transaction type");
|
|
200
|
+
const args = buildProposeTransactionArgs({
|
|
201
|
+
amountUsd,
|
|
202
|
+
chain,
|
|
203
|
+
txType,
|
|
204
|
+
recipient,
|
|
205
|
+
protocolId: typeof options["protocolId"] === "number" ? options["protocolId"] : undefined,
|
|
206
|
+
expectedOutputUsd: typeof options["expectedOutput"] === "number" ? options["expectedOutput"] : undefined,
|
|
207
|
+
actualOutputUsd: typeof options["actualOutput"] === "number" ? options["actualOutput"] : undefined,
|
|
208
|
+
quoteAgeSecs: typeof options["quoteAge"] === "number" ? options["quoteAge"] : undefined,
|
|
209
|
+
counterpartyRiskScore: typeof options["counterpartyRisk"] === "number"
|
|
210
|
+
? options["counterpartyRisk"]
|
|
211
|
+
: undefined,
|
|
212
|
+
});
|
|
213
|
+
if (ctx.dryRun) {
|
|
214
|
+
const instruction = await ctx.client.proposeTransactionInstruction({ aiAuthority: ctx.wallet.publicKey, treasury: treasuryState.treasury }, args);
|
|
215
|
+
emitJson(ctx.output, {
|
|
216
|
+
action: "treasury.propose",
|
|
217
|
+
treasury: treasuryState.treasury,
|
|
218
|
+
args,
|
|
219
|
+
instruction: serializeInstruction(instruction),
|
|
220
|
+
});
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
const spinner = startSpinner(ctx.output, "Submitting proposal...");
|
|
224
|
+
const signature = await ctx.client.proposeTransaction(ctx.wallet, { aiAuthority: ctx.wallet.publicKey, treasury: treasuryState.treasury }, args);
|
|
225
|
+
spinner.succeed("Proposal submitted");
|
|
226
|
+
if (ctx.output.json) {
|
|
227
|
+
emitJson(ctx.output, {
|
|
228
|
+
treasury: treasuryState.treasury,
|
|
229
|
+
signature,
|
|
230
|
+
});
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
printSuccess(ctx.output, `Proposal submitted: ${signature}`);
|
|
234
|
+
});
|
|
235
|
+
treasury
|
|
236
|
+
.command("cancel")
|
|
237
|
+
.description("Cancel the current pending transaction")
|
|
238
|
+
.option("--agent-id <id>", "treasury agent ID")
|
|
239
|
+
.option("--treasury <pda>", "treasury PDA")
|
|
240
|
+
.option("--yes", "skip confirmation")
|
|
241
|
+
.action(async function treasuryCancel() {
|
|
242
|
+
const ctx = buildCliContext(this);
|
|
243
|
+
if (!ctx.wallet) {
|
|
244
|
+
throw new Error("A wallet is required to cancel a pending transaction.");
|
|
245
|
+
}
|
|
246
|
+
const options = this.opts();
|
|
247
|
+
const treasuryState = await resolveTreasuryAccount(ctx, {
|
|
248
|
+
agentId: typeof options["agentId"] === "string" ? options["agentId"] : undefined,
|
|
249
|
+
treasury: typeof options["treasury"] === "string" ? options["treasury"] : undefined,
|
|
250
|
+
});
|
|
251
|
+
if (!treasuryState.account.pending) {
|
|
252
|
+
throw new Error("This treasury has no pending transaction to cancel.");
|
|
253
|
+
}
|
|
254
|
+
const confirmed = await confirmOrSkip(options["yes"] === true, "Cancel the current pending transaction?");
|
|
255
|
+
if (!confirmed) {
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
const now = Math.floor(Date.now() / 1000);
|
|
259
|
+
if (ctx.dryRun) {
|
|
260
|
+
const instruction = await ctx.client.cancelPendingInstruction({ owner: ctx.wallet.publicKey, treasury: treasuryState.treasury }, now);
|
|
261
|
+
emitJson(ctx.output, {
|
|
262
|
+
action: "treasury.cancel",
|
|
263
|
+
treasury: treasuryState.treasury,
|
|
264
|
+
instruction: serializeInstruction(instruction),
|
|
265
|
+
});
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
const spinner = startSpinner(ctx.output, "Cancelling pending transaction...");
|
|
269
|
+
const signature = await ctx.client.cancelPending(ctx.wallet, { owner: ctx.wallet.publicKey, treasury: treasuryState.treasury }, now);
|
|
270
|
+
spinner.succeed("Pending transaction cancelled");
|
|
271
|
+
if (ctx.output.json) {
|
|
272
|
+
emitJson(ctx.output, { treasury: treasuryState.treasury, signature });
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
printSuccess(ctx.output, `Pending transaction cancelled: ${signature}`);
|
|
276
|
+
});
|
|
277
|
+
treasury
|
|
278
|
+
.command("pause")
|
|
279
|
+
.description("Pause or unpause treasury execution")
|
|
280
|
+
.option("--agent-id <id>", "treasury agent ID")
|
|
281
|
+
.option("--treasury <pda>", "treasury PDA")
|
|
282
|
+
.option("--unpause", "unpause instead of pause")
|
|
283
|
+
.option("--yes", "skip confirmation")
|
|
284
|
+
.action(async function treasuryPause() {
|
|
285
|
+
const ctx = buildCliContext(this);
|
|
286
|
+
if (!ctx.wallet) {
|
|
287
|
+
throw new Error("A wallet is required to pause or unpause a treasury.");
|
|
288
|
+
}
|
|
289
|
+
const options = this.opts();
|
|
290
|
+
const treasuryState = await resolveTreasuryAccount(ctx, {
|
|
291
|
+
agentId: typeof options["agentId"] === "string" ? options["agentId"] : undefined,
|
|
292
|
+
treasury: typeof options["treasury"] === "string" ? options["treasury"] : undefined,
|
|
293
|
+
});
|
|
294
|
+
const paused = options["unpause"] !== true;
|
|
295
|
+
const confirmed = await confirmOrSkip(options["yes"] === true, paused ? "Pause this treasury?" : "Unpause this treasury?");
|
|
296
|
+
if (!confirmed) {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
const now = Math.floor(Date.now() / 1000);
|
|
300
|
+
if (ctx.dryRun) {
|
|
301
|
+
const instruction = await ctx.client.pauseExecutionInstruction({ owner: ctx.wallet.publicKey, treasury: treasuryState.treasury }, paused, now);
|
|
302
|
+
emitJson(ctx.output, {
|
|
303
|
+
action: paused ? "treasury.pause" : "treasury.unpause",
|
|
304
|
+
treasury: treasuryState.treasury,
|
|
305
|
+
instruction: serializeInstruction(instruction),
|
|
306
|
+
});
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
const spinner = startSpinner(ctx.output, paused ? "Pausing treasury..." : "Unpausing treasury...");
|
|
310
|
+
const signature = await ctx.client.pauseExecution(ctx.wallet, { owner: ctx.wallet.publicKey, treasury: treasuryState.treasury }, paused, now);
|
|
311
|
+
spinner.succeed(paused ? "Treasury paused" : "Treasury unpaused");
|
|
312
|
+
if (ctx.output.json) {
|
|
313
|
+
emitJson(ctx.output, { treasury: treasuryState.treasury, paused, signature });
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
printSuccess(ctx.output, `${paused ? "Treasury paused" : "Treasury unpaused"}: ${signature}`);
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
//# sourceMappingURL=treasury.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treasury.js","sourceRoot":"","sources":["../../src/commands/treasury.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type ConfigSource = "flag" | "env" | "config" | "default";
|
|
2
|
+
export interface AuraCliConfig {
|
|
3
|
+
rpcUrl: string;
|
|
4
|
+
walletPath: string;
|
|
5
|
+
cluster: string;
|
|
6
|
+
programId: string;
|
|
7
|
+
defaultAgentId: string | null;
|
|
8
|
+
}
|
|
9
|
+
export interface ResolvedField<T> {
|
|
10
|
+
value: T;
|
|
11
|
+
source: ConfigSource;
|
|
12
|
+
}
|
|
13
|
+
export interface ResolvedAuraCliConfig {
|
|
14
|
+
rpcUrl: ResolvedField<string>;
|
|
15
|
+
walletPath: ResolvedField<string>;
|
|
16
|
+
cluster: ResolvedField<string>;
|
|
17
|
+
programId: ResolvedField<string>;
|
|
18
|
+
defaultAgentId: ResolvedField<string | null>;
|
|
19
|
+
}
|
|
20
|
+
export interface AuraCliConfigOverrides {
|
|
21
|
+
rpcUrl?: string;
|
|
22
|
+
walletPath?: string;
|
|
23
|
+
cluster?: string;
|
|
24
|
+
programId?: string;
|
|
25
|
+
defaultAgentId?: string | null;
|
|
26
|
+
}
|
|
27
|
+
export declare const DEFAULT_CONFIG: AuraCliConfig;
|
|
28
|
+
export declare function expandHome(inputPath: string): string;
|
|
29
|
+
export declare function compactHome(inputPath: string): string;
|
|
30
|
+
export declare function getConfigDir(): string;
|
|
31
|
+
export declare function getConfigPath(): string;
|
|
32
|
+
export declare function readConfigFile(): Partial<AuraCliConfig>;
|
|
33
|
+
export declare function writeConfigFile(config: Partial<AuraCliConfig>): string;
|
|
34
|
+
export declare function resolveConfig(overrides?: AuraCliConfigOverrides, env?: NodeJS.ProcessEnv): ResolvedAuraCliConfig;
|
|
35
|
+
export declare function flattenResolvedConfig(resolved: ResolvedAuraCliConfig): AuraCliConfig;
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { AURA_PROGRAM_ID, DEVNET_RPC_URL } from "./sdk.js";
|
|
5
|
+
export const DEFAULT_CONFIG = {
|
|
6
|
+
rpcUrl: DEVNET_RPC_URL,
|
|
7
|
+
walletPath: "~/.config/solana/id.json",
|
|
8
|
+
cluster: "devnet",
|
|
9
|
+
programId: AURA_PROGRAM_ID.toBase58(),
|
|
10
|
+
defaultAgentId: null,
|
|
11
|
+
};
|
|
12
|
+
export function expandHome(inputPath) {
|
|
13
|
+
if (inputPath === "~") {
|
|
14
|
+
return homedir();
|
|
15
|
+
}
|
|
16
|
+
if (inputPath.startsWith("~/")) {
|
|
17
|
+
return path.join(homedir(), inputPath.slice(2));
|
|
18
|
+
}
|
|
19
|
+
return inputPath;
|
|
20
|
+
}
|
|
21
|
+
export function compactHome(inputPath) {
|
|
22
|
+
const home = homedir();
|
|
23
|
+
if (inputPath === home) {
|
|
24
|
+
return "~";
|
|
25
|
+
}
|
|
26
|
+
if (inputPath.startsWith(`${home}${path.sep}`)) {
|
|
27
|
+
return `~/${inputPath.slice(home.length + 1)}`;
|
|
28
|
+
}
|
|
29
|
+
return inputPath;
|
|
30
|
+
}
|
|
31
|
+
export function getConfigDir() {
|
|
32
|
+
return path.join(homedir(), ".aura");
|
|
33
|
+
}
|
|
34
|
+
export function getConfigPath() {
|
|
35
|
+
return path.join(getConfigDir(), "config.json");
|
|
36
|
+
}
|
|
37
|
+
function isRecord(value) {
|
|
38
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
39
|
+
}
|
|
40
|
+
export function readConfigFile() {
|
|
41
|
+
const filePath = getConfigPath();
|
|
42
|
+
if (!existsSync(filePath)) {
|
|
43
|
+
return {};
|
|
44
|
+
}
|
|
45
|
+
const parsed = JSON.parse(readFileSync(filePath, "utf8"));
|
|
46
|
+
if (!isRecord(parsed)) {
|
|
47
|
+
throw new Error(`Config file ${filePath} must contain a JSON object`);
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
rpcUrl: typeof parsed["rpcUrl"] === "string" ? parsed["rpcUrl"] : undefined,
|
|
51
|
+
walletPath: typeof parsed["walletPath"] === "string" ? parsed["walletPath"] : undefined,
|
|
52
|
+
cluster: typeof parsed["cluster"] === "string" ? parsed["cluster"] : undefined,
|
|
53
|
+
programId: typeof parsed["programId"] === "string" ? parsed["programId"] : undefined,
|
|
54
|
+
defaultAgentId: typeof parsed["defaultAgentId"] === "string" || parsed["defaultAgentId"] === null
|
|
55
|
+
? parsed["defaultAgentId"]
|
|
56
|
+
: undefined,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export function writeConfigFile(config) {
|
|
60
|
+
const filePath = getConfigPath();
|
|
61
|
+
mkdirSync(path.dirname(filePath), { recursive: true });
|
|
62
|
+
writeFileSync(filePath, `${JSON.stringify(config, null, 2)}\n`, "utf8");
|
|
63
|
+
return filePath;
|
|
64
|
+
}
|
|
65
|
+
function pickField(flagValue, envValue, fileValue, defaultValue) {
|
|
66
|
+
if (flagValue !== undefined) {
|
|
67
|
+
return { value: flagValue, source: "flag" };
|
|
68
|
+
}
|
|
69
|
+
if (envValue !== undefined) {
|
|
70
|
+
return { value: envValue, source: "env" };
|
|
71
|
+
}
|
|
72
|
+
if (fileValue !== undefined) {
|
|
73
|
+
return { value: fileValue, source: "config" };
|
|
74
|
+
}
|
|
75
|
+
return { value: defaultValue, source: "default" };
|
|
76
|
+
}
|
|
77
|
+
export function resolveConfig(overrides = {}, env = process.env) {
|
|
78
|
+
const fileConfig = readConfigFile();
|
|
79
|
+
return {
|
|
80
|
+
rpcUrl: pickField(overrides.rpcUrl, env["AURA_RPC_URL"] ?? env["AURA_DEVNET_RPC_URL"] ?? env["SOLANA_RPC_URL"], fileConfig.rpcUrl, DEFAULT_CONFIG.rpcUrl),
|
|
81
|
+
walletPath: pickField(overrides.walletPath, env["AURA_WALLET_PATH"] ?? env["PAYER_KEYPAIR"], fileConfig.walletPath, DEFAULT_CONFIG.walletPath),
|
|
82
|
+
cluster: pickField(overrides.cluster, env["AURA_CLUSTER"], fileConfig.cluster, DEFAULT_CONFIG.cluster),
|
|
83
|
+
programId: pickField(overrides.programId, env["AURA_PROGRAM_ID"], fileConfig.programId, DEFAULT_CONFIG.programId),
|
|
84
|
+
defaultAgentId: pickField(overrides.defaultAgentId, env["AURA_DEFAULT_AGENT_ID"], fileConfig.defaultAgentId, DEFAULT_CONFIG.defaultAgentId),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
export function flattenResolvedConfig(resolved) {
|
|
88
|
+
return {
|
|
89
|
+
rpcUrl: resolved.rpcUrl.value,
|
|
90
|
+
walletPath: resolved.walletPath.value,
|
|
91
|
+
cluster: resolved.cluster.value,
|
|
92
|
+
programId: resolved.programId.value,
|
|
93
|
+
defaultAgentId: resolved.defaultAgentId.value,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAiC3D,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,0BAA0B;IACtC,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;IACrC,cAAc,EAAE,IAAI;CACrB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;QACtB,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;IACjD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAY,CAAC;IACrE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,6BAA6B,CAAC,CAAC;IACxE,CAAC;IAED,OAAO;QACL,MAAM,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3E,UAAU,EAAE,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;QACvF,OAAO,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QAC9E,SAAS,EAAE,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;QACpF,cAAc,EACZ,OAAO,MAAM,CAAC,gBAAgB,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,gBAAgB,CAAC,KAAK,IAAI;YAC/E,CAAC,CAAE,MAAM,CAAC,gBAAgB,CAAmB;YAC7C,CAAC,CAAC,SAAS;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAA8B;IAC5D,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,SAAS,CAChB,SAAwB,EACxB,QAAuB,EACvB,SAAwB,EACxB,YAAe;IAEf,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,YAAoC,EAAE,EACtC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IAEpC,OAAO;QACL,MAAM,EAAE,SAAS,CACf,SAAS,CAAC,MAAM,EAChB,GAAG,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,EAC1E,UAAU,CAAC,MAAM,EACjB,cAAc,CAAC,MAAM,CACtB;QACD,UAAU,EAAE,SAAS,CACnB,SAAS,CAAC,UAAU,EACpB,GAAG,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,EAC/C,UAAU,CAAC,UAAU,EACrB,cAAc,CAAC,UAAU,CAC1B;QACD,OAAO,EAAE,SAAS,CAChB,SAAS,CAAC,OAAO,EACjB,GAAG,CAAC,cAAc,CAAC,EACnB,UAAU,CAAC,OAAO,EAClB,cAAc,CAAC,OAAO,CACvB;QACD,SAAS,EAAE,SAAS,CAClB,SAAS,CAAC,SAAS,EACnB,GAAG,CAAC,iBAAiB,CAAC,EACtB,UAAU,CAAC,SAAS,EACpB,cAAc,CAAC,SAAS,CACzB;QACD,cAAc,EAAE,SAAS,CACvB,SAAS,CAAC,cAAc,EACxB,GAAG,CAAC,uBAAuB,CAAC,EAC5B,UAAU,CAAC,cAAc,EACzB,cAAc,CAAC,cAAc,CAC9B;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAA+B;IACnE,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK;QAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;QACrC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK;QAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK;QACnC,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK;KAC9C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Connection, PublicKey } from "@solana/web3.js";
|
|
2
|
+
import type { Command } from "commander";
|
|
3
|
+
import { type AuraCliConfig, type ResolvedAuraCliConfig } from "./config.js";
|
|
4
|
+
import { Aura, AuraClient } from "./sdk.js";
|
|
5
|
+
import { loadKeypair } from "./wallet.js";
|
|
6
|
+
export interface GlobalOptions {
|
|
7
|
+
rpcUrl?: string;
|
|
8
|
+
wallet?: string;
|
|
9
|
+
programId?: string;
|
|
10
|
+
cluster?: string;
|
|
11
|
+
json?: boolean;
|
|
12
|
+
quiet?: boolean;
|
|
13
|
+
dryRun?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface CliContext {
|
|
16
|
+
output: {
|
|
17
|
+
json: boolean;
|
|
18
|
+
quiet: boolean;
|
|
19
|
+
};
|
|
20
|
+
dryRun: boolean;
|
|
21
|
+
resolvedConfig: ResolvedAuraCliConfig;
|
|
22
|
+
config: AuraCliConfig;
|
|
23
|
+
connection: Connection;
|
|
24
|
+
programId: PublicKey;
|
|
25
|
+
aura?: Aura;
|
|
26
|
+
client: AuraClient;
|
|
27
|
+
wallet?: ReturnType<typeof loadKeypair>;
|
|
28
|
+
}
|
|
29
|
+
export declare function getGlobalOptions(command: Command): GlobalOptions;
|
|
30
|
+
export declare function resolveGlobalConfig(command: Command): {
|
|
31
|
+
globals: GlobalOptions;
|
|
32
|
+
resolvedConfig: ResolvedAuraCliConfig;
|
|
33
|
+
config: AuraCliConfig;
|
|
34
|
+
};
|
|
35
|
+
export declare function buildCliContext(command: Command, options?: {
|
|
36
|
+
needsWallet?: boolean;
|
|
37
|
+
}): CliContext;
|
package/dist/context.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Connection, PublicKey } from "@solana/web3.js";
|
|
2
|
+
import { flattenResolvedConfig, resolveConfig, } from "./config.js";
|
|
3
|
+
import { Aura, AuraClient } from "./sdk.js";
|
|
4
|
+
import { loadKeypair } from "./wallet.js";
|
|
5
|
+
export function getGlobalOptions(command) {
|
|
6
|
+
const raw = command.optsWithGlobals();
|
|
7
|
+
return {
|
|
8
|
+
rpcUrl: typeof raw["rpcUrl"] === "string" ? raw["rpcUrl"] : undefined,
|
|
9
|
+
wallet: typeof raw["wallet"] === "string" ? raw["wallet"] : undefined,
|
|
10
|
+
programId: typeof raw["programId"] === "string" ? raw["programId"] : undefined,
|
|
11
|
+
cluster: typeof raw["cluster"] === "string" ? raw["cluster"] : undefined,
|
|
12
|
+
json: raw["json"] === true,
|
|
13
|
+
quiet: raw["quiet"] === true,
|
|
14
|
+
dryRun: raw["dryRun"] === true,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function resolveGlobalConfig(command) {
|
|
18
|
+
const globals = getGlobalOptions(command);
|
|
19
|
+
const overrides = {
|
|
20
|
+
rpcUrl: globals.rpcUrl,
|
|
21
|
+
walletPath: globals.wallet,
|
|
22
|
+
programId: globals.programId,
|
|
23
|
+
cluster: globals.cluster,
|
|
24
|
+
};
|
|
25
|
+
const resolvedConfig = resolveConfig(overrides);
|
|
26
|
+
const config = flattenResolvedConfig(resolvedConfig);
|
|
27
|
+
return { globals, resolvedConfig, config };
|
|
28
|
+
}
|
|
29
|
+
export function buildCliContext(command, options = {}) {
|
|
30
|
+
const { globals, resolvedConfig, config } = resolveGlobalConfig(command);
|
|
31
|
+
const connection = new Connection(config.rpcUrl, "confirmed");
|
|
32
|
+
const programId = new PublicKey(config.programId);
|
|
33
|
+
const wallet = options.needsWallet === false ? undefined : loadKeypair(config.walletPath);
|
|
34
|
+
const aura = wallet
|
|
35
|
+
? new Aura({
|
|
36
|
+
rpcUrl: config.rpcUrl,
|
|
37
|
+
keypair: wallet,
|
|
38
|
+
programId,
|
|
39
|
+
})
|
|
40
|
+
: undefined;
|
|
41
|
+
const client = aura?.lowLevel ?? new AuraClient({ connection, programId });
|
|
42
|
+
return {
|
|
43
|
+
output: {
|
|
44
|
+
json: globals.json === true,
|
|
45
|
+
quiet: globals.quiet === true,
|
|
46
|
+
},
|
|
47
|
+
dryRun: globals.dryRun === true,
|
|
48
|
+
resolvedConfig,
|
|
49
|
+
config,
|
|
50
|
+
connection,
|
|
51
|
+
programId,
|
|
52
|
+
aura,
|
|
53
|
+
client,
|
|
54
|
+
wallet,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|