near-kit 0.14.0 → 0.16.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/dist/core/actions.d.ts +106 -1
- package/dist/core/actions.d.ts.map +1 -1
- package/dist/core/actions.js +145 -0
- package/dist/core/actions.js.map +1 -1
- package/dist/core/constants.d.ts +22 -0
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +23 -0
- package/dist/core/constants.js.map +1 -1
- package/dist/core/near.d.ts +53 -2
- package/dist/core/near.d.ts.map +1 -1
- package/dist/core/near.js +59 -11
- package/dist/core/near.js.map +1 -1
- package/dist/core/rpc/rpc-schemas.d.ts +1066 -50
- package/dist/core/rpc/rpc-schemas.d.ts.map +1 -1
- package/dist/core/rpc/rpc-schemas.js +217 -5
- package/dist/core/rpc/rpc-schemas.js.map +1 -1
- package/dist/core/rpc/rpc.d.ts +98 -1
- package/dist/core/rpc/rpc.d.ts.map +1 -1
- package/dist/core/rpc/rpc.js +163 -1
- package/dist/core/rpc/rpc.js.map +1 -1
- package/dist/core/schema.d.ts +3024 -290
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +333 -42
- package/dist/core/schema.js.map +1 -1
- package/dist/core/transaction.d.ts +164 -2
- package/dist/core/transaction.d.ts.map +1 -1
- package/dist/core/transaction.js +385 -17
- package/dist/core/transaction.js.map +1 -1
- package/dist/core/types.d.ts +20 -4
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +1 -0
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/sandbox/sandbox.js +1 -1
- package/dist/sandbox/sandbox.js.map +1 -1
- package/dist/utils/key.d.ts +65 -1
- package/dist/utils/key.d.ts.map +1 -1
- package/dist/utils/key.js +137 -1
- package/dist/utils/key.js.map +1 -1
- package/dist/utils/nep413.d.ts +47 -3
- package/dist/utils/nep413.d.ts.map +1 -1
- package/dist/utils/nep413.js +33 -6
- package/dist/utils/nep413.js.map +1 -1
- package/dist/utils/validation.d.ts +8 -2
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +38 -12
- package/dist/utils/validation.js.map +1 -1
- package/package.json +8 -7
package/dist/core/transaction.js
CHANGED
|
@@ -38,7 +38,7 @@ import { normalizeAmount, normalizeGas, } from "../utils/validation.js";
|
|
|
38
38
|
import * as actions from "./actions.js";
|
|
39
39
|
import { DEFAULT_FUNCTION_CALL_GAS } from "./constants.js";
|
|
40
40
|
import { NonceManager } from "./nonce-manager.js";
|
|
41
|
-
import { encodeSignedDelegateAction, serializeDelegateAction, serializeSignedTransaction, serializeTransaction, } from "./schema.js";
|
|
41
|
+
import { encodeSignedDelegateAction, encodeSignedDelegateActionV2, serializeDelegateAction, serializeDelegateActionV2, serializeSignedTransaction, serializeSignedTransactionV1, serializeTransaction, serializeTransactionV1, } from "./schema.js";
|
|
42
42
|
/**
|
|
43
43
|
* Compare two public keys for byte-level equality.
|
|
44
44
|
* @internal
|
|
@@ -59,19 +59,35 @@ function publicKeysEqual(a, b) {
|
|
|
59
59
|
* @internal
|
|
60
60
|
*/
|
|
61
61
|
function toAccessKeyPermissionBorsh(permission) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
switch (permission.type) {
|
|
63
|
+
case "fullAccess":
|
|
64
|
+
return { fullAccess: {} };
|
|
65
|
+
case "functionCall":
|
|
66
|
+
return {
|
|
67
|
+
functionCall: {
|
|
68
|
+
receiverId: permission.receiverId,
|
|
69
|
+
methodNames: permission.methodNames || [],
|
|
70
|
+
allowance: permission.allowance
|
|
71
|
+
? BigInt(normalizeAmount(permission.allowance))
|
|
72
|
+
: null,
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
case "gasKeyFullAccess":
|
|
76
|
+
return actions.gasKeyFullAccess(permission.numNonces);
|
|
77
|
+
case "gasKeyFunctionCall":
|
|
78
|
+
// Gas function-call keys must not set an allowance (rejected on-chain).
|
|
79
|
+
return actions.gasKeyFunctionCall(permission.numNonces, {
|
|
68
80
|
receiverId: permission.receiverId,
|
|
69
81
|
methodNames: permission.methodNames || [],
|
|
70
|
-
allowance:
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
82
|
+
allowance: null,
|
|
83
|
+
});
|
|
84
|
+
default: {
|
|
85
|
+
// Exhaustiveness guard: every AccessKeyPermission variant is handled
|
|
86
|
+
// above. Fail fast (rather than returning undefined) if a JS caller or
|
|
87
|
+
// malformed object supplies an unknown `permission.type`.
|
|
88
|
+
const unknown = permission;
|
|
89
|
+
throw new NearError(`Unknown access key permission type: ${String(unknown.type)}`, "INVALID_TRANSACTION");
|
|
90
|
+
}
|
|
75
91
|
}
|
|
76
92
|
}
|
|
77
93
|
/**
|
|
@@ -95,6 +111,16 @@ export class TransactionBuilder {
|
|
|
95
111
|
defaultWaitUntil;
|
|
96
112
|
ensureKeyStoreReady;
|
|
97
113
|
cachedSignedTx;
|
|
114
|
+
/**
|
|
115
|
+
* Gas-key nonce index for this transaction. When set, the builder signs a V1
|
|
116
|
+
* transaction whose nonce is a `GasKeyNonce { nonce, nonceIndex }`.
|
|
117
|
+
*/
|
|
118
|
+
gasKeyNonceIndex;
|
|
119
|
+
/**
|
|
120
|
+
* Opt into strict nonce mode (`nonce === ak_nonce + 1`). Forces a V1
|
|
121
|
+
* transaction even for an ordinary access key.
|
|
122
|
+
*/
|
|
123
|
+
strictNonce = false;
|
|
98
124
|
constructor(signerId, rpc, keyStore, signer, defaultWaitUntil = "EXECUTED_OPTIMISTIC", wallet, ensureKeyStoreReady) {
|
|
99
125
|
this.signerId = signerId;
|
|
100
126
|
this.actions = [];
|
|
@@ -412,6 +438,49 @@ export class TransactionBuilder {
|
|
|
412
438
|
}
|
|
413
439
|
return this.invalidateCache();
|
|
414
440
|
}
|
|
441
|
+
/**
|
|
442
|
+
* Fund a gas key's prepaid balance (protocol v85 / NEAR 2.13).
|
|
443
|
+
*
|
|
444
|
+
* The target gas key must already exist on the receiver account (add it with
|
|
445
|
+
* `.addKey(pk, { type: "gasKeyFullAccess", numNonces })`). The deposit is
|
|
446
|
+
* moved from the signer's account balance into the gas key's balance, where it
|
|
447
|
+
* is reserved to pay for gas when that key signs transactions.
|
|
448
|
+
*
|
|
449
|
+
* @param publicKey - The gas key to fund (e.g. `"ed25519:..."`).
|
|
450
|
+
* @param amount - Amount to add to the gas key balance ({@link Amount}).
|
|
451
|
+
*
|
|
452
|
+
* @remarks
|
|
453
|
+
* If no receiver has been set yet, this also sets the transaction `receiverId`
|
|
454
|
+
* to `signerId` (the account that owns the gas key).
|
|
455
|
+
*/
|
|
456
|
+
transferToGasKey(publicKey, amount) {
|
|
457
|
+
const amountYocto = normalizeAmount(amount);
|
|
458
|
+
const pk = parsePublicKey(publicKey);
|
|
459
|
+
this.actions.push(actions.transferToGasKey(pk, BigInt(amountYocto)));
|
|
460
|
+
if (!this.receiverId) {
|
|
461
|
+
this.receiverId = this.signerId;
|
|
462
|
+
}
|
|
463
|
+
return this.invalidateCache();
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* Withdraw NEAR from a gas key's balance back to the account (protocol v85 / NEAR 2.13).
|
|
467
|
+
*
|
|
468
|
+
* @param publicKey - The gas key to withdraw from (e.g. `"ed25519:..."`).
|
|
469
|
+
* @param amount - Amount to move from the gas key balance to the account ({@link Amount}).
|
|
470
|
+
*
|
|
471
|
+
* @remarks
|
|
472
|
+
* If no receiver has been set yet, this also sets the transaction `receiverId`
|
|
473
|
+
* to `signerId` (the account that owns the gas key).
|
|
474
|
+
*/
|
|
475
|
+
withdrawFromGasKey(publicKey, amount) {
|
|
476
|
+
const amountYocto = normalizeAmount(amount);
|
|
477
|
+
const pk = parsePublicKey(publicKey);
|
|
478
|
+
this.actions.push(actions.withdrawFromGasKey(pk, BigInt(amountYocto)));
|
|
479
|
+
if (!this.receiverId) {
|
|
480
|
+
this.receiverId = this.signerId;
|
|
481
|
+
}
|
|
482
|
+
return this.invalidateCache();
|
|
483
|
+
}
|
|
415
484
|
/**
|
|
416
485
|
* Build and sign a delegate action from the queued actions.
|
|
417
486
|
*
|
|
@@ -425,6 +494,18 @@ export class TransactionBuilder {
|
|
|
425
494
|
this.receiverId = signedDelegate.signedDelegate.delegateAction.senderId;
|
|
426
495
|
return this.invalidateCache();
|
|
427
496
|
}
|
|
497
|
+
/**
|
|
498
|
+
* Add a V2 signed delegate action to this transaction, for relayers
|
|
499
|
+
* (gas-key meta-transactions, NEAR 2.13).
|
|
500
|
+
*
|
|
501
|
+
* The receiver is set to the V2 delegate action's sender (the account whose
|
|
502
|
+
* actions are being relayed).
|
|
503
|
+
*/
|
|
504
|
+
signedDelegateActionV2(signedDelegate) {
|
|
505
|
+
this.actions.push(signedDelegate);
|
|
506
|
+
this.receiverId = signedDelegate.delegateV2.delegateAction.v2.senderId;
|
|
507
|
+
return this.invalidateCache();
|
|
508
|
+
}
|
|
428
509
|
/**
|
|
429
510
|
* Build and sign a delegate action from the queued actions.
|
|
430
511
|
*
|
|
@@ -510,6 +591,89 @@ export class TransactionBuilder {
|
|
|
510
591
|
format,
|
|
511
592
|
};
|
|
512
593
|
}
|
|
594
|
+
/**
|
|
595
|
+
* Build and sign a V2 delegate action (gas-key meta-transactions, NEAR 2.13).
|
|
596
|
+
*
|
|
597
|
+
* Like {@link delegate} but produces a `DelegateActionV2`, signed under the
|
|
598
|
+
* DISTINCT V2 NEP-461 domain tag. Pass `nonceIndex` to sign against a gas
|
|
599
|
+
* key's nonce slot (the nonce then carries that index); otherwise an ordinary
|
|
600
|
+
* key nonce is used. A relayer wraps the returned payload in a transaction via
|
|
601
|
+
* {@link signedDelegateActionV2}.
|
|
602
|
+
*
|
|
603
|
+
* @returns The structured V2 signed delegate action plus an encoded payload
|
|
604
|
+
* (`base64` by default).
|
|
605
|
+
*/
|
|
606
|
+
async delegateV2(options) {
|
|
607
|
+
const opts = options ?? {};
|
|
608
|
+
if (this.actions.length === 0) {
|
|
609
|
+
throw new NearError("Delegate action requires at least one action to perform", "INVALID_TRANSACTION");
|
|
610
|
+
}
|
|
611
|
+
if (this.actions.some((action) => "signedDelegate" in action || "delegateV2" in action)) {
|
|
612
|
+
throw new NearError("Delegate actions cannot contain nested delegate actions", "INVALID_TRANSACTION");
|
|
613
|
+
}
|
|
614
|
+
const receiverId = opts.receiverId ?? this.receiverId;
|
|
615
|
+
if (!receiverId) {
|
|
616
|
+
throw new NearError("Delegate action requires a receiver. Set receiverId via the first action or provide it explicitly.", "INVALID_TRANSACTION");
|
|
617
|
+
}
|
|
618
|
+
const keyPair = await this.resolveKeyPair();
|
|
619
|
+
let delegatePublicKey;
|
|
620
|
+
if (opts.publicKey === undefined) {
|
|
621
|
+
delegatePublicKey = keyPair.publicKey;
|
|
622
|
+
}
|
|
623
|
+
else if (typeof opts.publicKey === "string") {
|
|
624
|
+
delegatePublicKey = parsePublicKey(opts.publicKey);
|
|
625
|
+
}
|
|
626
|
+
else {
|
|
627
|
+
delegatePublicKey = opts.publicKey;
|
|
628
|
+
}
|
|
629
|
+
if (!publicKeysEqual(delegatePublicKey, keyPair.publicKey)) {
|
|
630
|
+
throw new InvalidKeyError("Delegate action public key must match the signer key. Use signWith() when you need a different key.");
|
|
631
|
+
}
|
|
632
|
+
if (opts.nonceIndex !== undefined) {
|
|
633
|
+
TransactionBuilder.validateNonceIndex(opts.nonceIndex);
|
|
634
|
+
}
|
|
635
|
+
// Resolve the underlying u64 nonce, then wrap it as a TransactionNonce
|
|
636
|
+
// (GasKeyNonce when a slot index is given, plain Nonce otherwise).
|
|
637
|
+
const pkString = delegatePublicKey.toString();
|
|
638
|
+
let nonceValue;
|
|
639
|
+
if (opts.nonce !== undefined) {
|
|
640
|
+
nonceValue = opts.nonce;
|
|
641
|
+
}
|
|
642
|
+
else if (opts.nonceIndex !== undefined) {
|
|
643
|
+
// Reserve the per-slot nonce through the shared NonceManager (keyed by
|
|
644
|
+
// `pk#index`), so concurrent gas-key delegate signings on the same slot
|
|
645
|
+
// get distinct nonces instead of all fetching the same chain value.
|
|
646
|
+
const index = opts.nonceIndex;
|
|
647
|
+
nonceValue = await TransactionBuilder.nonceManager.getNextNonce(this.signerId, `${pkString}#${index}`, async () => this.fetchGasKeyNonce(pkString, index));
|
|
648
|
+
}
|
|
649
|
+
else {
|
|
650
|
+
const accessKey = await this.rpc.getAccessKey(this.signerId, pkString);
|
|
651
|
+
nonceValue = BigInt(accessKey.nonce) + 1n;
|
|
652
|
+
}
|
|
653
|
+
const txNonce = opts.nonceIndex !== undefined
|
|
654
|
+
? { gasKeyNonce: { nonce: nonceValue, nonceIndex: opts.nonceIndex } }
|
|
655
|
+
: { nonce: { nonce: nonceValue } };
|
|
656
|
+
let maxBlockHeight;
|
|
657
|
+
if (opts.maxBlockHeight !== undefined) {
|
|
658
|
+
maxBlockHeight = opts.maxBlockHeight;
|
|
659
|
+
}
|
|
660
|
+
else {
|
|
661
|
+
const status = await this.rpc.getStatus();
|
|
662
|
+
const offset = BigInt(opts.blockHeightOffset ?? 200);
|
|
663
|
+
maxBlockHeight = BigInt(status.sync_info.latest_block_height) + offset;
|
|
664
|
+
}
|
|
665
|
+
const delegateAction = new actions.DelegateActionV2(this.signerId, receiverId, this.actions, txNonce, maxBlockHeight, delegatePublicKey);
|
|
666
|
+
const hash = sha256(serializeDelegateActionV2(delegateAction.toBorsh()));
|
|
667
|
+
const signature = keyPair.sign(hash);
|
|
668
|
+
const signedDelegateAction = actions.signedDelegateV2(delegateAction, signature);
|
|
669
|
+
const format = (opts.payloadFormat ?? "base64");
|
|
670
|
+
const payload = encodeSignedDelegateActionV2(signedDelegateAction, format);
|
|
671
|
+
return {
|
|
672
|
+
signedDelegateAction,
|
|
673
|
+
payload,
|
|
674
|
+
format,
|
|
675
|
+
};
|
|
676
|
+
}
|
|
513
677
|
/**
|
|
514
678
|
* Override the signing function for this specific transaction.
|
|
515
679
|
*
|
|
@@ -584,6 +748,72 @@ export class TransactionBuilder {
|
|
|
584
748
|
}
|
|
585
749
|
return this.invalidateCache();
|
|
586
750
|
}
|
|
751
|
+
/**
|
|
752
|
+
* Sign this transaction with a gas key (protocol v85 / NEAR 2.13).
|
|
753
|
+
*
|
|
754
|
+
* Gas keys carry a prepaid gas balance and allocate several independent nonce
|
|
755
|
+
* slots so they can sign transactions in parallel. This selects the nonce
|
|
756
|
+
* slot (`nonceIndex`) to use and switches the builder to the versioned
|
|
757
|
+
* transaction (V1) encoding required to carry a gas-key nonce.
|
|
758
|
+
*
|
|
759
|
+
* The nonce for the chosen slot is fetched and managed independently per
|
|
760
|
+
* `(account, public key, nonce index)`, so concurrent transactions on
|
|
761
|
+
* different indexes of the same gas key do not collide.
|
|
762
|
+
*
|
|
763
|
+
* @param nonceIndex - Which gas-key nonce slot to use. Slots are 0-based, so
|
|
764
|
+
* valid values are `0` to `numNonces - 1` (the slot count the key was added
|
|
765
|
+
* with). An out-of-range slot is rejected when the nonce is fetched.
|
|
766
|
+
*
|
|
767
|
+
* @example
|
|
768
|
+
* ```typescript
|
|
769
|
+
* await near.transaction("alice.near")
|
|
770
|
+
* .signWith(gasKeyPrivateKey)
|
|
771
|
+
* .useGasKey(0)
|
|
772
|
+
* .functionCall("contract.near", "method", {})
|
|
773
|
+
* .send()
|
|
774
|
+
* ```
|
|
775
|
+
*
|
|
776
|
+
* @remarks Combine with {@link signWith} to use the gas key's private key.
|
|
777
|
+
*/
|
|
778
|
+
useGasKey(nonceIndex) {
|
|
779
|
+
TransactionBuilder.validateNonceIndex(nonceIndex);
|
|
780
|
+
this.gasKeyNonceIndex = nonceIndex;
|
|
781
|
+
return this.invalidateCache();
|
|
782
|
+
}
|
|
783
|
+
/**
|
|
784
|
+
* Validate a gas-key nonce index: an integer in the u16 range (`0..=65535`).
|
|
785
|
+
* The slot must also be within the key's allocated slots, which is checked
|
|
786
|
+
* when the nonce is fetched.
|
|
787
|
+
* @internal
|
|
788
|
+
*/
|
|
789
|
+
static validateNonceIndex(nonceIndex) {
|
|
790
|
+
if (!Number.isInteger(nonceIndex) || nonceIndex < 0 || nonceIndex > 65535) {
|
|
791
|
+
throw new NearError(`Gas key nonceIndex must be an integer in 0..=65535, got ${nonceIndex}`, "INVALID_TRANSACTION");
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
/**
|
|
795
|
+
* Opt into strict nonce mode (protocol v85 / NEAR 2.13).
|
|
796
|
+
*
|
|
797
|
+
* In strict mode the transaction nonce must be exactly `ak_nonce + 1`,
|
|
798
|
+
* enforcing sequential ordering, instead of the default monotonic rule (any
|
|
799
|
+
* nonce strictly greater than the access key nonce). This switches the builder
|
|
800
|
+
* to the versioned transaction (V1) encoding.
|
|
801
|
+
*
|
|
802
|
+
* @param strict - Whether to enable strict mode (defaults to `true`).
|
|
803
|
+
*/
|
|
804
|
+
strictNonceMode(strict = true) {
|
|
805
|
+
this.strictNonce = strict;
|
|
806
|
+
return this.invalidateCache();
|
|
807
|
+
}
|
|
808
|
+
/**
|
|
809
|
+
* Whether this transaction must be encoded as a versioned (V1) transaction.
|
|
810
|
+
* V1 is required to carry a gas-key nonce or to request strict nonce mode;
|
|
811
|
+
* an ordinary transaction stays V0 (tag-less) for backward compatibility.
|
|
812
|
+
* @internal
|
|
813
|
+
*/
|
|
814
|
+
requiresV1() {
|
|
815
|
+
return this.gasKeyNonceIndex !== undefined || this.strictNonce;
|
|
816
|
+
}
|
|
587
817
|
/**
|
|
588
818
|
* Build the unsigned transaction
|
|
589
819
|
*/
|
|
@@ -650,6 +880,11 @@ export class TransactionBuilder {
|
|
|
650
880
|
if (!this.receiverId) {
|
|
651
881
|
throw new NearError("No receiver ID set for transaction", "INVALID_TRANSACTION");
|
|
652
882
|
}
|
|
883
|
+
// Gas-key or strict-nonce transactions use the versioned (V1) encoding.
|
|
884
|
+
if (this.requiresV1()) {
|
|
885
|
+
this.cachedSignedTx = await this.signV1();
|
|
886
|
+
return this;
|
|
887
|
+
}
|
|
653
888
|
// Build the transaction
|
|
654
889
|
const transaction = await this.build();
|
|
655
890
|
// Serialize transaction using Borsh
|
|
@@ -673,6 +908,125 @@ export class TransactionBuilder {
|
|
|
673
908
|
};
|
|
674
909
|
return this;
|
|
675
910
|
}
|
|
911
|
+
/**
|
|
912
|
+
* Build and sign a versioned (V1) transaction for the gas-key / strict-nonce
|
|
913
|
+
* path. Produces the cache entry consumed by {@link sign}, including the
|
|
914
|
+
* pre-serialized `[0x01]`-tagged signed bytes.
|
|
915
|
+
* @internal
|
|
916
|
+
*/
|
|
917
|
+
async signV1() {
|
|
918
|
+
if (!this.receiverId) {
|
|
919
|
+
throw new NearError("No receiver ID set for transaction", "INVALID_TRANSACTION");
|
|
920
|
+
}
|
|
921
|
+
const keyPair = await this.resolveKeyPair();
|
|
922
|
+
const publicKey = keyPair.publicKey;
|
|
923
|
+
const txNonce = await this.resolveV1Nonce(publicKey);
|
|
924
|
+
const block = await this.rpc.getBlock({ finality: "final" });
|
|
925
|
+
const blockHash = base58.decode(block.header.hash);
|
|
926
|
+
const v1 = {
|
|
927
|
+
signerId: this.signerId,
|
|
928
|
+
publicKey,
|
|
929
|
+
nonce: txNonce,
|
|
930
|
+
receiverId: this.receiverId,
|
|
931
|
+
blockHash,
|
|
932
|
+
actions: this.actions,
|
|
933
|
+
nonceMode: this.strictNonce ? { strict: {} } : { monotonic: {} },
|
|
934
|
+
};
|
|
935
|
+
const serializedTx = serializeTransactionV1(v1);
|
|
936
|
+
const messageHash = new Uint8Array(await crypto.subtle.digest("SHA-256", serializedTx));
|
|
937
|
+
const txHash = base58.encode(messageHash);
|
|
938
|
+
const signature = this.signer
|
|
939
|
+
? await this.signer(messageHash)
|
|
940
|
+
: keyPair.sign(messageHash);
|
|
941
|
+
// Underlying u64 nonce, regardless of the V1 nonce variant.
|
|
942
|
+
const nonceValue = "gasKeyNonce" in txNonce ? txNonce.gasKeyNonce.nonce : txNonce.nonce.nonce;
|
|
943
|
+
return {
|
|
944
|
+
// A V0-shaped SignedTransaction is kept for hash/field access by callers;
|
|
945
|
+
// the wire bytes come from `serialized` (the V1 encoding can't round-trip
|
|
946
|
+
// through the V0 SignedTransaction type).
|
|
947
|
+
signedTx: {
|
|
948
|
+
transaction: {
|
|
949
|
+
signerId: this.signerId,
|
|
950
|
+
publicKey,
|
|
951
|
+
nonce: nonceValue,
|
|
952
|
+
receiverId: this.receiverId,
|
|
953
|
+
actions: this.actions,
|
|
954
|
+
blockHash,
|
|
955
|
+
},
|
|
956
|
+
signature,
|
|
957
|
+
},
|
|
958
|
+
hash: txHash,
|
|
959
|
+
serialized: serializeSignedTransactionV1(v1, signature),
|
|
960
|
+
};
|
|
961
|
+
}
|
|
962
|
+
/**
|
|
963
|
+
* Resolve the {@link TransactionNonceBorsh} for a V1 transaction.
|
|
964
|
+
*
|
|
965
|
+
* For a gas key the nonce comes from the chosen nonce slot (queried via
|
|
966
|
+
* `EXPERIMENTAL_view_gas_key_nonces`) and is wrapped as `GasKeyNonce`; each
|
|
967
|
+
* slot is tracked independently so parallel transactions on different slots
|
|
968
|
+
* don't collide. For a strict-nonce ordinary key it's a plain `Nonce`.
|
|
969
|
+
* @internal
|
|
970
|
+
*/
|
|
971
|
+
async resolveV1Nonce(publicKey) {
|
|
972
|
+
const pkString = publicKey.toString();
|
|
973
|
+
if (this.gasKeyNonceIndex !== undefined) {
|
|
974
|
+
const index = this.gasKeyNonceIndex;
|
|
975
|
+
// Strict mode bypasses the monotonic cache (see below); otherwise reserve
|
|
976
|
+
// the per-slot nonce through the shared manager so parallel transactions
|
|
977
|
+
// on the same slot don't collide.
|
|
978
|
+
if (this.strictNonce) {
|
|
979
|
+
const nonce = (await this.fetchGasKeyNonce(pkString, index)) + 1n;
|
|
980
|
+
return { gasKeyNonce: { nonce, nonceIndex: index } };
|
|
981
|
+
}
|
|
982
|
+
const nonce = await TransactionBuilder.nonceManager.getNextNonce(this.signerId, `${pkString}#${index}`, async () => this.fetchGasKeyNonce(pkString, index));
|
|
983
|
+
return { gasKeyNonce: { nonce, nonceIndex: index } };
|
|
984
|
+
}
|
|
985
|
+
// Strict mode requires the nonce to be EXACTLY ak_nonce + 1, so it must not
|
|
986
|
+
// go through the monotonic NonceManager (whose cache can be ahead of chain
|
|
987
|
+
// and hand out ak_nonce + 2+). Fetch the chain nonce directly instead.
|
|
988
|
+
if (this.strictNonce) {
|
|
989
|
+
const accessKey = await this.rpc.getAccessKey(this.signerId, pkString);
|
|
990
|
+
return { nonce: { nonce: BigInt(accessKey.nonce) + 1n } };
|
|
991
|
+
}
|
|
992
|
+
const nonce = await TransactionBuilder.nonceManager.getNextNonce(this.signerId, pkString, async () => {
|
|
993
|
+
const accessKey = await this.rpc.getAccessKey(this.signerId, pkString);
|
|
994
|
+
return BigInt(accessKey.nonce);
|
|
995
|
+
});
|
|
996
|
+
return { nonce: { nonce } };
|
|
997
|
+
}
|
|
998
|
+
/**
|
|
999
|
+
* Fetch the current on-chain nonce for a gas key's nonce slot via
|
|
1000
|
+
* `EXPERIMENTAL_view_gas_key_nonces`, which returns one nonce per slot.
|
|
1001
|
+
* @internal
|
|
1002
|
+
*/
|
|
1003
|
+
async fetchGasKeyNonce(publicKey, nonceIndex) {
|
|
1004
|
+
const result = await this.rpc.call("EXPERIMENTAL_view_gas_key_nonces", {
|
|
1005
|
+
finality: "optimistic",
|
|
1006
|
+
account_id: this.signerId,
|
|
1007
|
+
public_key: publicKey,
|
|
1008
|
+
});
|
|
1009
|
+
const nonces = result?.nonces;
|
|
1010
|
+
if (!Array.isArray(nonces) ||
|
|
1011
|
+
!Number.isInteger(nonceIndex) ||
|
|
1012
|
+
nonceIndex < 0 ||
|
|
1013
|
+
nonceIndex >= nonces.length) {
|
|
1014
|
+
throw new NearError(`Gas key ${publicKey} on ${this.signerId} has no nonce slot ${nonceIndex}`, "INVALID_TRANSACTION");
|
|
1015
|
+
}
|
|
1016
|
+
const raw = nonces[nonceIndex];
|
|
1017
|
+
// The RPC returns nonces as JSON numbers; guard against precision loss
|
|
1018
|
+
// before widening to bigint, and accept a string form defensively.
|
|
1019
|
+
if (typeof raw === "number") {
|
|
1020
|
+
if (!Number.isSafeInteger(raw)) {
|
|
1021
|
+
throw new NearError(`Gas key nonce slot ${nonceIndex} is not a safe integer: ${raw}`, "INVALID_TRANSACTION");
|
|
1022
|
+
}
|
|
1023
|
+
return BigInt(raw);
|
|
1024
|
+
}
|
|
1025
|
+
if (typeof raw === "string") {
|
|
1026
|
+
return BigInt(raw);
|
|
1027
|
+
}
|
|
1028
|
+
throw new NearError(`Gas key nonce slot ${nonceIndex} has an unexpected type: ${typeof raw}`, "INVALID_TRANSACTION");
|
|
1029
|
+
}
|
|
676
1030
|
/**
|
|
677
1031
|
* Get the transaction hash (only available after signing).
|
|
678
1032
|
*
|
|
@@ -715,7 +1069,9 @@ export class TransactionBuilder {
|
|
|
715
1069
|
if (!this.cachedSignedTx) {
|
|
716
1070
|
throw new NearError("Transaction must be signed before serializing. Call .sign() first.", "INVALID_STATE");
|
|
717
1071
|
}
|
|
718
|
-
|
|
1072
|
+
// V1 (gas-key / strict-nonce) transactions carry pre-serialized wire bytes.
|
|
1073
|
+
return (this.cachedSignedTx.serialized ??
|
|
1074
|
+
serializeSignedTransaction(this.cachedSignedTx.signedTx));
|
|
719
1075
|
}
|
|
720
1076
|
async send(options) {
|
|
721
1077
|
if (!this.receiverId) {
|
|
@@ -748,9 +1104,10 @@ export class TransactionBuilder {
|
|
|
748
1104
|
if (!this.cachedSignedTx) {
|
|
749
1105
|
throw new NearError("Failed to sign transaction", "TRANSACTION_SIGNING_FAILED");
|
|
750
1106
|
}
|
|
751
|
-
const { signedTx, hash } = this.cachedSignedTx;
|
|
752
|
-
// Serialize signed transaction using Borsh
|
|
753
|
-
|
|
1107
|
+
const { signedTx, hash, serialized } = this.cachedSignedTx;
|
|
1108
|
+
// Serialize signed transaction using Borsh. V1 (gas-key / strict-nonce)
|
|
1109
|
+
// transactions carry pre-serialized wire bytes from signV1().
|
|
1110
|
+
const signedSerialized = serialized ?? serializeSignedTransaction(signedTx);
|
|
754
1111
|
// Send to network
|
|
755
1112
|
const result = await this.rpc.sendTransaction(signedSerialized, waitUntil);
|
|
756
1113
|
// Inject minimal transaction fields if not present (for NONE/INCLUDED/INCLUDED_FINAL)
|
|
@@ -773,7 +1130,18 @@ export class TransactionBuilder {
|
|
|
773
1130
|
// Use akNonce from the error to update cache directly
|
|
774
1131
|
// This avoids refetching and thundering herd on retry
|
|
775
1132
|
if (this.cachedSignedTx) {
|
|
776
|
-
|
|
1133
|
+
const pk = this.cachedSignedTx.signedTx.transaction.publicKey.toString();
|
|
1134
|
+
// Gas-key transactions reserve nonces under a per-slot key
|
|
1135
|
+
// (`pk#index`), so the retry must update that same key — not the
|
|
1136
|
+
// bare `pk` — or it would keep signing with the stale slot nonce.
|
|
1137
|
+
// Strict-nonce transactions bypass the cache entirely (they refetch
|
|
1138
|
+
// ak_nonce + 1 each attempt), so no cache update is needed there.
|
|
1139
|
+
if (!this.strictNonce) {
|
|
1140
|
+
const cacheKey = this.gasKeyNonceIndex !== undefined
|
|
1141
|
+
? `${pk}#${this.gasKeyNonceIndex}`
|
|
1142
|
+
: pk;
|
|
1143
|
+
TransactionBuilder.nonceManager.updateAndGetNext(this.signerId, cacheKey, BigInt(error.akNonce));
|
|
1144
|
+
}
|
|
777
1145
|
}
|
|
778
1146
|
// If we have retries left, continue the loop to rebuild with fresh nonce
|
|
779
1147
|
if (attempt < MAX_NONCE_RETRIES - 1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/core/transaction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/core/transaction.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -28,7 +28,8 @@ export interface KeyPair {
|
|
|
28
28
|
}
|
|
29
29
|
export declare enum KeyType {
|
|
30
30
|
ED25519 = 0,
|
|
31
|
-
SECP256K1 = 1
|
|
31
|
+
SECP256K1 = 1,
|
|
32
|
+
ML_DSA_65 = 2
|
|
32
33
|
}
|
|
33
34
|
export interface PublicKey {
|
|
34
35
|
keyType: KeyType;
|
|
@@ -41,6 +42,17 @@ export interface Ed25519PublicKey extends PublicKey {
|
|
|
41
42
|
export interface Secp256k1PublicKey extends PublicKey {
|
|
42
43
|
keyType: KeyType.SECP256K1;
|
|
43
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Full ML-DSA-65 (FIPS 204) public key (1952 bytes).
|
|
47
|
+
*
|
|
48
|
+
* This is the post-quantum key usable for signing and in `AddKey` actions.
|
|
49
|
+
* Note: on-chain, an ML-DSA access key is stored as a 32-byte hash, so view
|
|
50
|
+
* RPCs return an {@link MlDsa65PublicKeyHandle} (`ml-dsa-65-hash:`) instead -
|
|
51
|
+
* the full key is not recoverable from a view response.
|
|
52
|
+
*/
|
|
53
|
+
export interface MlDsa65PublicKey extends PublicKey {
|
|
54
|
+
keyType: KeyType.ML_DSA_65;
|
|
55
|
+
}
|
|
44
56
|
export interface Signature {
|
|
45
57
|
keyType: KeyType;
|
|
46
58
|
data: Uint8Array;
|
|
@@ -51,6 +63,9 @@ export interface Ed25519Signature extends Signature {
|
|
|
51
63
|
export interface Secp256k1Signature extends Signature {
|
|
52
64
|
keyType: KeyType.SECP256K1;
|
|
53
65
|
}
|
|
66
|
+
export interface MlDsa65Signature extends Signature {
|
|
67
|
+
keyType: KeyType.ML_DSA_65;
|
|
68
|
+
}
|
|
54
69
|
/**
|
|
55
70
|
* Custom signing function for transactions.
|
|
56
71
|
*
|
|
@@ -98,7 +113,7 @@ export type Signer = (message: Uint8Array) => Promise<Signature>;
|
|
|
98
113
|
* - method_names: List of method names that can be called (empty array means any)
|
|
99
114
|
* - allowance: Optional allowance in yoctoNEAR
|
|
100
115
|
*/
|
|
101
|
-
export type { AccessKeyPermission, FunctionCallPermissionDetails, } from "./rpc/rpc-schemas.js";
|
|
116
|
+
export type { AccessKeyPermission, FunctionCallPermissionDetails, GasKeyFullAccessPermissionDetails, GasKeyFunctionCallPermissionDetails, } from "./rpc/rpc-schemas.js";
|
|
102
117
|
import type { Action, SignedDelegateAction } from "./schema.js";
|
|
103
118
|
export type { Action, SignedDelegateAction };
|
|
104
119
|
/**
|
|
@@ -164,7 +179,7 @@ export interface SignedTransaction {
|
|
|
164
179
|
*
|
|
165
180
|
* @see {@link https://docs.near.org/api/rpc/transactions NEAR RPC Transaction Documentation}
|
|
166
181
|
*/
|
|
167
|
-
export type { ExecutionMetadata, ExecutionOutcome, ExecutionOutcomeWithId, ExecutionStatus, FinalExecutionOutcome, FinalExecutionOutcomeMap, FinalExecutionOutcomeWithReceipts, FinalExecutionOutcomeWithReceiptsMap, MerklePathItem, Receipt, RpcAction, RpcTransaction, } from "./rpc/rpc-schemas.js";
|
|
182
|
+
export type { AccountContract, ExecutionMetadata, ExecutionOutcome, ExecutionOutcomeWithId, ExecutionStatus, FinalExecutionOutcome, FinalExecutionOutcomeMap, FinalExecutionOutcomeWithReceipts, FinalExecutionOutcomeWithReceiptsMap, MerklePathItem, NonceMode, Receipt, RpcAction, RpcTransaction, } from "./rpc/rpc-schemas.js";
|
|
168
183
|
import type { FinalExecutionOutcome } from "./rpc/rpc-schemas.js";
|
|
169
184
|
/**
|
|
170
185
|
* RPC response types with runtime validation via Zod schemas
|
|
@@ -179,9 +194,10 @@ import type { FinalExecutionOutcome } from "./rpc/rpc-schemas.js";
|
|
|
179
194
|
* - StatusResponse: Network status information
|
|
180
195
|
* - GasPriceResponse: Gas price information
|
|
181
196
|
* - AccessKeyListResponse: Access key list from view_access_key_list query
|
|
197
|
+
* - ReceiptToTxResponse: Originating transaction info from EXPERIMENTAL_receipt_to_tx
|
|
182
198
|
* - RpcErrorResponse: RPC error response structure
|
|
183
199
|
*/
|
|
184
|
-
export type { AccessKeyInfoView, AccessKeyListResponse, AccessKeyView, AccountView, BlockHeaderView, BlockView, ChunkHeaderView, GasPriceResponse, RpcErrorResponse, StatusResponse, ViewFunctionCallResult, } from "./rpc/rpc-schemas.js";
|
|
200
|
+
export type { AccessKeyInfoView, AccessKeyListResponse, AccessKeyView, AccountView, BlockEffectsResponse, BlockHeaderView, BlockView, ChunkHeaderView, GasPriceResponse, GenesisConfigResponse, MaintenanceWindow, MaintenanceWindowsResponse, ReceiptToTxResponse, RpcErrorResponse, StateChangeKind, StateItem, StatusResponse, ViewFunctionCallResult, ViewStateResult, } from "./rpc/rpc-schemas.js";
|
|
185
201
|
export type { NearConfig } from "./config-schemas.js";
|
|
186
202
|
/**
|
|
187
203
|
* Pluggable key store interface used by {@link Near} and {@link TransactionBuilder}.
|