@aura-protocol/cli 0.1.2 → 0.3.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 +84 -67
- package/bin/aura.js +0 -0
- package/dist/commands/confidential.d.ts +1 -1
- package/dist/commands/confidential.js +276 -597
- package/dist/commands/confidential.js.map +1 -1
- package/dist/commands/config.d.ts +1 -1
- package/dist/commands/config.js +26 -8
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/dashboard.d.ts +1 -1
- package/dist/commands/dashboard.js +6 -7
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/dwallet.d.ts +1 -1
- package/dist/commands/dwallet.js +52 -41
- package/dist/commands/dwallet.js.map +1 -1
- package/dist/commands/execution.d.ts +1 -1
- package/dist/commands/execution.js +111 -175
- package/dist/commands/execution.js.map +1 -1
- package/dist/commands/features.d.ts +1 -1
- package/dist/commands/features.js +15 -10
- package/dist/commands/features.js.map +1 -1
- package/dist/commands/generated.d.ts +20 -0
- package/dist/commands/generated.js +61 -0
- package/dist/commands/generated.js.map +1 -0
- package/dist/commands/governance.d.ts +1 -1
- package/dist/commands/governance.js +113 -99
- package/dist/commands/governance.js.map +1 -1
- package/dist/commands/helpers.d.ts +5 -2
- package/dist/commands/helpers.js +79 -16
- package/dist/commands/helpers.js.map +1 -1
- package/dist/commands/instruction-exec.d.ts +27 -0
- package/dist/commands/instruction-exec.js +171 -0
- package/dist/commands/instruction-exec.js.map +1 -0
- package/dist/commands/instruction.d.ts +9 -0
- package/dist/commands/instruction.js +81 -0
- package/dist/commands/instruction.js.map +1 -0
- package/dist/commands/pda.d.ts +1 -1
- package/dist/commands/pda.js +15 -7
- package/dist/commands/pda.js.map +1 -1
- package/dist/commands/treasury.d.ts +1 -1
- package/dist/commands/treasury.js +201 -186
- package/dist/commands/treasury.js.map +1 -1
- package/dist/core/config.d.ts +35 -0
- package/dist/core/config.js +97 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/context.d.ts +51 -0
- package/dist/core/context.js +60 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/errors.d.ts +38 -0
- package/dist/core/errors.js +138 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/network.d.ts +18 -0
- package/dist/core/network.js +38 -0
- package/dist/core/network.js.map +1 -0
- package/dist/core/runner.d.ts +45 -0
- package/dist/core/runner.js +219 -0
- package/dist/core/runner.js.map +1 -0
- package/dist/core/security.d.ts +28 -0
- package/dist/core/security.js +83 -0
- package/dist/core/security.js.map +1 -0
- package/dist/core/wallet.d.ts +2 -0
- package/dist/core/wallet.js +21 -0
- package/dist/core/wallet.js.map +1 -0
- package/dist/ika.d.ts +0 -9
- package/dist/ika.js +0 -48
- package/dist/ika.js.map +1 -1
- package/dist/index.js +56 -13
- package/dist/index.js.map +1 -1
- package/dist/lib/domain.d.ts +16 -0
- package/dist/lib/domain.js +88 -0
- package/dist/lib/domain.js.map +1 -0
- package/dist/lib/ika.d.ts +81 -0
- package/dist/lib/ika.js +192 -0
- package/dist/lib/ika.js.map +1 -0
- package/dist/lib/instructions.d.ts +79 -0
- package/dist/lib/instructions.js +421 -0
- package/dist/lib/instructions.js.map +1 -0
- package/dist/lib/protocol.d.ts +99 -0
- package/dist/lib/protocol.js +327 -0
- package/dist/lib/protocol.js.map +1 -0
- package/dist/lib/treasury-view.d.ts +11 -0
- package/dist/lib/treasury-view.js +126 -0
- package/dist/lib/treasury-view.js.map +1 -0
- package/dist/output.js +0 -3
- package/dist/output.js.map +1 -1
- package/dist/program-instructions.d.ts +1 -1
- package/dist/protocol.d.ts +0 -1
- package/dist/protocol.js +0 -7
- package/dist/protocol.js.map +1 -1
- package/dist/treasury-view.js +1 -1
- package/dist/treasury-view.js.map +1 -1
- package/dist/ui/dashboard.d.ts +7 -0
- package/dist/ui/dashboard.js +99 -0
- package/dist/ui/dashboard.js.map +1 -0
- package/dist/ui/format.d.ts +9 -0
- package/dist/ui/format.js +92 -0
- package/dist/ui/format.js.map +1 -0
- package/dist/ui/output.d.ts +58 -0
- package/dist/ui/output.js +208 -0
- package/dist/ui/output.js.map +1 -0
- package/dist/ui/theme.d.ts +52 -0
- package/dist/ui/theme.js +110 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/vendor/encrypt/generated/grpc/encrypt_service.d.ts +1 -1
- package/dist/vendor/encrypt/generated/grpc/encrypt_service.js +36 -13
- package/dist/vendor/encrypt/generated/grpc/encrypt_service.js.map +1 -1
- package/dist/vendor/encrypt/grpc.d.ts +2 -2
- package/dist/vendor/encrypt/grpc.js +1 -3
- package/dist/vendor/encrypt/grpc.js.map +1 -1
- package/dist/vendor/ika/bcs-types.js +107 -50
- package/dist/vendor/ika/bcs-types.js.map +1 -1
- package/dist/vendor/ika/generated/grpc/ika_dwallet.d.ts +1 -1
- package/dist/vendor/ika/generated/grpc/ika_dwallet.js +14 -4
- package/dist/vendor/ika/generated/grpc/ika_dwallet.js.map +1 -1
- package/dist/vendor/ika/grpc.d.ts +1 -1
- package/dist/vendor/ika/grpc.js +49 -24
- package/dist/vendor/ika/grpc.js.map +1 -1
- package/package.json +16 -13
- package/dist/ascii.d.ts +0 -1
- package/dist/ascii.js +0 -2
- package/dist/ascii.js.map +0 -1
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { AURA_FEATURE_DOMAINS, AURA_IDL, } from "@aura-protocol/sdk-ts";
|
|
3
|
+
import { PublicKey, SystemProgram, } from "@solana/web3.js";
|
|
4
|
+
import BN from "bn.js";
|
|
5
|
+
import { expandHome } from "../core/config.js";
|
|
6
|
+
import { serializeInstruction } from "../ui/output.js";
|
|
7
|
+
const integerTypes = new Set([
|
|
8
|
+
"u8",
|
|
9
|
+
"i8",
|
|
10
|
+
"u16",
|
|
11
|
+
"i16",
|
|
12
|
+
"u32",
|
|
13
|
+
"i32",
|
|
14
|
+
"u64",
|
|
15
|
+
"i64",
|
|
16
|
+
"u128",
|
|
17
|
+
"i128",
|
|
18
|
+
]);
|
|
19
|
+
function isRecord(value) {
|
|
20
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
21
|
+
}
|
|
22
|
+
export function toCamelCase(value) {
|
|
23
|
+
return value.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
24
|
+
}
|
|
25
|
+
function toSnakeCase(value) {
|
|
26
|
+
return value.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
|
|
27
|
+
}
|
|
28
|
+
function normalizeInstructionName(value) {
|
|
29
|
+
return toSnakeCase(value.trim()).replace(/-+/g, "_");
|
|
30
|
+
}
|
|
31
|
+
function getInstruction(name) {
|
|
32
|
+
const normalized = normalizeInstructionName(name);
|
|
33
|
+
const instruction = AURA_IDL.instructions.find((entry) => entry.name === normalized);
|
|
34
|
+
if (!instruction) {
|
|
35
|
+
throw new Error(`Unknown instruction '${name}'.`);
|
|
36
|
+
}
|
|
37
|
+
return instruction;
|
|
38
|
+
}
|
|
39
|
+
function getDefinedType(name) {
|
|
40
|
+
const found = AURA_IDL.types.find((entry) => entry.name === name);
|
|
41
|
+
if (!found) {
|
|
42
|
+
throw new Error(`IDL type '${name}' was not found.`);
|
|
43
|
+
}
|
|
44
|
+
return found;
|
|
45
|
+
}
|
|
46
|
+
function readField(input, name) {
|
|
47
|
+
const camelName = toCamelCase(name);
|
|
48
|
+
if (Object.hasOwn(input, camelName)) {
|
|
49
|
+
return input[camelName];
|
|
50
|
+
}
|
|
51
|
+
if (Object.hasOwn(input, name)) {
|
|
52
|
+
return input[name];
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
function decodeByteArray(value, label) {
|
|
57
|
+
if (Array.isArray(value)) {
|
|
58
|
+
return value.map((entry, index) => {
|
|
59
|
+
const parsed = Number(entry);
|
|
60
|
+
if (!Number.isInteger(parsed) || parsed < 0 || parsed > 255) {
|
|
61
|
+
throw new Error(`${label}[${index}] must be a byte.`);
|
|
62
|
+
}
|
|
63
|
+
return parsed;
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
if (typeof value === "string") {
|
|
67
|
+
const normalized = value.startsWith("0x") ? value.slice(2) : value;
|
|
68
|
+
if (!/^[0-9a-fA-F]*$/.test(normalized) || normalized.length % 2 !== 0) {
|
|
69
|
+
throw new Error(`${label} must be a byte array or hex string.`);
|
|
70
|
+
}
|
|
71
|
+
return Array.from(Buffer.from(normalized, "hex"));
|
|
72
|
+
}
|
|
73
|
+
throw new Error(`${label} must be a byte array.`);
|
|
74
|
+
}
|
|
75
|
+
function parseInteger(value, label, wide) {
|
|
76
|
+
if (value === undefined || value === null || value === "") {
|
|
77
|
+
throw new Error(`${label} is required.`);
|
|
78
|
+
}
|
|
79
|
+
const raw = typeof value === "bigint" ? value.toString() : value;
|
|
80
|
+
if (wide) {
|
|
81
|
+
try {
|
|
82
|
+
return new BN(String(raw));
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
throw new Error(`${label} must be an integer.`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const parsed = Number(raw);
|
|
89
|
+
if (!Number.isInteger(parsed)) {
|
|
90
|
+
throw new Error(`${label} must be an integer.`);
|
|
91
|
+
}
|
|
92
|
+
return parsed;
|
|
93
|
+
}
|
|
94
|
+
function parseIdlValue(type, value, label, defaultSigner) {
|
|
95
|
+
if (typeof type === "string") {
|
|
96
|
+
if (type === "pubkey") {
|
|
97
|
+
if (typeof value !== "string") {
|
|
98
|
+
throw new Error(`${label} must be a public key string.`);
|
|
99
|
+
}
|
|
100
|
+
if ((value === "$signer" || value === "$wallet") && defaultSigner) {
|
|
101
|
+
return defaultSigner;
|
|
102
|
+
}
|
|
103
|
+
return new PublicKey(value);
|
|
104
|
+
}
|
|
105
|
+
if (type === "string") {
|
|
106
|
+
if (typeof value !== "string") {
|
|
107
|
+
throw new Error(`${label} must be a string.`);
|
|
108
|
+
}
|
|
109
|
+
return value;
|
|
110
|
+
}
|
|
111
|
+
if (type === "bool") {
|
|
112
|
+
if (typeof value === "boolean") {
|
|
113
|
+
return value;
|
|
114
|
+
}
|
|
115
|
+
if (value === "true" || value === "false") {
|
|
116
|
+
return value === "true";
|
|
117
|
+
}
|
|
118
|
+
throw new Error(`${label} must be a boolean.`);
|
|
119
|
+
}
|
|
120
|
+
if (integerTypes.has(type)) {
|
|
121
|
+
return parseInteger(value, label, type === "u64" || type === "i64" || type === "u128" || type === "i128");
|
|
122
|
+
}
|
|
123
|
+
if (type === "bytes") {
|
|
124
|
+
return Buffer.from(decodeByteArray(value, label));
|
|
125
|
+
}
|
|
126
|
+
return value;
|
|
127
|
+
}
|
|
128
|
+
if (!isRecord(type)) {
|
|
129
|
+
return value;
|
|
130
|
+
}
|
|
131
|
+
if ("option" in type) {
|
|
132
|
+
if (value === undefined || value === null || value === "") {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
return parseIdlValue(type.option, value, label, defaultSigner);
|
|
136
|
+
}
|
|
137
|
+
if ("vec" in type) {
|
|
138
|
+
if (type.vec === "u8") {
|
|
139
|
+
return decodeByteArray(value, label);
|
|
140
|
+
}
|
|
141
|
+
if (!Array.isArray(value)) {
|
|
142
|
+
throw new Error(`${label} must be an array.`);
|
|
143
|
+
}
|
|
144
|
+
return value.map((entry, index) => parseIdlValue(type.vec, entry, `${label}[${index}]`, defaultSigner));
|
|
145
|
+
}
|
|
146
|
+
if ("array" in type) {
|
|
147
|
+
const [inner, length] = type.array;
|
|
148
|
+
const values = inner === "u8" ? decodeByteArray(value, label) : value;
|
|
149
|
+
if (!Array.isArray(values)) {
|
|
150
|
+
throw new Error(`${label} must be an array.`);
|
|
151
|
+
}
|
|
152
|
+
if (values.length !== length) {
|
|
153
|
+
throw new Error(`${label} must contain ${length} values.`);
|
|
154
|
+
}
|
|
155
|
+
return values.map((entry, index) => parseIdlValue(inner, entry, `${label}[${index}]`, defaultSigner));
|
|
156
|
+
}
|
|
157
|
+
if ("defined" in type && isRecord(type.defined)) {
|
|
158
|
+
const definition = getDefinedType(String(type.defined.name));
|
|
159
|
+
if (definition.type.kind !== "struct") {
|
|
160
|
+
throw new Error(`${String(type.defined.name)} is not a struct.`);
|
|
161
|
+
}
|
|
162
|
+
if (!isRecord(value)) {
|
|
163
|
+
throw new Error(`${label} must be an object.`);
|
|
164
|
+
}
|
|
165
|
+
const out = {};
|
|
166
|
+
for (const field of definition.type.fields ?? []) {
|
|
167
|
+
out[toCamelCase(field.name)] = parseIdlValue(field.type, readField(value, field.name), `${label}.${field.name}`, defaultSigner);
|
|
168
|
+
}
|
|
169
|
+
return out;
|
|
170
|
+
}
|
|
171
|
+
return value;
|
|
172
|
+
}
|
|
173
|
+
function parseArgs(instruction, input, defaultSigner) {
|
|
174
|
+
if (Array.isArray(input)) {
|
|
175
|
+
if (input.length !== instruction.args.length) {
|
|
176
|
+
throw new Error(`${instruction.name} expects ${instruction.args.length} args.`);
|
|
177
|
+
}
|
|
178
|
+
return instruction.args.map((arg, index) => parseIdlValue(arg.type, input[index], arg.name, defaultSigner));
|
|
179
|
+
}
|
|
180
|
+
const body = isRecord(input) ? input : {};
|
|
181
|
+
return instruction.args.map((arg) => {
|
|
182
|
+
let value = readField(body, arg.name);
|
|
183
|
+
if (value === undefined &&
|
|
184
|
+
instruction.args.length === 1 &&
|
|
185
|
+
arg.name === "args") {
|
|
186
|
+
value = body;
|
|
187
|
+
}
|
|
188
|
+
return parseIdlValue(arg.type, value, arg.name, defaultSigner);
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
function parseAccountValue(account, accounts, programId, defaultSigner) {
|
|
192
|
+
const raw = readField(accounts, account.name);
|
|
193
|
+
if (raw === undefined || raw === null || raw === "") {
|
|
194
|
+
if ("address" in account && typeof account.address === "string") {
|
|
195
|
+
return new PublicKey(account.address);
|
|
196
|
+
}
|
|
197
|
+
if (account.name === "system_program") {
|
|
198
|
+
return SystemProgram.programId;
|
|
199
|
+
}
|
|
200
|
+
if (account.name === "caller_program") {
|
|
201
|
+
return programId;
|
|
202
|
+
}
|
|
203
|
+
if (account.optional) {
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
206
|
+
throw new Error(`${account.name} account is required.`);
|
|
207
|
+
}
|
|
208
|
+
if (typeof raw !== "string") {
|
|
209
|
+
throw new Error(`${account.name} must be a public key string.`);
|
|
210
|
+
}
|
|
211
|
+
if ((raw === "$signer" || raw === "$wallet") && defaultSigner) {
|
|
212
|
+
return defaultSigner;
|
|
213
|
+
}
|
|
214
|
+
return new PublicKey(raw);
|
|
215
|
+
}
|
|
216
|
+
function parseAccounts(instruction, accounts, programId, defaultSigner) {
|
|
217
|
+
const out = {};
|
|
218
|
+
for (const account of instruction.accounts) {
|
|
219
|
+
out[toCamelCase(account.name)] = parseAccountValue(account, accounts, programId, defaultSigner);
|
|
220
|
+
}
|
|
221
|
+
return out;
|
|
222
|
+
}
|
|
223
|
+
function typeLabel(type) {
|
|
224
|
+
if (typeof type === "string") {
|
|
225
|
+
return type;
|
|
226
|
+
}
|
|
227
|
+
if (!isRecord(type)) {
|
|
228
|
+
return "unknown";
|
|
229
|
+
}
|
|
230
|
+
if ("option" in type) {
|
|
231
|
+
return `option<${typeLabel(type.option)}>`;
|
|
232
|
+
}
|
|
233
|
+
if ("vec" in type) {
|
|
234
|
+
return `vec<${typeLabel(type.vec)}>`;
|
|
235
|
+
}
|
|
236
|
+
if ("array" in type) {
|
|
237
|
+
const [inner, length] = type.array;
|
|
238
|
+
return `[${typeLabel(inner)}; ${length}]`;
|
|
239
|
+
}
|
|
240
|
+
if ("defined" in type && isRecord(type.defined)) {
|
|
241
|
+
return String(type.defined.name);
|
|
242
|
+
}
|
|
243
|
+
return "object";
|
|
244
|
+
}
|
|
245
|
+
function sampleValue(type, depth = 0) {
|
|
246
|
+
if (depth > 4) {
|
|
247
|
+
return null;
|
|
248
|
+
}
|
|
249
|
+
if (typeof type === "string") {
|
|
250
|
+
if (type === "pubkey")
|
|
251
|
+
return "$wallet";
|
|
252
|
+
if (type === "string")
|
|
253
|
+
return "";
|
|
254
|
+
if (type === "bool")
|
|
255
|
+
return false;
|
|
256
|
+
if (integerTypes.has(type)) {
|
|
257
|
+
return type === "u64" ||
|
|
258
|
+
type === "i64" ||
|
|
259
|
+
type === "u128" ||
|
|
260
|
+
type === "i128"
|
|
261
|
+
? "0"
|
|
262
|
+
: 0;
|
|
263
|
+
}
|
|
264
|
+
if (type === "bytes")
|
|
265
|
+
return [];
|
|
266
|
+
return null;
|
|
267
|
+
}
|
|
268
|
+
if (!isRecord(type)) {
|
|
269
|
+
return null;
|
|
270
|
+
}
|
|
271
|
+
if ("option" in type)
|
|
272
|
+
return null;
|
|
273
|
+
if ("vec" in type)
|
|
274
|
+
return [];
|
|
275
|
+
if ("array" in type) {
|
|
276
|
+
const [inner, length] = type.array;
|
|
277
|
+
return Array.from({ length }, () => sampleValue(inner, depth + 1));
|
|
278
|
+
}
|
|
279
|
+
if ("defined" in type && isRecord(type.defined)) {
|
|
280
|
+
const definition = getDefinedType(String(type.defined.name));
|
|
281
|
+
if (definition.type.kind !== "struct") {
|
|
282
|
+
return null;
|
|
283
|
+
}
|
|
284
|
+
const out = {};
|
|
285
|
+
for (const field of definition.type.fields ?? []) {
|
|
286
|
+
out[toCamelCase(field.name)] = sampleValue(field.type, depth + 1);
|
|
287
|
+
}
|
|
288
|
+
return out;
|
|
289
|
+
}
|
|
290
|
+
return null;
|
|
291
|
+
}
|
|
292
|
+
export function getProgramInstructionSchema(name) {
|
|
293
|
+
const instruction = getInstruction(name);
|
|
294
|
+
return {
|
|
295
|
+
name: instruction.name,
|
|
296
|
+
camelName: toCamelCase(instruction.name),
|
|
297
|
+
accounts: instruction.accounts.map((account) => ({
|
|
298
|
+
name: account.name,
|
|
299
|
+
camelName: toCamelCase(account.name),
|
|
300
|
+
signer: account.signer === true,
|
|
301
|
+
writable: account.writable === true,
|
|
302
|
+
optional: account.optional === true,
|
|
303
|
+
address: "address" in account && typeof account.address === "string"
|
|
304
|
+
? account.address
|
|
305
|
+
: undefined,
|
|
306
|
+
})),
|
|
307
|
+
args: instruction.args.map((arg) => ({
|
|
308
|
+
name: arg.name,
|
|
309
|
+
camelName: toCamelCase(arg.name),
|
|
310
|
+
type: arg.type,
|
|
311
|
+
typeLabel: typeLabel(arg.type),
|
|
312
|
+
sample: sampleValue(arg.type),
|
|
313
|
+
})),
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
export function getProgramInstructionCatalog() {
|
|
317
|
+
const instructionByName = new Map(AURA_IDL.instructions.map((instruction) => [
|
|
318
|
+
instruction.name,
|
|
319
|
+
instruction,
|
|
320
|
+
]));
|
|
321
|
+
const domains = AURA_FEATURE_DOMAINS.map((domain) => ({
|
|
322
|
+
...domain,
|
|
323
|
+
instructions: domain.instructions.map((feature) => ({
|
|
324
|
+
...feature,
|
|
325
|
+
schema: instructionByName.has(feature.name)
|
|
326
|
+
? getProgramInstructionSchema(feature.name)
|
|
327
|
+
: null,
|
|
328
|
+
})),
|
|
329
|
+
}));
|
|
330
|
+
return {
|
|
331
|
+
domains,
|
|
332
|
+
totals: {
|
|
333
|
+
domains: domains.length,
|
|
334
|
+
instructions: AURA_IDL.instructions.length,
|
|
335
|
+
},
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
export async function buildProgramInstruction(client, input, options) {
|
|
339
|
+
const instructionDef = getInstruction(input.instruction);
|
|
340
|
+
const methodName = toCamelCase(instructionDef.name);
|
|
341
|
+
const method = client.program.methods[methodName];
|
|
342
|
+
if (typeof method !== "function") {
|
|
343
|
+
throw new Error(`${instructionDef.name} is not exposed by the Anchor client.`);
|
|
344
|
+
}
|
|
345
|
+
const normalizedAccounts = parseAccounts(instructionDef, input.accounts, options.programId, options.defaultSigner);
|
|
346
|
+
const normalizedArgs = parseArgs(instructionDef, input.args, options.defaultSigner);
|
|
347
|
+
const builder = method(...normalizedArgs);
|
|
348
|
+
const instruction = await builder
|
|
349
|
+
.accountsStrict(normalizedAccounts)
|
|
350
|
+
.instruction();
|
|
351
|
+
return {
|
|
352
|
+
schema: getProgramInstructionSchema(instructionDef.name),
|
|
353
|
+
normalizedAccounts,
|
|
354
|
+
normalizedArgs,
|
|
355
|
+
instruction,
|
|
356
|
+
requiredSigners: instruction.keys
|
|
357
|
+
.filter((key) => key.isSigner)
|
|
358
|
+
.map((key) => key.pubkey.toBase58()),
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
export function parseJsonInput(value, label) {
|
|
362
|
+
if (!value) {
|
|
363
|
+
return {};
|
|
364
|
+
}
|
|
365
|
+
const source = value.startsWith("@") ? value.slice(1) : value;
|
|
366
|
+
const resolved = expandHome(source);
|
|
367
|
+
const raw = existsSync(resolved) ? readFileSync(resolved, "utf8") : value;
|
|
368
|
+
try {
|
|
369
|
+
const parsed = JSON.parse(raw);
|
|
370
|
+
if (!isRecord(parsed) && !Array.isArray(parsed)) {
|
|
371
|
+
throw new Error(`${label} must be a JSON object or array.`);
|
|
372
|
+
}
|
|
373
|
+
return parsed;
|
|
374
|
+
}
|
|
375
|
+
catch (error) {
|
|
376
|
+
if (error instanceof SyntaxError) {
|
|
377
|
+
throw new Error(`${label} must be valid JSON or @/path/to/file.json.`);
|
|
378
|
+
}
|
|
379
|
+
throw error;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
export function parseKeyValuePairs(values) {
|
|
383
|
+
const out = {};
|
|
384
|
+
for (const entry of values ?? []) {
|
|
385
|
+
const idx = entry.indexOf("=");
|
|
386
|
+
if (idx <= 0) {
|
|
387
|
+
throw new Error(`Expected key=value, got '${entry}'.`);
|
|
388
|
+
}
|
|
389
|
+
const key = entry.slice(0, idx);
|
|
390
|
+
const raw = entry.slice(idx + 1);
|
|
391
|
+
try {
|
|
392
|
+
out[key] =
|
|
393
|
+
/^-?\d+$/.test(raw) && raw.length > 15
|
|
394
|
+
? raw
|
|
395
|
+
: JSON.parse(raw);
|
|
396
|
+
}
|
|
397
|
+
catch {
|
|
398
|
+
out[key] = raw;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
return out;
|
|
402
|
+
}
|
|
403
|
+
export function mergeJsonInput(base, overrides) {
|
|
404
|
+
if (Array.isArray(base)) {
|
|
405
|
+
if (Object.keys(overrides).length > 0) {
|
|
406
|
+
throw new Error("Cannot combine array args with key=value overrides.");
|
|
407
|
+
}
|
|
408
|
+
return base;
|
|
409
|
+
}
|
|
410
|
+
return { ...base, ...overrides };
|
|
411
|
+
}
|
|
412
|
+
export function serializeInstructionBuild(build) {
|
|
413
|
+
return {
|
|
414
|
+
schema: build.schema,
|
|
415
|
+
normalizedAccounts: build.normalizedAccounts,
|
|
416
|
+
normalizedArgs: build.normalizedArgs,
|
|
417
|
+
instruction: serializeInstruction(build.instruction),
|
|
418
|
+
requiredSigners: build.requiredSigners,
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
//# sourceMappingURL=instructions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/lib/instructions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { type TreasuryAccountRecord } from "@aura-protocol/sdk-ts";
|
|
2
|
+
import { type AccountInfo, type Commitment, type Connection, Keypair, PublicKey, type SendOptions, type Signer, TransactionInstruction } from "@solana/web3.js";
|
|
3
|
+
export declare const ENCRYPT_NETWORK_KEY: Uint8Array<ArrayBuffer>;
|
|
4
|
+
type PendingProposal = TreasuryAccountRecord["pendingQueue"][number];
|
|
5
|
+
type DwalletRecord = TreasuryAccountRecord["dwallets"][number];
|
|
6
|
+
type BufferAccountInfo = AccountInfo<Buffer<ArrayBufferLike>>;
|
|
7
|
+
export interface EncryptAccountsBundle {
|
|
8
|
+
config: PublicKey;
|
|
9
|
+
deposit: PublicKey;
|
|
10
|
+
depositBump: number;
|
|
11
|
+
networkEncryptionKey: PublicKey;
|
|
12
|
+
eventAuthority: PublicKey;
|
|
13
|
+
cpiAuthority: PublicKey;
|
|
14
|
+
encryptProgram: PublicKey;
|
|
15
|
+
}
|
|
16
|
+
export interface EnsureEncryptDepositResult {
|
|
17
|
+
accounts: EncryptAccountsBundle;
|
|
18
|
+
created: boolean;
|
|
19
|
+
signature?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ApprovedExecutionAccounts {
|
|
22
|
+
pending: PendingProposal;
|
|
23
|
+
dwallet: DwalletRecord;
|
|
24
|
+
messageApproval: PublicKey;
|
|
25
|
+
dwalletAccount: PublicKey;
|
|
26
|
+
dwalletCoordinator: PublicKey;
|
|
27
|
+
cpiAuthority: PublicKey;
|
|
28
|
+
dwalletProgram: PublicKey;
|
|
29
|
+
}
|
|
30
|
+
export type MessageApprovalState = "missing" | "pending" | "signed";
|
|
31
|
+
export declare function deriveEncryptAccounts(payer: PublicKey, options?: {
|
|
32
|
+
auraProgramId?: PublicKey;
|
|
33
|
+
encryptProgramId?: PublicKey;
|
|
34
|
+
}): EncryptAccountsBundle;
|
|
35
|
+
export declare function deriveDwalletCoordinatorAddress(dwalletProgramId?: PublicKey): [PublicKey, number];
|
|
36
|
+
export declare function resolveScalarGuardrails(account: TreasuryAccountRecord): {
|
|
37
|
+
dailyLimitCiphertext: PublicKey;
|
|
38
|
+
perTxLimitCiphertext: PublicKey;
|
|
39
|
+
spentTodayCiphertext: PublicKey;
|
|
40
|
+
};
|
|
41
|
+
export declare function getActivePendingProposal(account: TreasuryAccountRecord): PendingProposal | null;
|
|
42
|
+
export declare function resolvePendingProposal(account: TreasuryAccountRecord): PendingProposal;
|
|
43
|
+
export declare function resolvePendingPolicyOutput(account: TreasuryAccountRecord): PublicKey;
|
|
44
|
+
export declare function resolvePendingRequestAccount(account: TreasuryAccountRecord): PublicKey;
|
|
45
|
+
export declare function deriveApprovedExecutionAccounts(account: TreasuryAccountRecord, options?: {
|
|
46
|
+
auraProgramId?: PublicKey;
|
|
47
|
+
dwalletProgramId?: PublicKey;
|
|
48
|
+
}): ApprovedExecutionAccounts;
|
|
49
|
+
export declare function derivePendingMessageApprovalAddress(pending: PendingProposal, dwallet: DwalletRecord, dwalletProgramId?: PublicKey): [PublicKey, number];
|
|
50
|
+
export declare function buildMessageDigestHex(pending: PendingProposal, dwallet: DwalletRecord): string;
|
|
51
|
+
export declare function buildPolicyPlaintextDigestHex(plaintextBytes: Buffer): string;
|
|
52
|
+
export declare function createEphemeralKeypair(): Keypair;
|
|
53
|
+
export declare function markInstructionSigner(instruction: TransactionInstruction, pubkey: PublicKey): void;
|
|
54
|
+
export declare function sendInstructionsWithBudget(options: {
|
|
55
|
+
connection: Connection;
|
|
56
|
+
payer: Signer;
|
|
57
|
+
instructions: TransactionInstruction[];
|
|
58
|
+
extraSigners?: Signer[];
|
|
59
|
+
sendOptions?: SendOptions;
|
|
60
|
+
computeUnitLimit?: number;
|
|
61
|
+
heapFrameBytes?: number;
|
|
62
|
+
}): Promise<string>;
|
|
63
|
+
export declare function ensureEncryptDeposit(options: {
|
|
64
|
+
connection: Connection;
|
|
65
|
+
payer: Signer;
|
|
66
|
+
auraProgramId?: PublicKey;
|
|
67
|
+
encryptProgramId?: PublicKey;
|
|
68
|
+
}): Promise<EnsureEncryptDepositResult>;
|
|
69
|
+
export declare function waitForAccountState(connection: Connection, pubkey: PublicKey, predicate: (account: BufferAccountInfo) => boolean, options?: {
|
|
70
|
+
timeoutMs?: number;
|
|
71
|
+
intervalMs?: number;
|
|
72
|
+
commitment?: Commitment;
|
|
73
|
+
}): Promise<BufferAccountInfo>;
|
|
74
|
+
export declare function waitForCiphertextVerified(connection: Connection, ciphertext: PublicKey, options?: {
|
|
75
|
+
timeoutMs?: number;
|
|
76
|
+
intervalMs?: number;
|
|
77
|
+
commitment?: Commitment;
|
|
78
|
+
}): Promise<BufferAccountInfo>;
|
|
79
|
+
export declare function waitForDecryptionReady(connection: Connection, requestAccount: PublicKey, options?: {
|
|
80
|
+
timeoutMs?: number;
|
|
81
|
+
intervalMs?: number;
|
|
82
|
+
commitment?: Commitment;
|
|
83
|
+
}): Promise<BufferAccountInfo>;
|
|
84
|
+
export declare function waitForMessageApproval(connection: Connection, messageApproval: PublicKey, targetState?: Exclude<MessageApprovalState, "missing">, options?: {
|
|
85
|
+
timeoutMs?: number;
|
|
86
|
+
intervalMs?: number;
|
|
87
|
+
commitment?: Commitment;
|
|
88
|
+
}): Promise<BufferAccountInfo>;
|
|
89
|
+
export declare function getMessageApprovalState(connection: Connection, messageApproval: PublicKey, commitment?: Commitment): Promise<MessageApprovalState>;
|
|
90
|
+
export declare function parseMessageApprovalState(data: Buffer): MessageApprovalState;
|
|
91
|
+
export declare function parseDecryptionReady(account: BufferAccountInfo | null): boolean;
|
|
92
|
+
export declare function parseCiphertextVerified(account: BufferAccountInfo | null): boolean;
|
|
93
|
+
export declare function buildDryRunKeypair(path: string | undefined, load: (path: string) => Keypair): Keypair;
|
|
94
|
+
export declare function buildConfirmPolicySummary(account: TreasuryAccountRecord): {
|
|
95
|
+
approved: boolean;
|
|
96
|
+
violation: number;
|
|
97
|
+
status: number;
|
|
98
|
+
};
|
|
99
|
+
export {};
|