@thru/programs 0.2.27 → 0.2.29
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/dist/multicall/index.cjs +166 -24
- package/dist/multicall/index.cjs.map +1 -1
- package/dist/multicall/index.d.cts +39 -3
- package/dist/multicall/index.d.ts +39 -3
- package/dist/multicall/index.js +166 -25
- package/dist/multicall/index.js.map +1 -1
- package/dist/passkey-manager/index.cjs +1235 -345
- package/dist/passkey-manager/index.cjs.map +1 -1
- package/dist/passkey-manager/index.d.cts +45 -11
- package/dist/passkey-manager/index.d.ts +45 -11
- package/dist/passkey-manager/index.js +1225 -346
- package/dist/passkey-manager/index.js.map +1 -1
- package/package.json +2 -2
- package/src/multicall/abi/thru/common/primitives/types.ts +14 -9
- package/src/multicall/abi/thru/program/multicall/types.ts +136 -4
- package/src/multicall/index.ts +6 -17
- package/src/passkey-manager/abi/thru/blockchain/state_proof/types.ts +11 -6
- package/src/passkey-manager/abi/thru/common/primitives/types.ts +19 -14
- package/src/passkey-manager/abi/thru/program/passkey_manager/types.ts +1069 -271
- package/src/passkey-manager/accounts.ts +79 -40
- package/src/passkey-manager/constants.ts +10 -1
- package/src/passkey-manager/index.ts +18 -2
- package/src/passkey-manager/instructions/add-authority.ts +31 -3
- package/src/passkey-manager/instructions/create.ts +106 -11
- package/src/passkey-manager/instructions/invoke.ts +9 -0
- package/src/passkey-manager/instructions/shared.ts +15 -0
- package/src/passkey-manager/instructions/transfer.ts +1 -1
- package/src/passkey-manager/instructions/validate.ts +13 -43
- package/src/passkey-manager/types.ts +7 -2
- package/src/passkey-manager/validate.test.ts +71 -3
package/dist/multicall/index.cjs
CHANGED
|
@@ -623,7 +623,8 @@ __tnRegisterFootprint("Date", (params) => Date.__tnInvokeFootprint(params));
|
|
|
623
623
|
__tnRegisterValidate("Date", (buffer, params) => Date.__tnInvokeValidate(buffer, params));
|
|
624
624
|
__tnRegisterDynamicValidate("Date", (buffer) => {
|
|
625
625
|
const result = Date.validate(buffer);
|
|
626
|
-
|
|
626
|
+
const params = result.params;
|
|
627
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed), params };
|
|
627
628
|
});
|
|
628
629
|
var __tn_ir_Duration = {
|
|
629
630
|
typeName: "Duration",
|
|
@@ -751,7 +752,8 @@ __tnRegisterFootprint("Duration", (params) => Duration.__tnInvokeFootprint(param
|
|
|
751
752
|
__tnRegisterValidate("Duration", (buffer, params) => Duration.__tnInvokeValidate(buffer, params));
|
|
752
753
|
__tnRegisterDynamicValidate("Duration", (buffer) => {
|
|
753
754
|
const result = Duration.validate(buffer);
|
|
754
|
-
|
|
755
|
+
const params = result.params;
|
|
756
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed), params };
|
|
755
757
|
});
|
|
756
758
|
var __tn_ir_FixedPoint = {
|
|
757
759
|
typeName: "FixedPoint",
|
|
@@ -879,7 +881,8 @@ __tnRegisterFootprint("FixedPoint", (params) => FixedPoint.__tnInvokeFootprint(p
|
|
|
879
881
|
__tnRegisterValidate("FixedPoint", (buffer, params) => FixedPoint.__tnInvokeValidate(buffer, params));
|
|
880
882
|
__tnRegisterDynamicValidate("FixedPoint", (buffer) => {
|
|
881
883
|
const result = FixedPoint.validate(buffer);
|
|
882
|
-
|
|
884
|
+
const params = result.params;
|
|
885
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed), params };
|
|
883
886
|
});
|
|
884
887
|
var __tn_ir_Hash = {
|
|
885
888
|
typeName: "Hash",
|
|
@@ -994,7 +997,8 @@ __tnRegisterFootprint("Hash", (params) => Hash.__tnInvokeFootprint(params));
|
|
|
994
997
|
__tnRegisterValidate("Hash", (buffer, params) => Hash.__tnInvokeValidate(buffer, params));
|
|
995
998
|
__tnRegisterDynamicValidate("Hash", (buffer) => {
|
|
996
999
|
const result = Hash.validate(buffer);
|
|
997
|
-
|
|
1000
|
+
const params = result.params;
|
|
1001
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed), params };
|
|
998
1002
|
});
|
|
999
1003
|
var __tn_ir_InstructionData = {
|
|
1000
1004
|
typeName: "InstructionData",
|
|
@@ -1334,7 +1338,8 @@ __tnRegisterFootprint("InstructionData", (params) => exports.InstructionData.__t
|
|
|
1334
1338
|
__tnRegisterValidate("InstructionData", (buffer, params) => exports.InstructionData.__tnInvokeValidate(buffer, params));
|
|
1335
1339
|
__tnRegisterDynamicValidate("InstructionData", (buffer) => {
|
|
1336
1340
|
const result = exports.InstructionData.validate(buffer);
|
|
1337
|
-
|
|
1341
|
+
const params = result.params;
|
|
1342
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed), params };
|
|
1338
1343
|
});
|
|
1339
1344
|
var __tn_ir_Pubkey = {
|
|
1340
1345
|
typeName: "Pubkey",
|
|
@@ -1449,7 +1454,8 @@ __tnRegisterFootprint("Pubkey", (params) => Pubkey.__tnInvokeFootprint(params));
|
|
|
1449
1454
|
__tnRegisterValidate("Pubkey", (buffer, params) => Pubkey.__tnInvokeValidate(buffer, params));
|
|
1450
1455
|
__tnRegisterDynamicValidate("Pubkey", (buffer) => {
|
|
1451
1456
|
const result = Pubkey.validate(buffer);
|
|
1452
|
-
|
|
1457
|
+
const params = result.params;
|
|
1458
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed), params };
|
|
1453
1459
|
});
|
|
1454
1460
|
var __tn_ir_Signature = {
|
|
1455
1461
|
typeName: "Signature",
|
|
@@ -1564,7 +1570,8 @@ __tnRegisterFootprint("Signature", (params) => Signature.__tnInvokeFootprint(par
|
|
|
1564
1570
|
__tnRegisterValidate("Signature", (buffer, params) => Signature.__tnInvokeValidate(buffer, params));
|
|
1565
1571
|
__tnRegisterDynamicValidate("Signature", (buffer) => {
|
|
1566
1572
|
const result = Signature.validate(buffer);
|
|
1567
|
-
|
|
1573
|
+
const params = result.params;
|
|
1574
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed), params };
|
|
1568
1575
|
});
|
|
1569
1576
|
var __tn_ir_Timestamp = {
|
|
1570
1577
|
typeName: "Timestamp",
|
|
@@ -1673,7 +1680,8 @@ __tnRegisterFootprint("Timestamp", (params) => Timestamp.__tnInvokeFootprint(par
|
|
|
1673
1680
|
__tnRegisterValidate("Timestamp", (buffer, params) => Timestamp.__tnInvokeValidate(buffer, params));
|
|
1674
1681
|
__tnRegisterDynamicValidate("Timestamp", (buffer) => {
|
|
1675
1682
|
const result = Timestamp.validate(buffer);
|
|
1676
|
-
|
|
1683
|
+
const params = result.params;
|
|
1684
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed), params };
|
|
1677
1685
|
});
|
|
1678
1686
|
|
|
1679
1687
|
// src/multicall/abi/thru/program/multicall/types.ts
|
|
@@ -1692,6 +1700,36 @@ function __tnWarnOnce2(message) {
|
|
|
1692
1700
|
__tnLogWarn2(message);
|
|
1693
1701
|
}
|
|
1694
1702
|
}
|
|
1703
|
+
function __tnResolveBuilderInput2(input, context) {
|
|
1704
|
+
if (input instanceof Uint8Array) {
|
|
1705
|
+
return new Uint8Array(input);
|
|
1706
|
+
}
|
|
1707
|
+
if (input && typeof input.build === "function") {
|
|
1708
|
+
const built = input.build();
|
|
1709
|
+
if (!(built instanceof Uint8Array)) {
|
|
1710
|
+
throw new Error(`${context}: builder did not return Uint8Array`);
|
|
1711
|
+
}
|
|
1712
|
+
return new Uint8Array(built);
|
|
1713
|
+
}
|
|
1714
|
+
throw new Error(`${context}: expected Uint8Array or builder`);
|
|
1715
|
+
}
|
|
1716
|
+
function __tnResolveStructFieldInput(input, context) {
|
|
1717
|
+
if (input instanceof Uint8Array || input && typeof input.build === "function") {
|
|
1718
|
+
return __tnResolveBuilderInput2(input, context);
|
|
1719
|
+
}
|
|
1720
|
+
if (input && typeof input.asUint8Array === "function") {
|
|
1721
|
+
const bytes = input.asUint8Array();
|
|
1722
|
+
return new Uint8Array(bytes);
|
|
1723
|
+
}
|
|
1724
|
+
if (input && typeof input.bytes === "function") {
|
|
1725
|
+
const bytes = input.bytes();
|
|
1726
|
+
return new Uint8Array(bytes);
|
|
1727
|
+
}
|
|
1728
|
+
if (input && input.buffer instanceof Uint8Array) {
|
|
1729
|
+
return new Uint8Array(input.buffer);
|
|
1730
|
+
}
|
|
1731
|
+
throw new Error(`${context}: expected Uint8Array, builder, or view-like value`);
|
|
1732
|
+
}
|
|
1695
1733
|
var __tnMask322 = __tnHasNativeBigInt2 ? (BigInt(1) << BigInt(32)) - BigInt(1) : 4294967295;
|
|
1696
1734
|
var __tnSignBit322 = __tnHasNativeBigInt2 ? BigInt(1) << BigInt(31) : 2147483648;
|
|
1697
1735
|
function __tnToBigInt2(value) {
|
|
@@ -2115,7 +2153,8 @@ __tnRegisterFootprint2("InstructionData", (params) => exports.InstructionData.__
|
|
|
2115
2153
|
__tnRegisterValidate2("InstructionData", (buffer, params) => exports.InstructionData.__tnInvokeValidate(buffer, params));
|
|
2116
2154
|
__tnRegisterDynamicValidate2("InstructionData", (buffer) => {
|
|
2117
2155
|
const result = exports.InstructionData.validate(buffer);
|
|
2118
|
-
|
|
2156
|
+
const params = result.params;
|
|
2157
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt2(result.consumed), params };
|
|
2119
2158
|
});
|
|
2120
2159
|
var __tn_ir_MulticallArgs = {
|
|
2121
2160
|
typeName: "MulticallArgs",
|
|
@@ -2169,6 +2208,14 @@ exports.MulticallArgs = class _MulticallArgs {
|
|
|
2169
2208
|
}
|
|
2170
2209
|
throw new Error("MulticallArgs: field reference '" + path + "' is not available; provide fieldContext when creating this view");
|
|
2171
2210
|
}
|
|
2211
|
+
static builder() {
|
|
2212
|
+
return new MulticallArgsBuilder();
|
|
2213
|
+
}
|
|
2214
|
+
static fromBuilder(builder) {
|
|
2215
|
+
const buffer = builder.build();
|
|
2216
|
+
const params = builder.dynamicParams();
|
|
2217
|
+
return _MulticallArgs.from_array(buffer, { params });
|
|
2218
|
+
}
|
|
2172
2219
|
static __tnExtractParams(view, buffer) {
|
|
2173
2220
|
if (buffer.length < 2) {
|
|
2174
2221
|
return null;
|
|
@@ -2372,11 +2419,116 @@ exports.MulticallArgs = class _MulticallArgs {
|
|
|
2372
2419
|
}
|
|
2373
2420
|
MulticallArgs2.params = params;
|
|
2374
2421
|
})(exports.MulticallArgs || (exports.MulticallArgs = {}));
|
|
2422
|
+
var MulticallArgsBuilder = class {
|
|
2423
|
+
constructor() {
|
|
2424
|
+
this.__tnJagged_calls = null;
|
|
2425
|
+
this.__tnCachedParams = null;
|
|
2426
|
+
this.__tnLastBuffer = null;
|
|
2427
|
+
this.__tnLastParams = null;
|
|
2428
|
+
this.buffer = new Uint8Array(2);
|
|
2429
|
+
this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);
|
|
2430
|
+
}
|
|
2431
|
+
__tnInvalidate() {
|
|
2432
|
+
this.__tnCachedParams = null;
|
|
2433
|
+
this.__tnLastBuffer = null;
|
|
2434
|
+
this.__tnLastParams = null;
|
|
2435
|
+
}
|
|
2436
|
+
set_calls_count(value) {
|
|
2437
|
+
this.view.setUint16(0, value, true);
|
|
2438
|
+
this.__tnInvalidate();
|
|
2439
|
+
return this;
|
|
2440
|
+
}
|
|
2441
|
+
set_calls(values) {
|
|
2442
|
+
const fragments = [];
|
|
2443
|
+
for (let i = 0; i < values.length; i++) {
|
|
2444
|
+
const bytes = __tnResolveStructFieldInput(values[i], "MulticallArgsBuilder::calls[" + i + "]");
|
|
2445
|
+
const validation = __tnInvokeDynamicValidate2("InstructionData", bytes);
|
|
2446
|
+
if (!validation.ok || validation.consumed === void 0) throw new Error("MulticallArgsBuilder: field 'calls' element failed validation");
|
|
2447
|
+
if (__tnBigIntToNumber2(validation.consumed, "MulticallArgsBuilder::calls") !== bytes.length) throw new Error("MulticallArgsBuilder: field 'calls' element validation did not consume the full buffer");
|
|
2448
|
+
fragments.push(bytes);
|
|
2449
|
+
}
|
|
2450
|
+
this.__tnJagged_calls = fragments;
|
|
2451
|
+
this.set_calls_count(fragments.length);
|
|
2452
|
+
this.__tnInvalidate();
|
|
2453
|
+
return this;
|
|
2454
|
+
}
|
|
2455
|
+
build() {
|
|
2456
|
+
const params = this.__tnComputeParams();
|
|
2457
|
+
const fragments = this.__tnCollectFragments();
|
|
2458
|
+
const size = this.__tnComputeSize(fragments);
|
|
2459
|
+
const buffer = new Uint8Array(size);
|
|
2460
|
+
this.__tnWriteInto(buffer, fragments);
|
|
2461
|
+
this.__tnValidateOrThrow(buffer, params);
|
|
2462
|
+
return buffer;
|
|
2463
|
+
}
|
|
2464
|
+
buildInto(target, offset = 0) {
|
|
2465
|
+
const params = this.__tnComputeParams();
|
|
2466
|
+
const fragments = this.__tnCollectFragments();
|
|
2467
|
+
const size = this.__tnComputeSize(fragments);
|
|
2468
|
+
if (target.length - offset < size) throw new Error("MulticallArgsBuilder: target buffer too small");
|
|
2469
|
+
const slice = target.subarray(offset, offset + size);
|
|
2470
|
+
this.__tnWriteInto(slice, fragments);
|
|
2471
|
+
this.__tnValidateOrThrow(slice, params);
|
|
2472
|
+
return target;
|
|
2473
|
+
}
|
|
2474
|
+
finish() {
|
|
2475
|
+
const buffer = this.build();
|
|
2476
|
+
const params = this.__tnLastParams ?? this.__tnComputeParams();
|
|
2477
|
+
const view = exports.MulticallArgs.from_array(buffer, { params });
|
|
2478
|
+
if (!view) throw new Error("MulticallArgsBuilder: failed to finalize view");
|
|
2479
|
+
return view;
|
|
2480
|
+
}
|
|
2481
|
+
finishView() {
|
|
2482
|
+
return this.finish();
|
|
2483
|
+
}
|
|
2484
|
+
dynamicParams() {
|
|
2485
|
+
return this.__tnComputeParams();
|
|
2486
|
+
}
|
|
2487
|
+
__tnComputeParams() {
|
|
2488
|
+
if (this.__tnCachedParams) return this.__tnCachedParams;
|
|
2489
|
+
const params = exports.MulticallArgs.Params.fromValues({
|
|
2490
|
+
calls_calls_count: (() => {
|
|
2491
|
+
const fragments = this.__tnJagged_calls;
|
|
2492
|
+
if (!fragments) throw new Error("MulticallArgsBuilder: field 'calls' must be written before computing params");
|
|
2493
|
+
return __tnToBigInt2(fragments.length);
|
|
2494
|
+
})()
|
|
2495
|
+
});
|
|
2496
|
+
this.__tnCachedParams = params;
|
|
2497
|
+
return params;
|
|
2498
|
+
}
|
|
2499
|
+
__tnCollectFragments() {
|
|
2500
|
+
const fragments = this.__tnJagged_calls;
|
|
2501
|
+
if (!fragments) throw new Error("MulticallArgsBuilder: field 'calls' must be written before build");
|
|
2502
|
+
return fragments;
|
|
2503
|
+
}
|
|
2504
|
+
__tnComputeSize(fragments) {
|
|
2505
|
+
let total = this.buffer.length;
|
|
2506
|
+
for (const fragment of fragments) total += fragment.length;
|
|
2507
|
+
return total;
|
|
2508
|
+
}
|
|
2509
|
+
__tnWriteInto(target, fragments) {
|
|
2510
|
+
target.set(this.buffer, 0);
|
|
2511
|
+
let cursor = this.buffer.length;
|
|
2512
|
+
for (const fragment of fragments) {
|
|
2513
|
+
target.set(fragment, cursor);
|
|
2514
|
+
cursor += fragment.length;
|
|
2515
|
+
}
|
|
2516
|
+
}
|
|
2517
|
+
__tnValidateOrThrow(buffer, params) {
|
|
2518
|
+
const result = exports.MulticallArgs.validate(buffer, { params });
|
|
2519
|
+
if (!result.ok) {
|
|
2520
|
+
throw new Error(`${exports.MulticallArgs}Builder: builder produced invalid buffer (code=${result.code ?? "unknown"})`);
|
|
2521
|
+
}
|
|
2522
|
+
this.__tnLastParams = result.params ?? params;
|
|
2523
|
+
this.__tnLastBuffer = buffer;
|
|
2524
|
+
}
|
|
2525
|
+
};
|
|
2375
2526
|
__tnRegisterFootprint2("MulticallArgs", (params) => exports.MulticallArgs.__tnInvokeFootprint(params));
|
|
2376
2527
|
__tnRegisterValidate2("MulticallArgs", (buffer, params) => exports.MulticallArgs.__tnInvokeValidate(buffer, params));
|
|
2377
2528
|
__tnRegisterDynamicValidate2("MulticallArgs", (buffer) => {
|
|
2378
2529
|
const result = exports.MulticallArgs.validate(buffer);
|
|
2379
|
-
|
|
2530
|
+
const params = result.params;
|
|
2531
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt2(result.consumed), params };
|
|
2380
2532
|
});
|
|
2381
2533
|
var __tn_ir_MulticallError = {
|
|
2382
2534
|
typeName: "MulticallError",
|
|
@@ -2485,7 +2637,8 @@ __tnRegisterFootprint2("MulticallError", (params) => MulticallError.__tnInvokeFo
|
|
|
2485
2637
|
__tnRegisterValidate2("MulticallError", (buffer, params) => MulticallError.__tnInvokeValidate(buffer, params));
|
|
2486
2638
|
__tnRegisterDynamicValidate2("MulticallError", (buffer) => {
|
|
2487
2639
|
const result = MulticallError.validate(buffer);
|
|
2488
|
-
|
|
2640
|
+
const params = result.params;
|
|
2641
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt2(result.consumed), params };
|
|
2489
2642
|
});
|
|
2490
2643
|
|
|
2491
2644
|
// src/multicall/index.ts
|
|
@@ -2524,10 +2677,6 @@ var MULTICALL_PROGRAM_PUBKEY = new Uint8Array([
|
|
|
2524
2677
|
9
|
|
2525
2678
|
]);
|
|
2526
2679
|
var MULTICALL_PROGRAM_ADDRESS = helpers.encodeAddress(MULTICALL_PROGRAM_PUBKEY);
|
|
2527
|
-
function writeU16LE(target, offset, value) {
|
|
2528
|
-
target[offset] = value & 255;
|
|
2529
|
-
target[offset + 1] = value >> 8 & 255;
|
|
2530
|
-
}
|
|
2531
2680
|
function assertProgramIdx(programIdx) {
|
|
2532
2681
|
if (!Number.isInteger(programIdx) || programIdx < 0 || programIdx > 65535) {
|
|
2533
2682
|
throw new Error("programIdx must be 0-65535");
|
|
@@ -2552,15 +2701,7 @@ function buildMulticallInstruction(calls) {
|
|
|
2552
2701
|
if (!Array.isArray(calls)) throw new Error("calls must be an array");
|
|
2553
2702
|
if (calls.length > 65535) throw new Error("calls length must be 0-65535");
|
|
2554
2703
|
const encodedCalls = calls.map(buildInstructionData);
|
|
2555
|
-
const
|
|
2556
|
-
const output = new Uint8Array(totalLength);
|
|
2557
|
-
let offset = 0;
|
|
2558
|
-
writeU16LE(output, offset, calls.length);
|
|
2559
|
-
offset += 2;
|
|
2560
|
-
for (const call of encodedCalls) {
|
|
2561
|
-
output.set(call, offset);
|
|
2562
|
-
offset += call.length;
|
|
2563
|
-
}
|
|
2704
|
+
const output = new MulticallArgsBuilder().set_calls(encodedCalls).build();
|
|
2564
2705
|
const validation = exports.MulticallArgs.validate(output);
|
|
2565
2706
|
if (!validation.ok || validation.consumed !== output.length) {
|
|
2566
2707
|
throw new Error(
|
|
@@ -2573,6 +2714,7 @@ function buildMulticallInstruction(calls) {
|
|
|
2573
2714
|
exports.InstructionDataBuilder = InstructionDataBuilder;
|
|
2574
2715
|
exports.MULTICALL_PROGRAM_ADDRESS = MULTICALL_PROGRAM_ADDRESS;
|
|
2575
2716
|
exports.MULTICALL_PROGRAM_PUBKEY = MULTICALL_PROGRAM_PUBKEY;
|
|
2717
|
+
exports.MulticallArgsBuilder = MulticallArgsBuilder;
|
|
2576
2718
|
exports.MulticallError = MulticallError;
|
|
2577
2719
|
exports.buildMulticallInstruction = buildMulticallInstruction;
|
|
2578
2720
|
//# sourceMappingURL=index.cjs.map
|